summaryrefslogtreecommitdiff
path: root/gcc/lra.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-29 20:08:38 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-29 20:08:38 +0000
commit76f778fdb1dbbbe178237064d7acfac09648769a (patch)
tree638a6d05dbabed65d6bbb7a0bbaa7f1ae57c74e8 /gcc/lra.c
parent5b8e446439dd1a1c2fd17d6e9b979969598d255f (diff)
downloadgcc-76f778fdb1dbbbe178237064d7acfac09648769a.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205541 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lra.c')
-rw-r--r--gcc/lra.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/lra.c b/gcc/lra.c
index d0d9bcbc7e3..d21d8646a61 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -2066,8 +2066,9 @@ check_rtl (bool final_p)
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);
}
}
@@ -2266,14 +2267,13 @@ lra (FILE *f)
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;