libFirm
Control Dependence

Typedefs

typedef struct ir_cdep ir_cdep
 Control Dependence Analysis Results. More...
 

Functions

void compute_cdep (ir_graph *irg)
 Computes the control dependence graph for a graph. More...
 
void free_cdep (ir_graph *irg)
 Frees the control dependence info. More...
 
ir_nodeget_cdep_node (const ir_cdep *cdep)
 Returns control dependent block. More...
 
ir_cdepget_cdep_next (const ir_cdep *cdep)
 Returns next entry in a list of cdeps. More...
 
ir_cdepfind_cdep (const ir_node *block)
 Returns a list of all control dependences of a block. More...
 
void exchange_cdep (ir_node *old, const ir_node *nw)
 Replaces the control dependence info of old by the info of nw. More...
 
int is_cdep_on (const ir_node *dependee, const ir_node *candidate)
 Checks whether dependee is (directly) control dependent on candidate. More...
 
ir_nodeget_unique_cdep (const ir_node *block)
 If block is control dependent on exactly one node, returns this node, else NULL. More...
 
int has_multiple_cdep (const ir_node *block)
 Checks if the given block is control dependent of more than one node. More...
 

Detailed Description

Typedef Documentation

typedef struct ir_cdep ir_cdep

Control Dependence Analysis Results.

Definition at line 86 of file firm_types.h.

Function Documentation

void compute_cdep ( ir_graph irg)

Computes the control dependence graph for a graph.

void exchange_cdep ( ir_node old,
const ir_node nw 
)

Replaces the control dependence info of old by the info of nw.

ir_cdep* find_cdep ( const ir_node block)

Returns a list of all control dependences of a block.

void free_cdep ( ir_graph irg)

Frees the control dependence info.

ir_cdep* get_cdep_next ( const ir_cdep cdep)

Returns next entry in a list of cdeps.

ir_node* get_cdep_node ( const ir_cdep cdep)

Returns control dependent block.

ir_node* get_unique_cdep ( const ir_node block)

If block is control dependent on exactly one node, returns this node, else NULL.

Parameters
blockthe block to check
int has_multiple_cdep ( const ir_node block)

Checks if the given block is control dependent of more than one node.

Parameters
blockthe block to check
int is_cdep_on ( const ir_node dependee,
const ir_node candidate 
)

Checks whether dependee is (directly) control dependent on candidate.

Parameters
dependeethe (possible) dependent block
candidatethe (possible) block on which dependee is dependent