becopyheur4: Clean up co_mst_irn_init().
[libfirm] / ir / be / ia32 / ia32_optimize.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5
6 /**
7  * @file
8  * @brief       Implements several optimizations for IA32.
9  * @author      Christian Wuerdig
10  */
11 #ifndef FIRM_BE_IA32_IA32_OPTIMIZE_H
12 #define FIRM_BE_IA32_IA32_OPTIMIZE_H
13
14 #include "irgraph.h"
15 #include "bearch_ia32_t.h"
16
17 /**
18  * Prepares irg for codegeneration. Places consts and transform reference mode
19  * nodes into mode_Iu nodes.
20  */
21 void ia32_pre_transform_phase(ir_graph *irg);
22
23 /**
24  * Performs conv and address mode optimizations.
25  * @param cg  The ia32 codegenerator object
26  */
27 void ia32_optimize_graph(ir_graph *irg);
28
29 /**
30  * Performs Peephole Optimizations an a graph.
31  *
32  * @param irg   the graph
33  * @param cg    the code generator object
34  */
35 void ia32_peephole_optimization(ir_graph *irg);
36
37 /** Initialize the ia32 address mode optimizer. */
38 void ia32_init_optimize(void);
39
40 /**
41  * Creates an immediate node.
42  */
43 ir_node *ia32_immediate_from_long(long val);
44
45 #endif /* FIRM_BE_IA32_IA32_OPTIMIZE_H */