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

--- Comment #7 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-09-19 
18:21:25 UTC ---
The compilation before and after the patch seems to diverge at expand
time and only in one instruction when processing this particular
gimple statement:

  MEM[(struct prop_value_d *)&D.39146].lattice_val = val$lattice_val_443;

When val$lattice_val is an enum type, it is expanded to:

(insn 4927 4926 4928 593 (set (mem/s/c:SI (reg/f:DI 2698) [10 MEM[(struct
prop_value_d *)&D.39146].lattice_val+0 S4 A128])
        (reg:SI 433 [ val$lattice_val ]))
/abuild/mjambor/trunk/src/gcc/tree-ssa-ccp.c:1685 -1
     (nil))

whereas when it is <unnamed-unsigned:32>, it is expanded to:

(insn 4927 4926 4928 593 (set (mem/s/c:SI (reg/f:DI 2698) [4 MEM[(struct
prop_value_d *)&D.39146].lattice_val+0 S4 A128])
        (reg:SI 433 [ val$lattice_val ]))
/abuild/mjambor/trunk/src/gcc/tree-ssa-ccp.c:1685 -1
     (nil))

The difference is 4 instead of 10.  Now I am entering an entirely
unchartered territory for me on quite a few levels so don't hold your
breath for any progress.  I will keep looking into this, though.

Reply via email to