libFirm
be.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
3  *
4  * This file is part of libFirm.
5  *
6  * This file may be distributed and/or modified under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation and appearing in the file LICENSE.GPL included in the
9  * packaging of this file.
10  *
11  * Licensees holding valid libFirm Professional Edition licenses may use
12  * this file in accordance with the libFirm Commercial License.
13  * Agreement provided with the Software.
14  *
15  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE.
18  */
19 
25 #ifndef FIRM_BE_MAIN_H
26 #define FIRM_BE_MAIN_H
27 
28 #include <stdio.h>
29 #include "irarch.h"
30 #include "lowering.h"
31 #include "iroptimize.h"
32 #include "begin.h"
33 
44 typedef enum asm_constraint_flags_t {
71 
72 
73 typedef enum {
74  DW_LANG_C89 = 0x0001,
75  DW_LANG_C = 0x0002,
76  DW_LANG_Ada83 = 0x0003,
77  DW_LANG_C_plus_plus = 0x0004,
78  DW_LANG_Cobol74 = 0x0005,
79  DW_LANG_Cobol85 = 0x0006,
80  DW_LANG_Fortran77 = 0x0007,
81  DW_LANG_Fortran90 = 0x0008,
82  DW_LANG_Pascal83 = 0x0009,
83  DW_LANG_Modula2 = 0x000a,
84  DW_LANG_Java = 0x000b,
85  DW_LANG_C99 = 0x000c,
86  DW_LANG_Ada95 = 0x000d,
87  DW_LANG_Fortran95 = 0x000e,
88  DW_LANG_PLI = 0x000f,
89  DW_LANG_ObjC = 0x0010,
90  DW_LANG_ObjC_plus_plus = 0x0011,
91  DW_LANG_UPC = 0x0012,
92  DW_LANG_D = 0x0013,
93  DW_LANG_Python = 0x0014,
94  DW_LANG_Go = 0x0016,
96 
107 typedef ir_node *(create_trampoline_fkt)(ir_node *block, ir_node *mem, ir_node *trampoline, ir_node *env, ir_node *callee);
108 
113 typedef struct backend_params {
115  unsigned support_inline_asm:1;
117  unsigned support_rotl:1;
130 
133 
136 
139  unsigned machine_size;
140 
146 
151 
156 
161 
163  unsigned trampoline_size;
164 
167 
170 
174 
178 FIRM_API int be_parse_arg(const char *arg);
179 
184 FIRM_API int be_is_big_endian(void);
185 
190 FIRM_API unsigned be_get_machine_size(void);
191 
199 
202 
205 
208 
216 
226 FIRM_API void be_lower_for_target(void);
227 
233 
237 FIRM_API void be_main(FILE *output, const char *compilation_unit_name);
238 
244 
248 FIRM_API int be_is_valid_clobber(const char *clobber);
249 
254 
259 FIRM_API void be_dwarf_set_compilation_directory(const char *directory);
260 
263 #include "end.h"
264 
265 #endif