]> git.ipfire.org Git - thirdparty/gcc.git/commit
Provide an API for ipa_vr.
authorAldy Hernandez <aldyh@redhat.com>
Wed, 17 May 2023 09:29:32 +0000 (11:29 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Wed, 24 May 2023 16:03:26 +0000 (18:03 +0200)
commitcfe1752817731b8d71d90eeb461d7b7ba9fcb809
tree463f266bf0e0834c4dadbe1c4dfe3c6b3cc95564
parentfc0553d61e110a293d52405672cfe9919d7ecc12
Provide an API for ipa_vr.

This patch encapsulates the ipa_vr internals into an API.  It also
makes it type agnostic, in preparation for upcoming changes to IPA.

Interestingly, there's a 0.44% improvement to IPA-cp, which I'm sure
we'll soak up with future changes in this area :).

gcc/ChangeLog:

* ipa-cp.cc (ipa_value_range_from_jfunc): Use new ipa_vr API.
(ipcp_store_vr_results): Same.
* ipa-prop.cc (ipa_vr::ipa_vr): New.
(ipa_vr::get_vrange): New.
(ipa_vr::set_unknown): New.
(ipa_vr::streamer_read): New.
(ipa_vr::streamer_write): New.
(write_ipcp_transformation_info): Use new ipa_vr API.
(read_ipcp_transformation_info): Same.
(ipa_vr::nonzero_p): Delete.
(ipcp_update_vr): Use new ipa_vr API.
* ipa-prop.h (class ipa_vr): Provide an API and hide internals.
* ipa-sra.cc (zap_useless_ipcp_results): Use new ipa_vr API.

gcc/testsuite/ChangeLog:

* gcc.dg/ipa/pr78121.c: Adjust for vrange::dump use.
* gcc.dg/ipa/vrp1.c: Same.
* gcc.dg/ipa/vrp2.c: Same.
* gcc.dg/ipa/vrp3.c: Same.
* gcc.dg/ipa/vrp4.c: Same.
* gcc.dg/ipa/vrp5.c: Same.
* gcc.dg/ipa/vrp6.c: Same.
* gcc.dg/ipa/vrp7.c: Same.
* gcc.dg/ipa/vrp8.c: Same.
13 files changed:
gcc/ipa-cp.cc
gcc/ipa-prop.cc
gcc/ipa-prop.h
gcc/ipa-sra.cc
gcc/testsuite/gcc.dg/ipa/pr78121.c
gcc/testsuite/gcc.dg/ipa/vrp1.c
gcc/testsuite/gcc.dg/ipa/vrp2.c
gcc/testsuite/gcc.dg/ipa/vrp3.c
gcc/testsuite/gcc.dg/ipa/vrp4.c
gcc/testsuite/gcc.dg/ipa/vrp5.c
gcc/testsuite/gcc.dg/ipa/vrp6.c
gcc/testsuite/gcc.dg/ipa/vrp7.c
gcc/testsuite/gcc.dg/ipa/vrp8.c