[Bug tree-optimization/18219] [4.0 Regression] gcc-4.0.0 bloats code by 31%
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Jan 21 07:57:00 GMT 2005
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-21 07:57 -------
I think one of the problems is that ivopts causes out of ssa not to Coalesce two SSA_NAME:
Before out of ssa:
D.1127_16 = *ivtmp.8_9;
D.1128_21 = *ivtmp.12_30;
D.1129_22 = D.1127_16 - D.1128_21;
*ivtmp.12_30 = D.1129_22;
ivtmp.3_17 = ivtmp.3_18 + 1;
# ivtmp.12_30 = PHI <ivtmp.12_35(0), ivtmp.12_31(1)>;
# ivtmp.8_9 = PHI <ivtmp.8_29(0), ivtmp.8_7(1)>;
# ivtmp.3_18 = PHI <0(0), ivtmp.3_17(1)>;
<L1>:;
ivtmp.8_7 = ivtmp.8_9 + 4B;
ivtmp.12_31 = ivtmp.12_30 + 4B;
D.1171_37 = ivtmp.3_18 + D.1163_6;
i_38 = (int) D.1171_37;
if (i_38 <= maxLen_4) goto <L0>; else goto <L2>;
After:
<L0>:;
*ivtmp.12 = *ivtmp.17 - *ivtmp.12;
ivtmp.3 = ivtmp.3 + 1;
ivtmp.17 = ivtmp.8;
ivtmp.12 = ivtmp.16;
<L1>:;
ivtmp.8 = ivtmp.17 + 4B;
ivtmp.16 = ivtmp.12 + 4B;
if ((int) (ivtmp.3 + D.1163) <= maxLen) goto <L0>; else goto <L2>;
Note how there are two moves in the BB for L0.
Coalesce list: (6)ivtmp.12_30 & (7)ivtmp.12_31 [map: 6, 7] : Fail due to conflict
Coalesce list: (1)ivtmp.8_7 & (2)ivtmp.8_9 [map: 1, 2] : Fail due to conflict
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18219
More information about the Gcc-bugs
mailing list