2 * This file is part of libFirm.
3 * Copyright (C) 2012 University of Karlsruhe.
8 * @brief This file implements the IR transformation from firm into ia32-Firm.
9 * @author Christian Wuerdig, Matthias Braun
11 #ifndef FIRM_BE_IA32_IA32_TRANSFORM_H
12 #define FIRM_BE_IA32_IA32_TRANSFORM_H
14 #include "bearch_ia32_t.h"
17 * Transform firm nodes to x86 assembler nodes, ie
18 * do instruction selection.
20 void ia32_transform_graph(ir_graph *irg);
23 * Some constants needed for code generation.
24 * Generated on demand.
27 ia32_SSIGN, /**< SSE2 single precision sign */
28 ia32_DSIGN, /**< SSE2 double precision sign */
29 ia32_SABS, /**< SSE2 single precision ABS mask */
30 ia32_DABS, /**< SSE2 double precision ABS mask */
31 ia32_ULLBIAS, /**< x87 ULL->float bias */
32 ia32_known_const_max /**< last constant */
36 * Generate a known floating point constant
38 ir_entity *ia32_gen_fp_known_const(ia32_known_const_t kct);
41 * Skip all Down-Conv's on a given node and return the resulting node.
43 ir_node *ia32_skip_downconv(ir_node *node);
45 /** Initialize the ia32 instruction selector. */
46 void ia32_init_transform(void);