https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65337

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org,
                   |                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I can reproduce this, but wonder if the bug isn't just earlier in CD-DCE where
the GIMPLE_COND should have been marked necessary.  The immediate
post-dominator is very far from the bb and has tons of incoming edges, some
PHIs are not marked as unnecessary and certainly aren't degenerate:

<bb 171>:
# _17 = PHI <0(15), 0(19), 0(21), 1(34), 0(115), 0(121), 0(129), 0(132),
0(137), 0(140), _112(143), 1(170), 0(31), 1(113), 0(50), 0(42), 0(37), 0(52),
0(46), 0(48)>
# JMPBUF_SAVE_926(ab) = PHI <JMPBUF_SAVE_6(ab)(15), JMPBUF_SAVE_590(ab)(19),
JMPBUF_SAVE_590(ab)(21), JMPBUF_SAVE_590(ab)(34), JMPBUF_SAVE_590(ab)(115),
JMPBUF_SAVE_590(ab)(121), JMPBUF_SAVE_590(ab)(129), JMPBUF_SAVE_590(ab)(132),
JMPBUF_SAVE_590(ab)(137), JMPBUF_SAVE_590(ab)(140), JMPBUF_SAVE_590(ab)(143),
JMPBUF_SAVE_590(ab)(170), JMPBUF_SAVE_590(ab)(31), JMPBUF_SAVE_590(ab)(113),
JMPBUF_SAVE_590(ab)(50), JMPBUF_SAVE_590(ab)(42), JMPBUF_SAVE_590(ab)(37),
JMPBUF_SAVE_590(ab)(52), JMPBUF_SAVE_590(ab)(46), JMPBUF_SAVE_590(ab)(48)>
# prephitmp_56 = PHI <addr_195(15), pretmp_285(19), pretmp_414(21),
pretmp_413(34), pretmp_418(115), pretmp_412(121), pretmp_286(129),
pretmp_419(132), pretmp_735(137), pretmp_713(140), pretmp_703(143),
pretmp_714(170), pretmp_801(31), pretmp_814(113), pretmp_352(50),
pretmp_353(42), pretmp_355(37), pretmp_189(52), pretmp_267(46), pretmp_261(48)>
# DEBUG addr => (const system__address) JMPBUF_SAVE_926(ab)
_796 = system__soft_links__set_jmpbuf_address;
_796 (prephitmp_56);

is the post_dom_bb, and

<bb 117>:
# DEBUG n => _201
_10 = _264;
_601 = _264 * 32;
_233 = _262 + _601;
_724 = MEM[(struct atree__atree_private_part__node_record[2147483648] *)_233 +
104B];
# DEBUG D#7737 => (types__node_id___XDLU_0__99999999) _724
# DEBUG id => D#7737
# DEBUG e => D#7737
_732 = (sizetype) _724;
_733 = _732 + 1;
_734 = *_262[_733].nkind;
_727 = _734 + 243;
if (_727 > 11)
  goto <bb 118>;
else
  goto <bb 122>;

is e->src.  Honza, this is your code, can you please have a look?

Reply via email to