Fix PRE topological expression set sorting
authorRichard Biener <rguenther@suse.de>
Wed, 11 Nov 2020 15:09:17 +0000 (16:09 +0100)
committerRichard Biener <rguenther@suse.de>
Wed, 11 Nov 2020 15:13:10 +0000 (16:13 +0100)
commit86cca5cc14602814b98e55aae313fbe237af1b04
treeae6605d40549e2cda343c4e11c06fe3bed3ed126
parent364ad1d44b43a22025814f7eb664173ce35b5878
Fix PRE topological expression set sorting

This fixes sorted_array_from_bitmap_set to do a topological sort
as required by re-using what PHI-translation does, namely a DFS
walk with the help of bitmap_find_leader.  The proper result
is verified by extra checking in clean () (which would have tripped
before) and for the testcase I'm working at during the last
patches (PR97623) it is neutral in compile-time cost.

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

* tree-ssa-pre.c (pre_expr_DFS): New function.
(sorted_array_from_bitmap_set): Use it to properly
topologically sort the expression set.
(clean): Verify we've cleaned everything we should.
gcc/tree-ssa-pre.c