end of the last basic block, then exit the loop.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22961
138bc75d-0d04-0410-961f-
82ee72b054a4
+Fri Oct 9 14:26:44 1998 Jeffrey A Law (law@cygnus.com)
+
+ * global.c (build_insn_chain): Verify no real insns exist past the
+ end of the last basic block, then exit the loop.
+
Fri Oct 9 11:44:47 1998 David Edelsohn <edelsohn@mhpcc.edu>
* loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
if (first == basic_block_end[b])
b++;
+
+ /* Stop after we pass the end of the last basic block. Verify that
+ no real insns are after the end of the last basic block.
+
+ We may want to reorganize the loop somewhat since this test should
+ always be the right exit test. */
+ if (b == n_basic_blocks)
+ {
+ for (first = NEXT_INSN (first) ; first; first = NEXT_INSN (first))
+ if (GET_RTX_CLASS (GET_CODE (first)) == 'i'
+ && GET_CODE (PATTERN (first)) != USE)
+ abort ();
+ break;
+ }
}
FREE_REG_SET (live_relevant_regs);
*p = 0;