tree-optimization/97953 - fix bougs range recorded by EVRP
authorRichard Biener <rguenther@suse.de>
Thu, 26 Nov 2020 15:13:08 +0000 (16:13 +0100)
committerRichard Biener <rguenther@suse.de>
Thu, 26 Nov 2020 15:18:07 +0000 (16:18 +0100)
commitc76b3f9e83353a4cd437ca137c1fb835c9b5c21f
tree307b34cd670b366a27dfb9eded7bc6c87902715f
parent5c197b83e12b634b65a449d8a7375a18f350708e
tree-optimization/97953 - fix bougs range recorded by EVRP

EVRP records some ranges from asserts into SSA_NAME_RANGE_INFO
but fails to assert that the condition the range is derived from
is always true after the SSA names definition.  The patch implements
the simplest post-dominance check, basic-block equality.

2020-11-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/97953
* gimple-ssa-evrp-analyze.c
(evrp_range_analyzer::record_ranges_from_incoming_edge): Make
sure the condition post-dominates the SSA definition before
recording into SSA_NAME_RANGE_INFO.

* gcc.dg/pr97953.c: New testcase.
gcc/gimple-ssa-evrp-analyze.c
gcc/testsuite/gcc.dg/pr97953.c [new file with mode: 0644]