diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-29 20:08:38 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-29 20:08:38 +0000 |
commit | 76f778fdb1dbbbe178237064d7acfac09648769a (patch) | |
tree | 638a6d05dbabed65d6bbb7a0bbaa7f1ae57c74e8 /gcc/lra.c | |
parent | 5b8e446439dd1a1c2fd17d6e9b979969598d255f (diff) | |
download | gcc-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.c | 12 |
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; |