aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-dce.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-11-22 11:23:55 +0100
committerRichard Biener <rguenther@suse.de>2021-11-22 12:18:08 +0100
commitf456eaf2e0fb3ceb51c641fd348429bf59d215a9 (patch)
treeed74f113f3f0e543b3e6260e10310be8e324736b /gcc/tree-ssa-dce.c
parent4b1e14346a08554dc33f71fca980578a7a3e38a2 (diff)
downloadgcc-f456eaf2e0fb3ceb51c641fd348429bf59d215a9.zip
gcc-f456eaf2e0fb3ceb51c641fd348429bf59d215a9.tar.gz
gcc-f456eaf2e0fb3ceb51c641fd348429bf59d215a9.tar.bz2
tree-optimization/103351 - avoid compare-debug issue wrt CD-DCE change
This avoids differences in the split edge of a cluster due to different order of same key PHI args when sorting by sorting after the edge destination index as second key. 2021-11-22 Richard Biener <rguenther@suse.de> PR tree-optimization/103351 * tree-ssa-dce.c (sort_phi_args): Sort after e->dest_idx as second key. * g++.dg/torture/pr103351.C: New testcase.
Diffstat (limited to 'gcc/tree-ssa-dce.c')
-rw-r--r--gcc/tree-ssa-dce.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index dbf02c4..e3e6f09 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -1626,6 +1626,10 @@ sort_phi_args (const void *a_, const void *b_)
return -1;
else if (ha > hb)
return 1;
+ else if (a->first->dest_idx < b->first->dest_idx)
+ return -1;
+ else if (a->first->dest_idx > b->first->dest_idx)
+ return 1;
else
return 0;
}