diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2014-09-12 07:27:10 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-09-12 07:27:10 +0000 |
commit | 19c708dc8316d80ca3611106fd989b317d55b968 (patch) | |
tree | 839e2de96e8104f4dc92dbb429fc966fdab1fdd6 /gcc/ira.c | |
parent | 44fc1b7b63f6d6ae9f9f618e0f6b7a40e06f08e3 (diff) | |
download | gcc-19c708dc8316d80ca3611106fd989b317d55b968.zip gcc-19c708dc8316d80ca3611106fd989b317d55b968.tar.gz gcc-19c708dc8316d80ca3611106fd989b317d55b968.tar.bz2 |
ira.h (ira_finish_once): Delete.
gcc/
* ira.h (ira_finish_once): Delete.
* ira-int.h (target_ira_int::~target_ira_int): Declare.
(target_ira_int::free_ira_costs): Likewise.
(target_ira_int::free_register_move_costs): Likewise.
(ira_finish_costs_once): Delete.
* ira.c (free_register_move_costs): Replace with...
(target_ira_int::free_register_move_costs): ...this new function.
(target_ira_int::~target_ira_int): Define.
(ira_init): Call free_register_move_costs as a member function rather
than a global function.
(ira_finish_once): Delete.
* ira-costs.c (free_ira_costs): Replace with...
(target_ira_int::free_ira_costs): ...this new function.
(ira_init_costs): Call free_ira_costs as a member function rather
than a global function.
(ira_finish_costs_once): Delete.
* target-globals.c (target_globals::~target_globals): Call the
target_ira_int destructor.
* toplev.c: Include lra.h.
(finalize): Call lra_finish_once rather than ira_finish_once.
From-SVN: r215200
Diffstat (limited to 'gcc/ira.c')
-rw-r--r-- | gcc/ira.c | 39 |
1 files changed, 18 insertions, 21 deletions
@@ -1674,40 +1674,46 @@ ira_init_once (void) /* Free ira_max_register_move_cost, ira_may_move_in_cost and ira_may_move_out_cost for each mode. */ -static void -free_register_move_costs (void) +void +target_ira_int::free_register_move_costs (void) { int mode, i; /* Reset move_cost and friends, making sure we only free shared table entries once. */ for (mode = 0; mode < MAX_MACHINE_MODE; mode++) - if (ira_register_move_cost[mode]) + if (x_ira_register_move_cost[mode]) { for (i = 0; - i < mode && (ira_register_move_cost[i] - != ira_register_move_cost[mode]); + i < mode && (x_ira_register_move_cost[i] + != x_ira_register_move_cost[mode]); i++) ; if (i == mode) { - free (ira_register_move_cost[mode]); - free (ira_may_move_in_cost[mode]); - free (ira_may_move_out_cost[mode]); + free (x_ira_register_move_cost[mode]); + free (x_ira_may_move_in_cost[mode]); + free (x_ira_may_move_out_cost[mode]); } } - memset (ira_register_move_cost, 0, sizeof ira_register_move_cost); - memset (ira_may_move_in_cost, 0, sizeof ira_may_move_in_cost); - memset (ira_may_move_out_cost, 0, sizeof ira_may_move_out_cost); + memset (x_ira_register_move_cost, 0, sizeof x_ira_register_move_cost); + memset (x_ira_may_move_in_cost, 0, sizeof x_ira_may_move_in_cost); + memset (x_ira_may_move_out_cost, 0, sizeof x_ira_may_move_out_cost); last_mode_for_init_move_cost = -1; } +target_ira_int::~target_ira_int () +{ + free_ira_costs (); + free_register_move_costs (); +} + /* This is called every time when register related information is changed. */ void ira_init (void) { - free_register_move_costs (); + this_target_ira_int->free_register_move_costs (); setup_reg_mode_hard_regset (); setup_alloc_regs (flag_omit_frame_pointer != 0); setup_class_subset_and_memory_move_costs (); @@ -1719,15 +1725,6 @@ ira_init (void) ira_init_costs (); } -/* Function called once at the end of compiler work. */ -void -ira_finish_once (void) -{ - ira_finish_costs_once (); - free_register_move_costs (); - lra_finish_once (); -} - #define ira_prohibited_mode_move_regs_initialized_p \ (this_target_ira_int->x_ira_prohibited_mode_move_regs_initialized_p) |