(no_conflict_p): Reject sequences with foreign insns.
authorJim Wilson <wilson@gcc.gnu.org>
Thu, 3 Apr 1997 23:08:40 +0000 (15:08 -0800)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 3 Apr 1997 23:08:40 +0000 (15:08 -0800)
From-SVN: r13838

gcc/local-alloc.c

index 6f9c796d93cac41d063daedeef4b45969d644e27..8e75aa804888cab32b489e19fe2b5945813499b4 100644 (file)
@@ -2364,8 +2364,12 @@ no_conflict_p (insn, r0, r1)
        if (find_reg_note (p, REG_DEAD, r1))
          ok = 1;
 
-       if (reg_mentioned_p (r1, PATTERN (p))
-           && ! find_reg_note (p, REG_NO_CONFLICT, r1))
+       /* There must be a REG_NO_CONFLICT note on every insn, otherwise
+          some earlier optimization pass has inserted instructions into
+          the sequence, and it is not safe to perform this optimization.
+          Note that emit_no_conflict_block always ensures that this is
+          true when these sequences are created.  */
+       if (! find_reg_note (p, REG_NO_CONFLICT, r1))
          return 0;
       }