diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2008-09-12 22:55:23 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2008-09-12 22:55:23 +0000 |
commit | 82b336287a89bc41f0e88b7a067686174219b11d (patch) | |
tree | 1509936ba3ec5d5f89573c2cd6bccac4844793e1 /gcc/ira-emit.c | |
parent | 6ff5d1e44709af28c0b4982c914f1a5e3fa5a0f2 (diff) | |
download | gcc-82b336287a89bc41f0e88b7a067686174219b11d.tar.gz |
re PR rtl-optimization/37377 (Bootstrap failure compiling libgcc)
2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-opt/37377
* ira-build.c (common_loop_tree_node_dominator): Remove.
(copy_live_ranges_to_removed_store_destinations): New function.
(regno_top_level_allocno_map): Move to top level from ...
(ira_flattening): ... here. Use
copy_live_ranges_to_removed_store_destinations.
* ira-emit.c (generate_edge_moves): Fix a comment.
From-SVN: r140325
Diffstat (limited to 'gcc/ira-emit.c')
-rw-r--r-- | gcc/ira-emit.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c index 11199237d48..7fdaefb52e5 100644 --- a/gcc/ira-emit.c +++ b/gcc/ira-emit.c @@ -311,9 +311,11 @@ generate_edge_moves (edge e) if (REGNO (ALLOCNO_REG (src_allocno)) == REGNO (ALLOCNO_REG (dest_allocno))) continue; - /* Actually it is not a optimization we need this code because - the memory (remember about equivalent memory) might be ROM - (or placed in read only section). */ + /* Remove unnecessary stores at the region exit. We should do + this for readonly memory for sure and this is guaranteed by + that we never generate moves on region borders (see + checking ira_reg_equiv_invariant_p in function + change_loop). */ if (ALLOCNO_HARD_REGNO (dest_allocno) < 0 && ALLOCNO_HARD_REGNO (src_allocno) >= 0 && not_modified_p (src_allocno, dest_allocno)) |