libFirm
be.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5 
11 #ifndef FIRM_BE_H
12 #define FIRM_BE_H
13 
14 #include <stdio.h>
15 #include "irmode.h"
16 #include "iroptimize.h"
17 
18 #include "begin.h"
19 
30 typedef enum asm_constraint_flags_t {
54 ENUM_BITSET(asm_constraint_flags_t)
55 
56 
57 typedef enum {
58  DW_LANG_C89 = 0x0001,
59  DW_LANG_C = 0x0002,
60  DW_LANG_Ada83 = 0x0003,
62  DW_LANG_Cobol74 = 0x0005,
63  DW_LANG_Cobol85 = 0x0006,
66  DW_LANG_Pascal83 = 0x0009,
67  DW_LANG_Modula2 = 0x000a,
68  DW_LANG_Java = 0x000b,
69  DW_LANG_C99 = 0x000c,
70  DW_LANG_Ada95 = 0x000d,
72  DW_LANG_PLI = 0x000f,
73  DW_LANG_ObjC = 0x0010,
75  DW_LANG_UPC = 0x0012,
76  DW_LANG_D = 0x0013,
77  DW_LANG_Python = 0x0014,
78  DW_LANG_Go = 0x0016,
80 
90 FIRM_API void be_lower_for_target(void);
91 
92 typedef void (*after_transform_func)(ir_graph *irg, const char *name);
93 
100 
104 FIRM_API void be_main(FILE *output, const char *compilation_unit_name);
105 
110 FIRM_API asm_constraint_flags_t be_parse_asm_constraints(const char *constraints);
111 
115 FIRM_API int be_is_valid_clobber(const char *clobber);
116 
121 
126 FIRM_API void be_dwarf_set_compilation_directory(const char *directory);
127 
130 #include "end.h"
131 
132 #endif
input can be encoded as an immediate number
Definition: be.h:37
void be_dwarf_set_source_language(dwarf_source_language language)
Sets source language for dwarf debug information.
input/output can be read/written to/from a memory address
Definition: be.h:35
invalid constraint (due to parse error)
Definition: be.h:52
the input is read
Definition: be.h:45
asm_constraint_flags_t be_parse_asm_constraints(const char *constraints)
parse assembler constraint strings and returns flags (so the frontend knows which operands are inputs...
void be_set_after_transform_func(after_transform_func func)
Sets a callback that is called after each transformation step in be_lower_for_target().
int be_is_valid_clobber(const char *clobber)
tests whether a string is a valid clobber in an ASM instruction
no constraints
Definition: be.h:31
Definition: be.h:78
The input is also written to.
Definition: be.h:43
Definition: be.h:72
asm_constraint_flags_t
flags categorizing assembler constraint specifications
Definition: be.h:30
Definition: be.h:75
the value is modified before all inputs to the asm block are handled.
Definition: be.h:48
input/output can be in a register
Definition: be.h:33
Definition: be.h:69
Definition: be.h:76
Definition: be.h:59
void(* after_transform_func)(ir_graph *irg, const char *name)
Definition: be.h:92
void be_dwarf_set_compilation_directory(const char *directory)
Sets working directory of the compiler (or directory where the compiler searched for sources) for dwa...
Definition: be.h:58
input/output can be in a register, in memory or an immediate
Definition: be.h:39
void be_lower_for_target(void)
Lowers current program for the target architecture.
the constraint is not supported yet by libFirm (but valid in gcc)
Definition: be.h:41
struct ir_graph ir_graph
Procedure Graph.
Definition: firm_types.h:74
void be_main(FILE *output, const char *compilation_unit_name)
Main interface to the frontend.
dwarf_source_language
Dwarf source language codes.
Definition: be.h:57
This operand and the following operand are commutative.
Definition: be.h:50