[Bug tree-optimization/18031] OR of a bitfield and a constant is not optimized at tree level
aldot at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sun Jun 7 16:54:00 GMT 2009
------- Comment #10 from aldot at gcc dot gnu dot org 2009-06-07 16:54 -------
4.3.3 does not simplify it, 4.4.0 onward do.
for reference
4.3.3:
Substituing values and folding statements
Constants propagated: 0
Copies propagated: 0
Predicates folded: 0
ior (bD.1193)
{
<unnamed-unsigned:1> D.1200;
unsigned charD.10 D.1199;
signed charD.9 D.1198;
signed charD.9 D.1197;
<unnamed-unsigned:1> D.1196;
# BLOCK 2 freq:10000
# PRED: ENTRY [100.0%] (fallthru,exec)
# VUSE <SMT.4D.1206_7(D)> { SMT.4D.1206 }
D.1196_2 = bD.1193_1(D)->bitD.1192;
D.1197_3 = (signed charD.9) D.1196_2;
D.1198_4 = D.1197_3 | 1;
D.1199_5 = (unsigned charD.10) D.1198_4;
D.1200_6 = (<unnamed-unsigned:1>) D.1199_5;
# SMT.4D.1206_8 = VDEF <SMT.4D.1206_7(D)> { SMT.4D.1206 }
bD.1193_1(D)->bitD.1192 = D.1200_6;
return;
# SUCC: EXIT [100.0%]
}
4.4.0:
Pass statistics:
----------------
Constants propagated: 1
Number of ASSERT_EXPR expressions inserted: 1
Statements deleted: 5
ior (struct B * bD.1247)
{
<unnamed-unsigned:1> D.1254;
unsigned charD.10 D.1253;
signed charD.9 D.1252;
signed charD.9 D.1251;
<unnamed-unsigned:1> D.1250;
# BLOCK 2 freq:10000
# PRED: ENTRY [100.0%] (fallthru,exec)
# SMT.10D.1266_8 = VDEF <SMT.10D.1266_7(D)> { SMT.10D.1266 }
bD.1247_1(D)->bitD.1246 = 1;
return;
# SUCC: EXIT [100.0%]
}
--
aldot at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |4.3.3
Known to work| |4.4.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18031
More information about the Gcc-bugs
mailing list