tree-optimization/98024 - fix rnflow regression
authorRichard Biener <rguenther@suse.de>
Fri, 27 Nov 2020 11:01:25 +0000 (12:01 +0100)
committerRichard Biener <rguenther@suse.de>
Fri, 27 Nov 2020 11:50:32 +0000 (12:50 +0100)
commitb6a7b72c6c91cc0d800a603a59e96fbcb07793ba
tree5c547f7ace58e69a97cd90fa1bbe6d299ff760aa
parent6fb9b4c97690c5750e49c32fa2a373a7c66c5d46
tree-optimization/98024 - fix rnflow regression

The change to make PRE insertion iterate less had a typo in checking
successors RPO state.  Fixing this exposes that regular PRE insertion
when facing a value that is the same on all edges inserts an
assignment in place of a PHI node but fails to set up things so that
this insertion is not repeated (it correctly does not return
'new_stuff').  But with the new iteration scheme this causes us
to repeatedly insert such assignment and change AVAIL_OUT over to
the newly inserted expression.  The fix is to treat this as PHI
and insert into PHI_GEN, avoiding repetitive insertion.

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

PR tree-optimization/98024
* tree-ssa-pre.c (insert): Fix successor RPO order check.
(do_pre_regular_insertion): When inserting an assignment
in place of an all-same-value PHI still record that into
PHI_GEN.
gcc/tree-ssa-pre.c