]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/ipa-devirt.c
Add IPA VRP
authorKugan Vivekanandarajah <kuganv@linaro.org>
Tue, 20 Sep 2016 23:29:05 +0000 (23:29 +0000)
committerKugan Vivekanandarajah <kugan@gcc.gnu.org>
Tue, 20 Sep 2016 23:29:05 +0000 (23:29 +0000)
commit8bc5448f39ccd26b6f06cd7120f09c2254bac3be
tree71da5cb07e19989dcd3b452b5350042041af16d7
parent973625a04b3d9351f2485e37f7d3382af2aed87e
Add IPA VRP

gcc/lto/ChangeLog:
2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>

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

gcc/testsuite/ChangeLog:

2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>

* 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  <kuganv@linaro.org>

* 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.

From-SVN: r240292
23 files changed:
gcc/ChangeLog
gcc/cgraph.c
gcc/cgraphunit.c
gcc/common.opt
gcc/ipa-cp.c
gcc/ipa-devirt.c
gcc/ipa-inline-transform.c
gcc/ipa-inline.c
gcc/ipa-profile.c
gcc/ipa-prop.c
gcc/ipa-prop.h
gcc/ipa-utils.c
gcc/ipa.c
gcc/lto/ChangeLog
gcc/lto/lto-partition.c
gcc/lto/lto.c
gcc/opts.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/pure-const-3.C
gcc/testsuite/gcc.dg/ipa/vrp1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/ipa/vrp2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/ipa/vrp3.c [new file with mode: 0644]
gcc/toplev.c