diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2013-11-29 20:08:38 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2013-11-29 20:08:38 +0000 |
commit | 49f5efa5ea35706895eadcdff8c03387be5058e6 (patch) | |
tree | 638a6d05dbabed65d6bbb7a0bbaa7f1ae57c74e8 /gcc/lra.c | |
parent | 913e2f0a0060056efbd619435a47f1eda72986d0 (diff) | |
download | gcc-49f5efa5ea35706895eadcdff8c03387be5058e6.zip gcc-49f5efa5ea35706895eadcdff8c03387be5058e6.tar.gz gcc-49f5efa5ea35706895eadcdff8c03387be5058e6.tar.bz2 |
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
Diffstat (limited to 'gcc/lra.c')
-rw-r--r-- | gcc/lra.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -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; |