From b15a7ae67a9e7e2d0791b2beb74cacdd5dc5fa08 Mon Sep 17 00:00:00 2001 From: Vladimir Makarov Date: Fri, 26 Sep 2008 00:14:30 +0000 Subject: re PR middle-end/37448 (cannot compile big function) 2008-09-25 Vladimir Makarov 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. From-SVN: r140674 --- gcc/ira-build.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gcc/ira-build.c') diff --git a/gcc/ira-build.c b/gcc/ira-build.c index fa0a39c..55a3beb 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) { -- cgit v1.1