]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
final.c (final): Initialize the table indicating which instructions belong in which...
authorAndrew Macleod <amacleod@gcc.gnu.org>
Mon, 16 Mar 1998 12:51:56 +0000 (12:51 +0000)
committerAndrew Macleod <amacleod@gcc.gnu.org>
Mon, 16 Mar 1998 12:51:56 +0000 (12:51 +0000)
* final.c (final): Initialize the table indicating which instructions
belong in which exception region.

From-SVN: r18625

gcc/final.c

index 151697d05d40efc04f55983b31211610f71a532d..70a6fbe047ea297279b84b52c652630861cbfb1e 100644 (file)
@@ -1857,6 +1857,7 @@ final (first, file, optimize, prescan)
 {
   register rtx insn;
   int max_line = 0;
+  int max_uid = 0;
 
   last_ignored_compare = 0;
   new_block = 1;
@@ -1901,8 +1902,16 @@ final (first, file, optimize, prescan)
   bzero (line_note_exists, max_line + 1);
 
   for (insn = first; insn; insn = NEXT_INSN (insn))
-    if (GET_CODE (insn) == NOTE && NOTE_LINE_NUMBER (insn) > 0)
-      line_note_exists[NOTE_LINE_NUMBER (insn)] = 1;
+    {
+      if (INSN_UID (insn) > max_uid)       /* find largest UID */
+        max_uid = INSN_UID (insn);
+      if (GET_CODE (insn) == NOTE && NOTE_LINE_NUMBER (insn) > 0)
+        line_note_exists[NOTE_LINE_NUMBER (insn)] = 1;
+    }
+
+  /* Initialize insn_eh_region table if eh is being used. */
+  
+  init_insn_eh_region (first, max_uid);
 
   init_recog ();
 
@@ -1921,6 +1930,8 @@ final (first, file, optimize, prescan)
      if the last insn was a conditional branch.  */
   if (profile_block_flag && new_block)
     add_bb (file);
+
+  free_insn_eh_region ();
 }
 \f
 /* The final scan for one insn, INSN.