libFirm
heights.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5 
12 #ifndef FIRM_ANA_HEIGHTS_H
13 #define FIRM_ANA_HEIGHTS_H
14 
15 #include "firm_types.h"
16 #include "begin.h"
17 
37 FIRM_API unsigned get_irn_height(const ir_heights_t *h, const ir_node *irn);
38 
47 FIRM_API int heights_reachable_in_block(ir_heights_t *h, const ir_node *src,
48  const ir_node *tgt);
49 
57 FIRM_API unsigned heights_recompute_block(ir_heights_t *h, ir_node *block);
58 
64 FIRM_API ir_heights_t *heights_new(ir_graph *irg);
65 
70 FIRM_API void heights_free(ir_heights_t *h);
71 
74 #include "end.h"
75 
76 #endif
void heights_free(ir_heights_t *h)
Frees a heights object.
ir_heights_t * heights_new(ir_graph *irg)
Creates a new heights object.
struct ir_heights_t ir_heights_t
Computed graph Heights.
Definition: firm_types.h:65
unsigned get_irn_height(const ir_heights_t *h, const ir_node *irn)
Returns the height of a node inside a basic block.
unsigned heights_recompute_block(ir_heights_t *h, ir_node *block)
Recomputes the height information for a certain block.
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53
struct ir_graph ir_graph
Procedure Graph.
Definition: firm_types.h:74
int heights_reachable_in_block(ir_heights_t *h, const ir_node *src, const ir_node *tgt)
Checks if the node tgt is reachable according to data dependence edges from the node src...