This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/81766] [7/8 Regression] ICE in maybe_add_or_update_dep_1, at sched-deps.c:924 caused by r250815


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

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
If contemplating reversion, perhaps:
--- gcc/function.c.jj   2017-08-07 18:50:09.000000000 +0200
+++ gcc/function.c      2017-08-08 11:11:25.506239318 +0200
@@ -6073,17 +6073,16 @@ thread_prologue_and_epilogue_insns (void
       if (prologue_insn
          && BLOCK_FOR_INSN (prologue_insn) == NULL)
        prologue_insn = NULL;
-      if (split_prologue_insn || prologue_insn)
-       {
-         auto_sbitmap blocks (last_basic_block_for_fn (cfun));
-         bitmap_clear (blocks);
-         if (split_prologue_insn)
-           bitmap_set_bit (blocks,
-                           BLOCK_FOR_INSN (split_prologue_insn)->index);
-         if (prologue_insn)
-           bitmap_set_bit (blocks, BLOCK_FOR_INSN (prologue_insn)->index);
-         find_many_sub_basic_blocks (blocks);
-       }
+      auto_sbitmap blocks (last_basic_block_for_fn (cfun));
+      bitmap_clear (blocks);
+      if (split_prologue_insn)
+       bitmap_set_bit (blocks,
+                       BLOCK_FOR_INSN (split_prologue_insn)->index);
+      if (prologue_insn)
+       bitmap_set_bit (blocks, BLOCK_FOR_INSN (prologue_insn)->index);
+      bitmap_set_bit (blocks, entry_edge->dest->index);
+      bitmap_set_bit (blocks, orig_entry_edge->dest->index);
+      find_many_sub_basic_blocks (blocks);
     }

   default_rtl_profile ();

should be safe too (which does what we used to do before and additionally marks
the new blocks if needed and different from the old ones.
Can't test it right now though.  And, I really need to debug why we need to
find_many_sub_basic_blocks when split_prologue_seq is NULL and prologue_seq is
just
(note 17 0 0 NOTE_INSN_PROLOGUE_END)
alone.  Perhaps something inserts insns elsewhere.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]