tree-optimization/107323 - loop distribution partition ordering issue
authorRichard Biener <rguenther@suse.de>
Fri, 21 Oct 2022 07:45:44 +0000 (09:45 +0200)
committerRichard Biener <rguenther@suse.de>
Fri, 21 Oct 2022 09:16:33 +0000 (11:16 +0200)
commit09f9814dc02c161ed78604c6df70b19b596f7524
tree55b12e33a3aa2b4d4646cb45244ed2cfc392efee
parentbdac4b47cbdac52c7082c02f54ed07197161cb4d
tree-optimization/107323 - loop distribution partition ordering issue

The following reverts part of the PR94125 fix which causes us to
use a bogus partition ordering after applying versioning for
alias to the testcase in PR107323.  Instead PR94125 is fixed by
appropriately considering to be merged SCCs when skipping edges
we want to ignore because of the alias versioning.

PR tree-optimization/107323
* tree-loop-distribution.cc (pg_unmark_merged_alias_ddrs):
New function.
(loop_distribution::break_alias_scc_partitions): Revert
postorder save/restore from the PR94125 fix.  Instead
make sure to not ignore edges from SCCs we are going to
merge.

* gcc.dg/tree-ssa/pr107323.c: New testcase.
gcc/testsuite/gcc.dg/tree-ssa/pr107323.c [new file with mode: 0644]
gcc/tree-loop-distribution.cc