GCC Middle and Back End API Reference
|
Public Member Functions | |
slpg_layout_cost ()=default | |
slpg_layout_cost (sreal, bool) | |
bool | is_possible () const |
bool | operator== (const slpg_layout_cost &) const |
bool | operator!= (const slpg_layout_cost &) const |
bool | is_better_than (const slpg_layout_cost &, bool) const |
void | add_parallel_cost (const slpg_layout_cost &) |
void | add_serial_cost (const slpg_layout_cost &) |
void | split (unsigned int) |
Static Public Member Functions | |
static slpg_layout_cost | impossible () |
Data Fields | |
sreal | depth = 0 |
sreal | total = 0 |
Estimates the cost of inserting layout changes into the SLP graph. It can also say that the insertion is impossible.
|
default |
Construct costs for a node with weight WEIGHT. A higher weight indicates more frequent execution. IS_FOR_SIZE is true if we are optimizing for size rather than speed.
void slpg_layout_cost::add_parallel_cost | ( | const slpg_layout_cost & | input_cost | ) |
Increase the costs to account for something with cost INPUT_COST happening in parallel with the current costs.
Referenced by vect_optimize_slp_pass::total_in_cost().
void slpg_layout_cost::add_serial_cost | ( | const slpg_layout_cost & | other | ) |
Increase the costs to account for something with cost INPUT_COST happening in series with the current costs.
Referenced by vect_optimize_slp_pass::backward_cost(), vect_optimize_slp_pass::backward_pass(), vect_optimize_slp_pass::dump(), vect_optimize_slp_pass::forward_cost(), vect_optimize_slp_pass::forward_pass(), and vect_optimize_slp_pass::total_in_cost().
|
inlinestatic |
bool slpg_layout_cost::is_better_than | ( | const slpg_layout_cost & | other, |
bool | is_for_size ) const |
Return true if these costs are better than OTHER. IS_FOR_SIZE is true if we are optimizing for size rather than speed.
Referenced by vect_optimize_slp_pass::backward_pass(), vect_optimize_slp_pass::forward_cost(), and vect_optimize_slp_pass::forward_pass().
|
inline |
References depth, and sreal::max().
Referenced by vect_optimize_slp_pass::backward_pass(), vect_optimize_slp_pass::forward_cost(), vect_optimize_slp_pass::forward_pass(), and slpg_partition_layout_costs::is_possible().
bool slpg_layout_cost::operator!= | ( | const slpg_layout_cost & | other | ) | const |
References operator==().
bool slpg_layout_cost::operator== | ( | const slpg_layout_cost & | other | ) | const |
Referenced by operator!=().
void slpg_layout_cost::split | ( | unsigned int | times | ) |
Split the total cost among TIMES successors or predecessors.
References total.
Referenced by vect_optimize_slp_pass::backward_cost(), vect_optimize_slp_pass::edge_layout_cost(), vect_optimize_slp_pass::forward_cost(), and vect_optimize_slp_pass::total_in_cost().
sreal slpg_layout_cost::depth = 0 |
Referenced by add_parallel_cost(), add_serial_cost(), vect_optimize_slp_pass::dump(), is_better_than(), is_possible(), and operator==().
sreal slpg_layout_cost::total = 0 |
Referenced by add_parallel_cost(), add_serial_cost(), vect_optimize_slp_pass::dump(), is_better_than(), operator==(), and split().