This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][0/n] Merge from match-and-simplify


Sebastian Pop wrote:
> Richard Biener wrote:
> > looks like
> > RTL issues and/or IVOPTs issues?
> 
> I should have posted the first diff between the compilers with -fdump-tree-all:
> that would expose the problem at its root.

Looks like this is caused by the fwprop pass:

diff -u -r ./foo.i.087t.forwprop3 ../mas/foo.i.087t.forwprop3
--- ./foo.i.087t.forwprop3      2014-10-17 13:17:29.985327000 -0500
+++ ../mas/foo.i.087t.forwprop3 2014-10-17 13:17:29.308814000 -0500
@@ -5,6 +5,8 @@
 Pass statistics:
 ----------------
 
+Applying pattern match-comparison.pd:43, gimple-match.c:11747
+gimple_simplified to if (i_20 != 99)
 
 Pass statistics:
 ----------------
@@ -60,7 +62,7 @@
   i_17 = i_20 + 1;
   # DEBUG iD.2450 => i_17
   # DEBUG iD.2450 => i_17
-  if (i_17 != 100)
+  if (i_20 != 99)
     goto <bb 3>;
   else
     goto <bb 4>;

[...]
diff -u -r ./foo.i.089t.ccp3 ../mas/foo.i.089t.ccp3
--- ./foo.i.089t.ccp3   2014-10-17 13:17:29.991734000 -0500
+++ ../mas/foo.i.089t.ccp3      2014-10-17 13:17:29.316140000 -0500
@@ -53,13 +53,13 @@
 # VUSE <.MEM_16>
 return;
 
-i_17 : -->2 uses.
+i_17 : --> single use.
 i_20 = PHI <i_17(3), 0(2)>
 # DEBUG i => i_17
-if (i_17 != 100)
 # DEBUG i => i_17
 
-i_20 : -->2 uses.
+i_20 : -->3 uses.
+if (i_20 != 99)
 i_17 = i_20 + 1;
 _4 = (long unsigned int) i_20;
 # DEBUG i => i_20


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]