diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-06-07 20:17:28 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-06-07 16:17:28 -0400 |
commit | 28bf9c88431fcfd0e60e77cd1450076b76e0b22b (patch) | |
tree | 22ad5015296068755fad1f65e11de68239bb7465 /gcc | |
parent | 47c2a318dd7d75b6a44dc12c2d1f9cbf01069159 (diff) | |
download | gcc-28bf9c88431fcfd0e60e77cd1450076b76e0b22b.zip gcc-28bf9c88431fcfd0e60e77cd1450076b76e0b22b.tar.gz gcc-28bf9c88431fcfd0e60e77cd1450076b76e0b22b.tar.bz2 |
global.c (build_insn_chain): Allow ADDR_VEC or ADDR_DIF_VEC after end of last block if...
* global.c (build_insn_chain): Allow ADDR_VEC or ADDR_DIF_VEC after
end of last block if last real insn is a JUMP_INSN.
From-SVN: r42977
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/global.c | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1f9ef86..266904d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Jun 7 16:17:40 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * global.c (build_insn_chain): Allow ADDR_VEC or ADDR_DIF_VEC after + end of last block if last real insn is a JUMP_INSN. + 2001-06-07 Joseph S. Myers <jsm28@cam.ac.uk> * NEWS: Regenerate. diff --git a/gcc/global.c b/gcc/global.c index 2f757bd..4460836 100644 --- a/gcc/global.c +++ b/gcc/global.c @@ -1851,11 +1851,17 @@ build_insn_chain (first) 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. */ + always be the right exit test. Allow an ADDR_VEC or ADDR_DIF_VEC if + the previous real insn is a JUMP_INSN. */ if (b == n_basic_blocks) { for (first = NEXT_INSN (first) ; first; first = NEXT_INSN (first)) - if (INSN_P (first) && GET_CODE (PATTERN (first)) != USE) + if (INSN_P (first) + && GET_CODE (PATTERN (first)) != USE + && ! ((GET_CODE (PATTERN (first)) == ADDR_VEC + || GET_CODE (PATTERN (first)) == ADDR_DIFF_VEC) + && prev_real_insn (first) != 0 + && GET_CODE (prev_real_insn (first)) == JUMP_INSN)) abort (); break; } |