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?

Reply via email to