------- Comment #7 from rguenth at gcc dot gnu dot org  2007-03-09 23:00 -------
The obvoious difference is more precise alias information:

-bar: Maximum number of VOPS needed per statement: 80
+bar: Maximum number of VOPS needed per statement: 71

(and the resulting different partitioning).

What may cause performance problems are changes like

-  # VUSE <MPT.120_683>
+  # VUSE <SMT.109_703, MPT.120_704>
   D.1662_631 = (*D.1657_625)[D.1661_630];

-  # MPT.120_690 = VDEF <MPT.120_683>
+  # SMT.109_711 = VDEF <SMT.109_703>
+  # MPT.120_712 = VDEF <MPT.120_704>
   (*D.1634_608)[D.1644_621] = D.1666_635;

as our tree memory optimizers don't like statements with multiple virtual
operands (at least store_ccp and store_copyprop don't, maybe PRE doesn't care,
I'm also not sure about LIM).  Other than that, more precise alias information
can cause more register pressure, too.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31090

Reply via email to