------- 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

Reply via email to