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 
16 #include "begin.h"
17 
45 FIRM_API void irg_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post,
46  void *env);
47 
51 FIRM_API void irg_walk_core(ir_node *node, irg_walk_func *pre,
52  irg_walk_func *post, void *env);
53 
65 FIRM_API void irg_walk_graph(ir_graph *irg, irg_walk_func *pre,
66  irg_walk_func *post, void *env);
67 
86 FIRM_API void irg_walk_in_or_dep(ir_node *node, irg_walk_func *pre,
87  irg_walk_func *post, void *env);
88 
101 FIRM_API void irg_walk_in_or_dep_graph(ir_graph *irg, irg_walk_func *pre,
102  irg_walk_func *post, void *env);
103 
115 FIRM_API void irg_walk_topological(ir_graph *irg, irg_walk_func *walker,
116  void *env);
117 
128 FIRM_API void all_irg_walk(irg_walk_func *pre, irg_walk_func *post, void *env);
129 
142 FIRM_API void irg_block_walk(ir_node *node, irg_walk_func *pre,
143  irg_walk_func *post, void *env);
144 
156 FIRM_API void irg_block_walk_graph(ir_graph *irg, irg_walk_func *pre,
157  irg_walk_func *post, void *env);
158 
169 FIRM_API void walk_const_code(irg_walk_func *pre, irg_walk_func *post,
170  void *env);
171 
188 FIRM_API void irg_walk_blkwise_graph(ir_graph *irg, irg_walk_func *pre,
189  irg_walk_func *post, void *env);
190 
208 FIRM_API void irg_walk_blkwise_dom_top_down(ir_graph *irg, irg_walk_func *pre,
209  irg_walk_func *post, void *env);
210 
221 FIRM_API void irg_walk_anchors(ir_graph *irg, irg_walk_func *pre,
222  irg_walk_func *post, void *env);
223 
228 FIRM_API void irg_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post,
229  void *env);
230 
233 #include "end.h"
234 
235 #endif
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 walk_const_code(irg_walk_func *pre, irg_walk_func *post, void *env)
Walks over all code in const_code_irg.
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.
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_walk_func(ir_node *, void *)
type for graph-walk callbacks
Definition: firm_types.h:97
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(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 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_block_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks only over Block nodes in the graph.
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53
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_in_or_dep(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
Walks over the ir graph.
struct ir_graph ir_graph
Procedure Graph.
Definition: firm_types.h:74
void irg_walk_core(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
core walker function.
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_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.