libFirm
Loading...
Searching...
No Matches
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
54ENUM_BITSET(asm_constraint_flags_t)
55
56
57typedef enum {
58 DW_LANG_C89 = 0x0001,
59 DW_LANG_C = 0x0002,
60 DW_LANG_Ada83 = 0x0003,
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,
78 DW_LANG_Go = 0x0016,
80
90FIRM_API void be_lower_for_target(void);
91
92typedef void (*after_transform_func)(ir_graph *irg, const char *name);
93
100
104FIRM_API void be_main(FILE *output, const char *compilation_unit_name);
105
110FIRM_API asm_constraint_flags_t be_parse_asm_constraints(const char *constraints);
111
115FIRM_API int be_is_valid_clobber(const char *clobber);
116
121
126FIRM_API void be_dwarf_set_compilation_directory(const char *directory);
127
130#include "end.h"
131
132#endif
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().
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_dwarf_set_compilation_directory(const char *directory)
Sets working directory of the compiler (or directory where the compiler searched for sources) for dwa...
void be_main(FILE *output, const char *compilation_unit_name)
Main interface to the frontend.
void be_lower_for_target(void)
Lowers current program for the target architecture.
int be_is_valid_clobber(const char *clobber)
tests whether a string is a valid clobber in an ASM instruction
asm_constraint_flags_t
flags categorizing assembler constraint specifications
Definition be.h:30
void be_dwarf_set_source_language(dwarf_source_language language)
Sets source language for dwarf debug information.
dwarf_source_language
Dwarf source language codes.
Definition be.h:57
void(* after_transform_func)(ir_graph *irg, const char *name)
Definition be.h:92
@ ASM_CONSTRAINT_FLAG_MODIFIER_COMMUTATIVE
This operand and the following operand are commutative.
Definition be.h:50
@ ASM_CONSTRAINT_FLAG_NO_SUPPORT
the constraint is not supported yet by libFirm (but valid in gcc)
Definition be.h:41
@ ASM_CONSTRAINT_FLAG_NONE
no constraints
Definition be.h:31
@ ASM_CONSTRAINT_FLAG_MODIFIER_WRITE
The input is also written to.
Definition be.h:43
@ ASM_CONSTRAINT_FLAG_SUPPORTS_MEMOP
input/output can be read/written to/from a memory address
Definition be.h:35
@ ASM_CONSTRAINT_FLAG_MODIFIER_EARLYCLOBBER
the value is modified before all inputs to the asm block are handled.
Definition be.h:48
@ ASM_CONSTRAINT_FLAG_SUPPORTS_ANY
input/output can be in a register, in memory or an immediate
Definition be.h:39
@ ASM_CONSTRAINT_FLAG_MODIFIER_READ
the input is read
Definition be.h:45
@ ASM_CONSTRAINT_FLAG_INVALID
invalid constraint (due to parse error)
Definition be.h:52
@ ASM_CONSTRAINT_FLAG_SUPPORTS_REGISTER
input/output can be in a register
Definition be.h:33
@ ASM_CONSTRAINT_FLAG_SUPPORTS_IMMEDIATE
input can be encoded as an immediate number
Definition be.h:37
@ DW_LANG_Go
Definition be.h:78
@ DW_LANG_PLI
Definition be.h:72
@ DW_LANG_Python
Definition be.h:77
@ DW_LANG_Fortran95
Definition be.h:71
@ DW_LANG_C
Definition be.h:59
@ DW_LANG_C99
Definition be.h:69
@ DW_LANG_Fortran77
Definition be.h:64
@ DW_LANG_C_plus_plus
Definition be.h:61
@ DW_LANG_UPC
Definition be.h:75
@ DW_LANG_Cobol74
Definition be.h:62
@ DW_LANG_Pascal83
Definition be.h:66
@ DW_LANG_Ada95
Definition be.h:70
@ DW_LANG_Java
Definition be.h:68
@ DW_LANG_ObjC
Definition be.h:73
@ DW_LANG_D
Definition be.h:76
@ DW_LANG_Cobol85
Definition be.h:63
@ DW_LANG_ObjC_plus_plus
Definition be.h:74
@ DW_LANG_C89
Definition be.h:58
@ DW_LANG_Fortran90
Definition be.h:65
@ DW_LANG_Modula2
Definition be.h:67
@ DW_LANG_Ada83
Definition be.h:60
struct ir_graph ir_graph
Procedure Graph.
Definition firm_types.h:74