aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2021-08-24 12:13:24 -0400
committerAndrew MacLeod <amacleod@redhat.com>2021-09-20 16:32:35 -0400
commit73cf73af2392e00917de042a4692f6a0b6329ee8 (patch)
tree6cd6cfb9b9569ddf87064cc4563655b74efd3135 /contrib
parent5d110fe90afcd850ea21aee6429f22edd6b1b592 (diff)
downloadgcc-73cf73af2392e00917de042a4692f6a0b6329ee8.zip
gcc-73cf73af2392e00917de042a4692f6a0b6329ee8.tar.gz
gcc-73cf73af2392e00917de042a4692f6a0b6329ee8.tar.bz2
Use EDGE_EXECUTABLE in ranger and return UNDEFINED for those edges.
If an incoming edge is UNDEFINED, don't process it. Track if other edges equate to a single value, and add an equivalence if appropriate. gcc/ * gimple-range-fold.cc (fold_using_range::range_of_phi): Ignore undefined edges, apply an equivalence if appropriate. * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Return UNDEFINED if EDGE_EXECUTABLE is not set. * gimple-range.cc (gimple_ranger::gimple_ranger): Set all edges as EXECUTABLE upon startup. (gimple_ranger::range_on_edge): Return UNDEFINED for edges without EDGE_EXECUTABLE set. * vr-values.c (set_and_propagate_unexecutable): New. (simplify_using_ranges::fold_cond): Call set_and_propagate. (simplify_using_ranges::simplify_switch_using_ranges): Ditto. * vr-values.h: Add prototype. gcc/testsuite/ * gcc.dg/tree-ssa/evrp-ignore.c: New.
Diffstat (limited to 'contrib')
0 files changed, 0 insertions, 0 deletions