summaryrefslogtreecommitdiff
path: root/gcc/ifcvt.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-19 19:13:03 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-19 19:13:03 +0000
commit8308e7457d66e0160d69f520b61e26240f217f5e (patch)
tree6d8e477733d842d809fa739ad92b73bc6b495e09 /gcc/ifcvt.c
parent939d0e9e368099db32e90ccf897ba66654441c03 (diff)
downloadgcc-8308e7457d66e0160d69f520b61e26240f217f5e.tar.gz
PR target/15550
* ifcvt.c (noce_try_move): Recognize all generated instructions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83395 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r--gcc/ifcvt.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 270cc59b204..79774adc90a 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -745,6 +745,15 @@ noce_try_move (struct noce_if_info *if_info)
seq = get_insns ();
unshare_ifcvt_sequence (if_info, seq);
end_sequence ();
+
+ /* Make sure that all of the instructions emitted are
+ recognizable. As an excersise for the reader, build
+ a general mechanism that allows proper placement of
+ required clobbers. */
+ for (y = seq; y ; y = NEXT_INSN (y))
+ if (recog_memoized (y) == -1)
+ return FALSE;
+
emit_insn_before_setloc (seq, if_info->jump,
INSN_LOCATOR (if_info->insn_a));
}