This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/81621] ICE in delete_insn, at cfgrtl.c:167 with s390x cross compiler
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 02 Aug 2017 18:00:23 +0000
- Subject: [Bug target/81621] ICE in delete_insn, at cfgrtl.c:167 with s390x cross compiler
- Auto-submitted: auto-generated
- References: <bug-81621-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81621
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2017-08-02
Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 41896
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41896&action=edit
gcc8-pr81621.patch
Untested fix. The problem is that the bb-reorder pass does:
df_set_flags (DF_DEFER_INSN_RESCAN);
but doesn't call df_finish_pass nor return TODO_df_finish to let the pass
manager to handle that. And we enter ira with that changeable flag, where
e.g.:
delete_insn (move_insn);
while ((other_def = DF_REG_DEF_CHAIN (REGNO (other_reg))))
delete_insn (DF_REF_INSN (other_def));
delete_insn (def_insn);
in move_unallocated_pseudos heavily relies on df updates not being deferred.