------- Comment #26 from rguenth at gcc dot gnu dot org 2010-07-07 14:48
-------
The first difference appears in .093t.pre (comparing -nouid dumps):
cat ii386.3.3.i.gk.094t.pre | grep -v '# DEBUG' | diff -u ii386.3.3.i.094t.pre
- | less
void
_ZL31ix86_expand_vector_init_generalb12machine_modeP7rtx_defS1_.isra.0(boo
l, machine_mode, rtx, rtvec_def**) (bool mmx_ok, machine_mode mode, struct
rtx_d
ef * target, struct rtvec_def * * ISRA.45)
{
- int pretmp.167;
struct rtvec_def * pretmp.166;
int pretmp.165;
struct rtvec_def * pretmp.164;
@@ -4625,11 +4624,11 @@
goto <bb 8>;
<bb 44>:
- pretmp.166_99 = *ISRA.45_147(D);
+ pretmp.166_11 = *ISRA.45_147(D);
<bb 7>:
# i_173 = PHI <i_13(46), 0(44)>
- D.xxxx_10 = pretmp.166_99;
+ D.xxxx_10 = pretmp.166_11;
D.xxxx_12 = D.xxxx_10->elem[i_173];
ops[i_173] = D.xxxx_12;
i_13 = i_173 + 1;
where we have differences in assigned value-numbers and walk SCCs in a
different oder.
SCC consists of: i_172 i_21
vs.
SCC consists of: i_173 i_13
thus I think we have to look for an instability in the SCC walker.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44832