This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/31090] Revision 121302 causes 30% performance regression
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Mar 2007 23:00:55 -0000
- Subject: [Bug tree-optimization/31090] Revision 121302 causes 30% performance regression
- References: <bug-31090-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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