libFirm
irgwalk.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5 
11 #ifndef FIRM_IR_IRGWALK_H
12 #define FIRM_IR_IRGWALK_H
13 
14 #include "firm_types.h"
15 #include "begin.h"
16 
44 FIRM_API void irg_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post,
45  void *env);
46 
50 FIRM_API void irg_walk_core(ir_node *node, irg_walk_func *pre,
51  irg_walk_func *post, void *env);
52 
64 FIRM_API void irg_walk_graph(ir_graph *irg, irg_walk_func *pre,
65  irg_walk_func *post, void *env);
66 
85 FIRM_API void irg_walk_in_or_dep(ir_node *node, irg_walk_func *pre,
86  irg_walk_func *post, void *env);
87 
100 FIRM_API void irg_walk_in_or_dep_graph(ir_graph *irg, irg_walk_func *pre,
101  irg_walk_func *post, void *env);
102 
114 FIRM_API void irg_walk_topological(ir_graph *irg, irg_walk_func *walker,
115  void *env);
116 
127 FIRM_API void all_irg_walk(irg_walk_func *pre, irg_walk_func *post, void *env);
128 
141 FIRM_API void irg_block_walk(ir_node *node, irg_walk_func *pre,
142  irg_walk_func *post, void *env);
143 
155 FIRM_API void irg_block_walk_graph(ir_graph *irg, irg_walk_func *pre,
156  irg_walk_func *post, void *env);
157 
168 FIRM_API void walk_const_code(irg_walk_func *pre, irg_walk_func *post,
169  void *env);
170 
187 FIRM_API void irg_walk_blkwise_graph(ir_graph *irg, irg_walk_func *pre,
188  irg_walk_func *post, void *env);
189 
207 FIRM_API void irg_walk_blkwise_dom_top_down(ir_graph *irg, irg_walk_func *pre,
208  irg_walk_func *post, void *env);
209 
220 FIRM_API void irg_walk_anchors(ir_graph *irg, irg_walk_func *pre,
221  irg_walk_func *post, void *env);
222 
227 FIRM_API void irg_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post,
228  void *env);
229 
232 #include "end.h"
233 
234 #endif
void walk_const_code(irg_walk_func *pre, irg_walk_func *post, void *env)
Walks over all code in const_code_irg.
void irg_walk_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks over all reachable nodes in the ir graph.
void irg_walk_in_or_dep(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks over the ir graph.
void irg_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks over the ir graph.
void irg_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
Walker function which does not increase the visited flag before walking.
void irg_walk_blkwise_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks over reachable nodes in block-wise topological order, i.e.
void irg_walk_core(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
core walker function.
void all_irg_walk(irg_walk_func *pre, irg_walk_func *post, void *env)
Executes irg_walk(end, pre, post, env) for all irgraphs in irprog.
void irg_walk_anchors(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env)
Additionally walk over all anchors.
void irg_walk_func(ir_node *, void *)
type for graph-walk callbacks
Definition: firm_types.h:94
void irg_walk_blkwise_dom_top_down(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks over reachable nodes in block-wise topological order, i.e.
void irg_walk_topological(ir_graph *irg, irg_walk_func *walker, void *env)
Walks over all reachable nodes in the graph, ensuring that nodes inside a basic block are visited in ...
void irg_block_walk_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks only over reachable Block nodes in the graph.
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
void irg_block_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks only over Block nodes in the graph.
void irg_walk_in_or_dep_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks over all reachable nodes in the ir graph.