+2013-11-29 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/59340
+ * lra.c (check_rtl): Use recog_memoized instead of insn_invalid_p.
+
+ Revert
+ 2013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com>
+
+ * lra.c (lra): Set lra_in_progress before check_rtl call.
+ * recog.c (insn_invalid_p): Add !lra_in_progress to prevent
+ adding clobber regs when LRA is running.
+
2013-11-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/59289
correctly decomposed. LRA can generate reloads for
decomposable addresses. The decomposition code checks the
correctness of the addresses. So we don't need to check
- the addresses here. */
- if (insn_invalid_p (insn, false))
+ the addresses here. Don't call insn_invalid_p here, it can
+ change the code at this stage. */
+ if (recog_memoized (insn) < 0 && asm_noperands (PATTERN (insn)) < 0)
fatal_insn_not_found (insn);
}
}
init_insn_recog_data ();
- /* We can not set up reload_in_progress because it prevents new
- pseudo creation. */
- lra_in_progress = 1;
-
#ifdef ENABLE_CHECKING
+ /* Some quick check on RTL generated by previous passes. */
check_rtl (false);
#endif
+ lra_in_progress = 1;
+
lra_live_range_iter = lra_coalesce_iter = 0;
lra_constraint_iter = lra_constraint_iter_after_spill = 0;
lra_inheritance_iter = lra_undo_inheritance_iter = 0;
int icode = recog (pat, insn,
(GET_CODE (pat) == SET
&& ! reload_completed
- && ! reload_in_progress
- && ! lra_in_progress)
+ && ! reload_in_progress)
? &num_clobbers : 0);
int is_asm = icode < 0 && asm_noperands (PATTERN (insn)) >= 0;