[Bug tree-optimization/65337] [5 Regression] bootstrap-lto gnat1 linktime ICE: gcc/ada/exp_aggr.adb:6570:0: internal compiler error: in forward_edge_to_pdom, at tree-ssa-dce.c:1086
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65337 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P2
[Bug tree-optimization/65337] [5 Regression] bootstrap-lto gnat1 linktime ICE: gcc/ada/exp_aggr.adb:6570:0: internal compiler error: in forward_edge_to_pdom, at tree-ssa-dce.c:1086
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65337 --- Comment #3 from Jan Hubicka hubicka at gcc dot gnu.org --- Indeed, the cd-dce is one the worst documented of the tradition SSA optimizations. I commented on this to Jakum on IRC. The mechanizm that should prevent conditional from being removed is the control dependency. For every PHI argument, the control dependent conditional is marked live. So it is a question why the control dependent conditional is not live here - one of problems I remember was that control dependency is defined for basic blocks, while PHI handling needs it for edges. This mostly does not matter because critical edges are split, but with abnormal edges perhaps we manage to get things wrong. I am finishing paper today and fly to Vancouver at Tuesday, but will try to look into this as time allows.
[Bug tree-optimization/65337] [5 Regression] bootstrap-lto gnat1 linktime ICE: gcc/ada/exp_aggr.adb:6570:0: internal compiler error: in forward_edge_to_pdom, at tree-ssa-dce.c:1086
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65337 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-03-13 Ever confirmed|0 |1 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org --- Thus confirmed at least. IIRC this is a tricky area ;) (but the issue is surely latent since quite some time)
[Bug tree-optimization/65337] [5 Regression] bootstrap-lto gnat1 linktime ICE: gcc/ada/exp_aggr.adb:6570:0: internal compiler error: in forward_edge_to_pdom, at tree-ssa-dce.c:1086
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__) _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?
[Bug tree-optimization/65337] [5 Regression] bootstrap-lto gnat1 linktime ICE: gcc/ada/exp_aggr.adb:6570:0: internal compiler error: in forward_edge_to_pdom, at tree-ssa-dce.c:1086
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65337 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords||build Target||x86_64-*-* Component|bootstrap |tree-optimization Target Milestone|--- |5.0 Summary|5.0 bootstrap-lto gnat1 |[5 Regression] |linktime ICE: |bootstrap-lto gnat1 |gcc/ada/exp_aggr.adb:6570:0 |linktime ICE: |: internal compiler error: |gcc/ada/exp_aggr.adb:6570:0 |in forward_edge_to_pdom, at |: internal compiler error: |tree-ssa-dce.c:1086 |in forward_edge_to_pdom, at ||tree-ssa-dce.c:1086