Commit 0ddd0408 by Robert Suchanek Committed by Jeff Law

lra.c (lra): Set lra_in_progress before check_rtl call.

    	* 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: r205136
parent 696d76a5
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-20 Maciej W. Rozycki <macro@codesourcery.com> 2013-11-20 Maciej W. Rozycki <macro@codesourcery.com>
* config/mips/mips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64 * config/mips/mips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64
...@@ -2238,6 +2238,10 @@ lra (FILE *f) ...@@ -2238,6 +2238,10 @@ 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
check_rtl (false); check_rtl (false);
#endif #endif
...@@ -2248,10 +2252,6 @@ lra (FILE *f) ...@@ -2248,10 +2252,6 @@ lra (FILE *f)
setup_reg_spill_flag (); setup_reg_spill_flag ();
/* We can not set up reload_in_progress because it prevents new
pseudo creation. */
lra_in_progress = 1;
/* Function remove_scratches can creates new pseudos for clobbers -- /* Function remove_scratches can creates new pseudos for clobbers --
so set up lra_constraint_new_regno_start before its call to so set up lra_constraint_new_regno_start before its call to
permit changing reg classes for pseudos created by this permit changing reg classes for pseudos created by this
......
...@@ -314,7 +314,9 @@ insn_invalid_p (rtx insn, bool in_group) ...@@ -314,7 +314,9 @@ insn_invalid_p (rtx insn, bool in_group)
clobbers. */ clobbers. */
int icode = recog (pat, insn, int icode = recog (pat, insn,
(GET_CODE (pat) == SET (GET_CODE (pat) == SET
&& ! reload_completed && ! reload_in_progress) && ! reload_completed
&& ! 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