libFirm 1.20
|
The height is a measure for the longest datadependencies path from a node to the end of a basic block. More...
Typedefs | |
typedef struct ir_heights_t | ir_heights_t |
Computed graph Heights. | |
Functions | |
unsigned | get_irn_height (const ir_heights_t *h, const ir_node *irn) |
Returns the height of a node inside a basic block. | |
int | heights_reachable_in_block (ir_heights_t *h, const ir_node *n, const ir_node *m) |
Checks if a certain node is reachable according to data dependence edges from another node. | |
unsigned | heights_recompute_block (ir_heights_t *h, ir_node *block) |
Recomputes the height information for a certain block. | |
ir_heights_t * | heights_new (ir_graph *irg) |
Creates a new heights object. | |
void | heights_free (ir_heights_t *h) |
Frees a heights object. |
The height is a measure for the longest datadependencies path from a node to the end of a basic block.
This is usefull for scheduling heuristics and can also be used to speedup reachability queries.
typedef struct ir_heights_t ir_heights_t |
Computed graph Heights.
Definition at line 75 of file firm_types.h.
unsigned get_irn_height | ( | const ir_heights_t * | h, |
const ir_node * | irn | ||
) |
Returns the height of a node inside a basic block.
The height of the node is the maximal number of edges between a sink node in that block and the node itself (plus 1).
h | The heights object. |
irn | The node. |
void heights_free | ( | ir_heights_t * | h | ) |
Frees a heights object.
h | The heights object. |
ir_heights_t* heights_new | ( | ir_graph * | irg | ) |
Creates a new heights object.
This also computes the heights for each block in the graph.
irg | The graph. |
int heights_reachable_in_block | ( | ir_heights_t * | h, |
const ir_node * | n, | ||
const ir_node * | m | ||
) |
Checks if a certain node is reachable according to data dependence edges from another node.
Both nodes must be in the same block.
h | The heights object. |
n | The first node. |
m | The other node. |
unsigned heights_recompute_block | ( | ir_heights_t * | h, |
ir_node * | block | ||
) |
Recomputes the height information for a certain block.
This can be used to recompute the height information of a block.
h | The heights object. |
block | The block |