]> git.ipfire.org Git - thirdparty/gcc.git/commit
ipa: Update value range jump functions during inlining
authorMartin Jambor <mjambor@suse.cz>
Wed, 11 Dec 2024 13:55:27 +0000 (14:55 +0100)
committerMartin Jambor <jamborm@gcc.gnu.org>
Wed, 11 Dec 2024 13:56:20 +0000 (14:56 +0100)
commit92e0e0f8177530b8c6fcafe1d61ba03b00dff6a6
treed4c65764ff9ff9944e110446958df0981cdbf3fc
parentb6242bd122757ec6c75c73a4921f24a9a382b090
ipa: Update value range jump functions during inlining

When inlining (during the analysis phase) a call graph edge, we update
all pass-through jump functions corresponding to edges going out of
the newly inlined function to be relative to the function into which
we are inlining or to expose the information originally captured for
the edge that is being inlined.

Similarly, we can combine the value range information in pass-through
jump functions corresponding to both edges, which is what this patch
adds - at least for the case when the inlined pass-through is a
simple, non-arithmetic one, which is the case that we also handle for
constant and aggregate jump function parts.

gcc/ChangeLog:

2024-11-01  Martin Jambor  <mjambor@suse.cz>

* ipa-cp.h: Forward declare class ipa_vr.
(ipa_vr_operation_and_type_effects) Declare.
* ipa-cp.cc (ipa_vr_operation_and_type_effects): Make public.
* ipa-prop.cc (update_jump_functions_after_inlining): Also update
value range jump functions.
gcc/ipa-cp.cc
gcc/ipa-cp.h
gcc/ipa-prop.cc