diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-02-07 17:39:47 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-02-07 17:39:47 +0000 |
commit | a24d0647daf28e72d5ee32f38816da5eeded43dd (patch) | |
tree | fb9e3beecd853f5ca41d3df28587720e76b7b5bb /gcc/lcm.c | |
parent | 9a3bcffd72bd546edf923d22039b25bce3b3b490 (diff) | |
download | gcc-a24d0647daf28e72d5ee32f38816da5eeded43dd.tar.gz |
* lcm.c (optimize_mode_switching): Emit mode_set before the
JUMP_INSN of an abnormal edge.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39518 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lcm.c')
-rw-r--r-- | gcc/lcm.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/lcm.c b/gcc/lcm.c index ff442749605..d092c7a7089 100644 --- a/gcc/lcm.c +++ b/gcc/lcm.c @@ -1227,7 +1227,10 @@ optimize_mode_switching (file) previous block. */ if (eg->flags & EDGE_ABNORMAL) { - src_bb->end = emit_insn_after (mode_set, src_bb->end); + if (GET_CODE (src_bb->end) == JUMP_INSN) + emit_insn_before (mode_set, src_bb->end); + else + src_bb->end = emit_insn_after (mode_set, src_bb->end); bb_info[j][src_bb->index].computing = mode; RESET_BIT (transp[src_bb->index], j); } |