This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/17549] [4.0 Regression] 10% increase in codesize with C code compared to GCC 3.3
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 7 Feb 2005 23:16:27 -0000
- Subject: [Bug tree-optimization/17549] [4.0 Regression] 10% increase in codesize with C code compared to GCC 3.3
- References: <20040918113641.17549.miguel55angel@hotmail.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From steven at gcc dot gnu dot org 2005-02-07 23:16 -------
Note the following:
x_4 not coalesced with x --> New temp: 'x.0'
x_5 not coalesced with x.0 --> New temp: 'x.1'
Not very useful, because x_4 and x_5 have no uses left. So you start with
this:
foo (xD.1447, aD.1448, bD.1449)
{
intD.0 D.1452;
# BLOCK 0
# PRED: ENTRY [100.0%] (fallthru,exec)
xD.1447_3 = aD.1448_1 + bD.1449_2;
xD.1447_4 = aD.1448_1 * xD.1447_3;
xD.1447_5 = bD.1449_2 * xD.1447_4;
return xD.1447_5;
# SUCC: EXIT [100.0%]
}
and you end with this:
foo (xD.1447, aD.1448, bD.1449)
{
intD.0 x.1D.1456;
intD.0 x.0D.1455;
intD.0 D.1452;
# BLOCK 0
# PRED: ENTRY [100.0%] (fallthru,exec)
return bD.1449 * aD.1448 * (aD.1448 + bD.1449);
# SUCC: EXIT [100.0%]
}
Note the redundant temporaries.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17549