summaryrefslogtreecommitdiff
path: root/gcc/ira-build.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-26 00:14:30 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-26 00:14:30 +0000
commit7f36fbdfd8c962fcc79e0ad1e80718fd24fe7fb0 (patch)
tree2741e87ab5d7829e6e4d8233ab8d254ba88a0f4b /gcc/ira-build.c
parent99ebeab133265276d413f49943b55e6ff723028f (diff)
downloadgcc-7f36fbdfd8c962fcc79e0ad1e80718fd24fe7fb0.tar.gz
2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/37448 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP. (ira_compress_allocno_live_ranges): New prototype. * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP. (coalesced_allocnos_living_at_program_points): New. (coalesced_allocnos_live_at_points_p, set_coalesced_allocnos_live_points): New functions. (coalesce_spill_slots): Rewrite. * ira-lives.c (remove_some_program_points_and_update_live_ranges, ira_compress_allocno_live_ranges): New functions. * ira-build.c (ira_flattening): Call ira_compress_allocno_live_ranges. (ira_build): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140674 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-build.c')
-rw-r--r--gcc/ira-build.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ira-build.c b/gcc/ira-build.c
index fa0a39c192a..55a3beb71bd 100644
--- a/gcc/ira-build.c
+++ b/gcc/ira-build.c
@@ -2371,6 +2371,8 @@ ira_flattening (int max_regno_before_emit, int ira_max_point_before_emit)
ira_swap_allocno_copy_ends_if_necessary (cp);
}
rebuild_regno_allocno_maps ();
+ if (ira_max_point != ira_max_point_before_emit)
+ ira_compress_allocno_live_ranges ();
ira_free (regno_top_level_allocno_map);
}
@@ -2427,6 +2429,7 @@ ira_build (bool loops_p)
ira_costs ();
ira_create_allocno_live_ranges ();
remove_unnecessary_regions ();
+ ira_compress_allocno_live_ranges ();
loops_p = more_one_region_p ();
if (loops_p)
{