From: Andrew Macleod Date: Mon, 16 Mar 1998 12:51:56 +0000 (+0000) Subject: final.c (final): Initialize the table indicating which instructions belong in which... X-Git-Tag: prereleases/egcs-1.1-prerelease~2090 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a8c3510c8f00f0061767bc47b693fbdec5de1ab8;p=thirdparty%2Fgcc.git final.c (final): Initialize the table indicating which instructions belong in which exception region. * final.c (final): Initialize the table indicating which instructions belong in which exception region. From-SVN: r18625 --- diff --git a/gcc/final.c b/gcc/final.c index 151697d05d40..70a6fbe047ea 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -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 (); } /* The final scan for one insn, INSN.