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
This commit is contained in:
Vladimir Makarov 2013-11-29 20:08:38 +00:00 committed by Vladimir Makarov
parent 913e2f0a00
commit 49f5efa5ea
3 changed files with 19 additions and 8 deletions

View File

@ -1,3 +1,15 @@
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

View File

@ -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)
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;

View File

@ -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;