GCC Middle and Back End API Reference
|
#include <ira-int.h>
Public Member Functions | |
ira_loop_border_costs (ira_allocno_t) | |
int | move_between_loops_cost () const |
int | spill_outside_loop_cost () const |
int | spill_inside_loop_cost () const |
Private Attributes | |
machine_mode | m_mode |
reg_class | m_class |
int | m_entry_freq |
int | m_exit_freq |
Represents the boundary between an allocno in one loop and its parent allocno in the enclosing loop. It is usually possible to change a register's allocation on this boundary; the class provides routines for calculating the cost of such changes.
ira_loop_border_costs::ira_loop_border_costs | ( | ira_allocno_t | a | ) |
Construct an object that describes the boundary between A and its parent allocno.
|
inline |
Return the cost of moving the pseudo register between different hard registers on entry and exit from the loop. This is the cost to use if the register is successfully allocated within both this loop and the parent loop, but the allocations for the loops differ.
References ira_init_register_move_cost_if_necessary(), ira_register_move_cost, m_class, m_entry_freq, m_exit_freq, and m_mode.
Referenced by calculate_allocno_spill_cost(), color_pass(), and move_spill_restore().
|
inline |
Return the cost of storing the register on entry to the loop and loading it back on exit from the loop. This is the cost to use if the register is spilled within the loop but is successfully allocated in the parent loop.
References ira_memory_move_cost, m_class, m_entry_freq, m_exit_freq, and m_mode.
Referenced by assign_hard_reg(), calculate_allocno_spill_cost(), color_pass(), improve_allocation(), move_spill_restore(), and propagate_allocno_info().
|
inline |
Return the cost of loading the register on entry to the loop and storing it back on exit from the loop. This is the cost to use if the register is successfully allocated within the loop but is spilled in the parent loop.
References ira_memory_move_cost, m_class, m_entry_freq, m_exit_freq, and m_mode.
Referenced by calculate_allocno_spill_cost(), color_pass(), and move_spill_restore().
|
private |
Referenced by move_between_loops_cost(), spill_inside_loop_cost(), and spill_outside_loop_cost().
|
private |
Referenced by move_between_loops_cost(), spill_inside_loop_cost(), and spill_outside_loop_cost().
|
private |
Referenced by move_between_loops_cost(), spill_inside_loop_cost(), and spill_outside_loop_cost().
|
private |
Referenced by move_between_loops_cost(), spill_inside_loop_cost(), and spill_outside_loop_cost().