Commit 49f5efa5 by Vladimir Makarov Committed by Vladimir Makarov

re PR rtl-optimization/59340 (LRA enable-checking bootstrap failure since r205136)

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.

From-SVN: r205541
parent 913e2f0a
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> 2013-11-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/59289 PR target/59289
...@@ -2066,8 +2066,9 @@ check_rtl (bool final_p) ...@@ -2066,8 +2066,9 @@ check_rtl (bool final_p)
correctly decomposed. LRA can generate reloads for correctly decomposed. LRA can generate reloads for
decomposable addresses. The decomposition code checks the decomposable addresses. The decomposition code checks the
correctness of the addresses. So we don't need to check correctness of the addresses. So we don't need to check
the addresses here. */ the addresses here. Don't call insn_invalid_p here, it can
if (insn_invalid_p (insn, false)) change the code at this stage. */
if (recog_memoized (insn) < 0 && asm_noperands (PATTERN (insn)) < 0)
fatal_insn_not_found (insn); fatal_insn_not_found (insn);
} }
} }
...@@ -2266,14 +2267,13 @@ lra (FILE *f) ...@@ -2266,14 +2267,13 @@ lra (FILE *f)
init_insn_recog_data (); 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 #ifdef ENABLE_CHECKING
/* Some quick check on RTL generated by previous passes. */
check_rtl (false); check_rtl (false);
#endif #endif
lra_in_progress = 1;
lra_live_range_iter = lra_coalesce_iter = 0; lra_live_range_iter = lra_coalesce_iter = 0;
lra_constraint_iter = lra_constraint_iter_after_spill = 0; lra_constraint_iter = lra_constraint_iter_after_spill = 0;
lra_inheritance_iter = lra_undo_inheritance_iter = 0; lra_inheritance_iter = lra_undo_inheritance_iter = 0;
......
...@@ -315,8 +315,7 @@ insn_invalid_p (rtx insn, bool in_group) ...@@ -315,8 +315,7 @@ insn_invalid_p (rtx insn, bool in_group)
int icode = recog (pat, insn, int icode = recog (pat, insn,
(GET_CODE (pat) == SET (GET_CODE (pat) == SET
&& ! reload_completed && ! reload_completed
&& ! reload_in_progress && ! reload_in_progress)
&& ! lra_in_progress)
? &num_clobbers : 0); ? &num_clobbers : 0);
int is_asm = icode < 0 && asm_noperands (PATTERN (insn)) >= 0; int is_asm = icode < 0 && asm_noperands (PATTERN (insn)) >= 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment