Add IPA VRP

Programming / Compilers / GCC - kugan [138bc75d-0d04-0410-961f-82ee72b054a4] - 20 September 2016 18:29 UTC

gcc/lto/ChangeLog: 2016-09-21 Kugan Vivekanandarajah

- lto-partition.c: Include tree-vrp.h.
- lto.c: Likewise.

gcc/testsuite/ChangeLog:

2016-09-21 Kugan Vivekanandarajah

- g++.dg/ipa/pure-const-3.C: Add -fno-ipa-vrp. Else constant arguments will be optimized away.
- gcc.dg/ipa/vrp1.c: New test.
- gcc.dg/ipa/vrp2.c: New test.
- gcc.dg/ipa/vrp3.c: New test.

gcc/ChangeLog:

2016-09-21 Kugan Vivekanandarajah

- common.opt: New option -fipa-vrp.
- ipa-cp.c (ipa_get_vr_lat): New. (ipcp_vr_lattice::print): Likewise. (print_all_lattices): Call ipcp_vr_lattice::print. (ipcp_vr_lattice::meet_with): New. (ipcp_vr_lattice::meet_with_1): Likewise. (ipcp_vr_lattice::top_p): Likewise. (ipcp_vr_lattice::bottom_p): Likewsie. (ipcp_vr_lattice::set_to_bottom): Likewise. (set_all_contains_variable): Call VR set_to_bottom. (initialize_node_lattices): Init VR lattices. (propagate_vr_accross_jump_function): New. (propagate_constants_accross_call): Call propagate_vr_accross_jump_function. (ipcp_store_vr_results): New. (ipcp_driver): Handle VR.
- ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR. (ipa_set_jf_unknown): Likewise. (ipa_compute_jump_functions_for_edge): Likewise. (ipa_node_params_t::duplicate): Likewise. (ipa_write_jump_function): Likewise. (ipa_read_jump_function): Likewise. (write_ipcp_transformation_info): Likewise. (read_ipcp_transformation_info): Likewise. (ipcp_update_vr): New. (ipcp_transform_function): Handle VR.
- ipa-prop.h (struct ipa_vr): New.
- cgraph.c: Include tree-vrp.h.
- cgraphunit.c: Likewise.
- ipa-utils.c: Likewise.
- ipa.c: Likewise.

25a8e00 Add IPA VRP
gcc/ChangeLog | 40 +++++
gcc/cgraph.c | 1 +
gcc/cgraphunit.c | 1 +
gcc/common.opt | 4 +
gcc/ipa-cp.c | 243 +++++++++++++++++++++++++++++++
gcc/ipa-devirt.c | 1 +
gcc/ipa-inline-transform.c | 1 +
gcc/ipa-inline.c | 1 +
gcc/ipa-profile.c | 1 +
gcc/ipa-prop.c | 179 ++++++++++++++++++++++-
gcc/ipa-prop.h | 16 ++
gcc/ipa-utils.c | 1 +
gcc/ipa.c | 1 +
gcc/lto/ChangeLog | 5 +
gcc/lto/lto-partition.c | 1 +
gcc/lto/lto.c | 1 +
gcc/opts.c | 1 +
gcc/testsuite/ChangeLog | 8 +
gcc/testsuite/g++.dg/ipa/pure-const-3.C | 2 +-
gcc/testsuite/gcc.dg/ipa/vrp1.c | 32 ++++
gcc/testsuite/gcc.dg/ipa/vrp2.c | 35 +++++
gcc/testsuite/gcc.dg/ipa/vrp3.c | 30 ++++
gcc/toplev.c | 1 +
23 files changed, 599 insertions(+), 7 deletions(-)

Upstream: gcc.gnu.org


  • Share