* combine.c (distribute_notes): Handle REG_EH_REGION notes.
authorJeffrey A Law <law@cygnus.com>
Sat, 30 Jan 1999 18:18:16 +0000 (18:18 +0000)
committerJeff Law <law@gcc.gnu.org>
Sat, 30 Jan 1999 18:18:16 +0000 (11:18 -0700)
From-SVN: r24927

gcc/ChangeLog
gcc/combine.c

index b792d8dd398f7bfa6d9dae61618141e02315fc52..029e3ebe0237b9d49ca04dce5dc9586e689da693 100644 (file)
@@ -1,5 +1,7 @@
 Sat Jan 30 08:27:23 1999  Jeffrey A Law  (law@cygnus.com)
 
+       * combine.c (distribute_notes): Handle REG_EH_REGION notes.
+
        * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to
        function definition.
        (aliases_everything_p, write_dependence_p):Likewise.
index 5fc5231638b39506a8eecd92b0979933d9c9b5e7..0451707a22d9620d2416d5c1198ae6c69db6d404 100644 (file)
@@ -11431,6 +11431,17 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
          place = i3;
          break;
 
+       case REG_EH_REGION:
+         /* This note must remain with the call.  It should not be possible
+            for both I2 and I3 to be a call.  */
+         if (GET_CODE (i3) == CALL_INSN) 
+           place = i3;
+         else if (i2 && GET_CODE (i2) == CALL_INSN)
+           place = i2;
+         else
+           abort ();
+         break;
+
        case REG_UNUSED:
          /* Any clobbers for i3 may still exist, and so we must process
             REG_UNUSED notes from that insn.