The following patch fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63397
The patch was successfully bootstrapped on x86-64. Committed as rev. 218766. 2014-12-15 Vladimir Makarov <vmaka...@redhat.com> PR rtl-optimization/63397 * ira-int.h (ira_overall_cost, ira_reg_cost, ira_mem_cost): Use int64_t. (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto. * ira.c (ira_overall_cost, ira_overall_cost_before): Ditto. (ira_reg_cost, ira_mem_cost): Ditto. (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto. (calculate_allocation_cost, do_reload): Use the right format for int64_t values.
Index: ira.c =================================================================== --- ira.c (revision 218761) +++ ira.c (working copy) @@ -431,9 +431,9 @@ struct ira_spilled_reg_stack_slot *ira_s the allocnos assigned to memory, cost of loads, stores and register move insns generated for pseudo-register live range splitting (see ira-emit.c). */ -int ira_overall_cost, overall_cost_before; -int ira_reg_cost, ira_mem_cost; -int ira_load_cost, ira_store_cost, ira_shuffle_cost; +int64_t ira_overall_cost, overall_cost_before; +int64_t ira_reg_cost, ira_mem_cost; +int64_t ira_load_cost, ira_store_cost, ira_shuffle_cost; int ira_move_loops_num, ira_additional_jumps_num; /* All registers that can be eliminated. */ @@ -2489,10 +2489,15 @@ calculate_allocation_cost (void) if (internal_flag_ira_verbose > 0 && ira_dump_file != NULL) { fprintf (ira_dump_file, - "+++Costs: overall %d, reg %d, mem %d, ld %d, st %d, move %d\n", + "+++Costs: overall %"PRId64 + ", reg %"PRId64 + ", mem %"PRId64 + ", ld %"PRId64 + ", st %"PRId64 + ", move %"PRId64, ira_overall_cost, ira_reg_cost, ira_mem_cost, ira_load_cost, ira_store_cost, ira_shuffle_cost); - fprintf (ira_dump_file, "+++ move loops %d, new jumps %d\n", + fprintf (ira_dump_file, "\n+++ move loops %d, new jumps %d\n", ira_move_loops_num, ira_additional_jumps_num); } @@ -5422,7 +5427,8 @@ do_reload (void) if (internal_flag_ira_verbose > 0 && ira_dump_file != NULL && overall_cost_before != ira_overall_cost) - fprintf (ira_dump_file, "+++Overall after reload %d\n", ira_overall_cost); + fprintf (ira_dump_file, "+++Overall after reload %"PRId64 "\n", + ira_overall_cost); flag_ira_share_spill_slots = saved_flag_ira_share_spill_slots; Index: ira-int.h =================================================================== --- ira-int.h (revision 218760) +++ ira-int.h (working copy) @@ -620,9 +620,9 @@ extern struct ira_spilled_reg_stack_slot allocnos assigned to hard-registers, cost of the allocnos assigned to memory, cost of loads, stores and register move insns generated for pseudo-register live range splitting (see ira-emit.c). */ -extern int ira_overall_cost; -extern int ira_reg_cost, ira_mem_cost; -extern int ira_load_cost, ira_store_cost, ira_shuffle_cost; +extern int64_t ira_overall_cost; +extern int64_t ira_reg_cost, ira_mem_cost; +extern int64_t ira_load_cost, ira_store_cost, ira_shuffle_cost; extern int ira_move_loops_num, ira_additional_jumps_num;