aboutsummaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2014-10-22 12:01:59 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2014-10-22 12:01:59 +0000
commit75d25a02fcd6d85c314700b5b2e03743f1bec04a (patch)
tree1cfd60a35211e1d5fcc4f29a8a6797c182569882 /gcc/recog.c
parentd95a2703476dcbacd128577bb0c41b74588132b1 (diff)
downloadgcc-75d25a02fcd6d85c314700b5b2e03743f1bec04a.zip
gcc-75d25a02fcd6d85c314700b5b2e03743f1bec04a.tar.gz
gcc-75d25a02fcd6d85c314700b5b2e03743f1bec04a.tar.bz2
recog.h (extract_constrain_insn): Declare.
gcc/ * recog.h (extract_constrain_insn): Declare. * recog.c (extract_constrain_insn): New function. * lra.c (check_rtl): Use it. * postreload.c (reload_cse_simplify_operands): Likewise. * reg-stack.c (check_asm_stack_operands): Likewise. (subst_asm_stack_regs): Likewise. * regcprop.c (copyprop_hardreg_forward_1): Likewise. * regrename.c (build_def_use): Likewise. * sel-sched.c (get_reg_class): Likewise. * config/arm/arm.c (note_invalid_constants): Likewise. * config/s390/predicates.md (execute_operation): Likewise. From-SVN: r216553
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index 35cd22c..199c7de 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -2115,6 +2115,17 @@ extract_insn_cached (rtx_insn *insn)
recog_data.insn = insn;
}
+/* Do uncached extract_insn, constrain_operands and complain about failures.
+ This should be used when extracting a pre-existing constrained instruction
+ if the caller wants to know which alternative was chosen. */
+void
+extract_constrain_insn (rtx_insn *insn)
+{
+ extract_insn (insn);
+ if (!constrain_operands (reload_completed))
+ fatal_insn_not_found (insn);
+}
+
/* Do cached extract_insn, constrain_operands and complain about failures.
Used by insn_attrtab. */
void