libFirm
irgopt.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5 
11 #ifndef FIRM_IR_IRGOPT_H
12 #define FIRM_IR_IRGOPT_H
13 
14 #include "firm_types.h"
15 
16 #include "begin.h"
17 
29 FIRM_API void local_optimize_node(ir_node *n);
30 
36 FIRM_API ir_node *optimize_node(ir_node *n);
37 
45 FIRM_API void local_optimize_graph(ir_graph *irg);
46 
56 FIRM_API void optimize_graph_df(ir_graph *irg);
57 
61 FIRM_API void local_opts_const_code(void);
62 
66 FIRM_API void remove_unreachable_code(ir_graph *irg);
67 
73 FIRM_API void remove_bads(ir_graph *irg);
74 
80 FIRM_API void remove_tuples(ir_graph *irg);
81 
91 FIRM_API void remove_critical_cf_edges(ir_graph *irg);
92 
103 FIRM_API void remove_critical_cf_edges_ex(ir_graph *irg,
104  int ignore_exception_edges);
105 
108 #include "end.h"
109 
110 #endif
void local_opts_const_code(void)
Perform local optimizations on nodes on const code irg.
void remove_unreachable_code(ir_graph *irg)
Eliminates (obviously) unreachable code.
void local_optimize_graph(ir_graph *irg)
Applies local optimizations (see iropt.h) to all nodes in the graph.
void remove_tuples(ir_graph *irg)
Removes all Tuple nodes from a graph.
void local_optimize_node(ir_node *n)
Applies local optimizations (see iropt.h) to all nodes reachable from node n.
void remove_critical_cf_edges_ex(ir_graph *irg, int ignore_exception_edges)
Places an empty basic block on critical control flow edges thereby removing them. ...
void remove_bads(ir_graph *irg)
Removes all Bad nodes from a graph.
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53
ir_node * optimize_node(ir_node *n)
Applies local optimizations to a single node.
void optimize_graph_df(ir_graph *irg)
Applies local optimizations (see iropt.h) to all nodes in the graph.
void remove_critical_cf_edges(ir_graph *irg)
Places an empty basic block on critical control flow edges thereby removing them. ...
struct ir_graph ir_graph
Procedure Graph.
Definition: firm_types.h:74