http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45810
--- Comment #21 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2011-01-24 09:29:00 UTC --- I have regtested my working tree (with other patches) with the patch in comment #15 and got 180 new failures (likely 90 for both -m32 and -m64), but I have not checked that carefully). Among them, 124 are of the kind "scan-tree-dump-times fre *: dump file does not exist" and seem to be due to the extra pass producing fre1 and fre2. I can adjust the test for say fre2 and see what's happening. Then I see FAIL: gcc.dg/ipa/ipa-pta-14.c scan-ipa-dump pta "foo.result = { NULL a[^ ]* a[^ ]* c[^ ]* }" FAIL: gcc.dg/matrix/matrix-1.c scan-ipa-dump-times matrix-reorg "Flattened 3 dimensions" 1 FAIL: gcc.dg/matrix/matrix-2.c scan-ipa-dump-times matrix-reorg "Flattened 2 dimensions" 1 FAIL: gcc.dg/matrix/matrix-3.c scan-ipa-dump-times matrix-reorg "Flattened 2 dimensions" 1 FAIL: gcc.dg/matrix/matrix-6.c scan-ipa-dump-times matrix-reorg "Flattened 2 dimensions" 1 FAIL: gcc.dg/matrix/transpose-1.c scan-ipa-dump-times matrix-reorg "Flattened 3 dimensions" 1 FAIL: gcc.dg/matrix/transpose-1.c scan-ipa-dump-times matrix-reorg "Transposed" 3 FAIL: gcc.dg/matrix/transpose-2.c scan-ipa-dump-times matrix-reorg "Flattened 3 dimensions" 1 FAIL: gcc.dg/matrix/transpose-3.c scan-ipa-dump-times matrix-reorg "Flattened 2 dimensions" 1 FAIL: gcc.dg/matrix/transpose-3.c scan-ipa-dump-times matrix-reorg "Transposed" 2 FAIL: gcc.dg/matrix/transpose-4.c scan-ipa-dump-times matrix-reorg "Flattened 3 dimensions" 1 FAIL: gcc.dg/matrix/transpose-4.c scan-ipa-dump-times matrix-reorg "Transposed" 2 FAIL: gcc.dg/matrix/transpose-5.c scan-ipa-dump-times matrix-reorg "Flattened 3 dimensions" 1 FAIL: gcc.dg/matrix/transpose-6.c scan-ipa-dump-times matrix-reorg "Flattened 3 dimensions" 1 FAIL: gcc.dg/torture/pta-structcopy-1.c -O2 scan-tree-dump alias "points-to vars: { i }" FAIL: gcc.dg/torture/pta-structcopy-1.c -O3 -fomit-frame-pointer scan-tree-dump alias "points-to vars: { i }" FAIL: gcc.dg/torture/pta-structcopy-1.c -O3 -g scan-tree-dump alias "points-to vars: { i }" FAIL: gcc.dg/torture/pta-structcopy-1.c -Os scan-tree-dump alias "points-to vars: { i }" FAIL: gcc.dg/torture/pta-structcopy-1.c -O2 -flto -flto-partition=none scan-tree-dump alias "points-to vars: { i }" FAIL: gcc.dg/torture/pta-structcopy-1.c -O2 -flto scan-tree-dump alias "points-to vars: { i }" FAIL: gcc.dg/tree-ssa/pta-ptrarith-1.c scan-tree-dump ealias "q_., points-to vars: { k }" FAIL: gcc.dg/tree-ssa/sra-9.c scan-tree-dump-times optimized "= s.b" 0 FAIL: gcc.dg/tree-ssa/ssa-dce-4.c scan-tree-dump-times cddce1 "a\[[^ FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg "f6: va_list escapes 0, needs to save (3|12|24) GPR units" FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg "f11: va_list escapes 0, needs to save (3|12|24) GPR units" FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg "f12: va_list escapes 0, needs to save [1-9][0-9]* GPR units" FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg "f13: va_list escapes 0, needs to save [1-9][0-9]* GPR units" FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg "f14: va_list escapes 0, needs to save [1-9][0-9]* GPR units" FAIL: g++.dg/ipa/iinline-1.C scan-ipa-dump inline "String::funcOne[^\n]*inline copy in int main" FAIL: g++.dg/ipa/iinline-2.C scan-ipa-dump inline "String::funcOne[^\n]*inline copy in int main" So far I have only looked at gcc.dg/ipa/ipa-pta-14.c, for which grepping foo.result yields p_1 = foo.result foo.result = foo.arg1 Equivalence classes for Direct node node id 15:foo.result are pointer: 8, location:0 Unifying foo.result to foo.arg0 foo.result = { a.0+32 } same as foo.arg0 instead of p_1 = foo.result foo.result = D.2736_3 Equivalence classes for Direct node node id 15:foo.result are pointer: 13, location:0 Unifying foo.result to p_1 foo.result = { NULL a.0+32 a.64+64 c.0+32 } same as p_1 Is it a missed optimization or wrong-code?