summaryrefslogtreecommitdiff
path: root/gcc/ira-emit.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-12 22:55:23 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-12 22:55:23 +0000
commit76b340dbd7165cfaaa427c88c58e61197134e144 (patch)
tree1509936ba3ec5d5f89573c2cd6bccac4844793e1 /gcc/ira-emit.c
parent26b84749b164d326329431d96fcf33e9e8f7d97e (diff)
downloadgcc-76b340dbd7165cfaaa427c88c58e61197134e144.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140325 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-emit.c')
-rw-r--r--gcc/ira-emit.c8
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))