libFirm
be.h File Reference

Generic backend types and interfaces. More...

#include <stdio.h>
#include "irarch.h"
#include "lowering.h"
#include "iroptimize.h"
#include "begin.h"
#include "end.h"

Go to the source code of this file.

Data Structures

struct  backend_params
 This structure contains parameters that should be propagated to the libFirm parameter set. More...

Typedefs

typedef ir_node *( create_trampoline_fkt )(ir_node *block, ir_node *mem, ir_node *trampoline, ir_node *env, ir_node *callee)
 Build a Trampoline for the closure.

Enumerations

enum  asm_constraint_flags_t {
  ASM_CONSTRAINT_FLAG_NONE = 0, ASM_CONSTRAINT_FLAG_SUPPORTS_REGISTER = 1u << 0, ASM_CONSTRAINT_FLAG_SUPPORTS_MEMOP = 1u << 1, ASM_CONSTRAINT_FLAG_SUPPORTS_IMMEDIATE = 1u << 2,
  ASM_CONSTRAINT_FLAG_NO_SUPPORT = 1u << 3, ASM_CONSTRAINT_FLAG_MODIFIER_WRITE = 1u << 4, ASM_CONSTRAINT_FLAG_MODIFIER_NO_WRITE = 1u << 5, ASM_CONSTRAINT_FLAG_MODIFIER_READ = 1u << 6,
  ASM_CONSTRAINT_FLAG_MODIFIER_NO_READ = 1u << 7, ASM_CONSTRAINT_FLAG_MODIFIER_EARLYCLOBBER = 1u << 8, ASM_CONSTRAINT_FLAG_MODIFIER_COMMUTATIVE = 1u << 9, ASM_CONSTRAINT_FLAG_INVALID = 1u << 10
}
 flags categorizing assembler constraint specifications More...
enum  dwarf_source_language {
  DW_LANG_C89 = 0x0001, DW_LANG_C = 0x0002, DW_LANG_Ada83 = 0x0003, DW_LANG_C_plus_plus = 0x0004,
  DW_LANG_Cobol74 = 0x0005, DW_LANG_Cobol85 = 0x0006, DW_LANG_Fortran77 = 0x0007, DW_LANG_Fortran90 = 0x0008,
  DW_LANG_Pascal83 = 0x0009, DW_LANG_Modula2 = 0x000a, DW_LANG_Java = 0x000b, DW_LANG_C99 = 0x000c,
  DW_LANG_Ada95 = 0x000d, DW_LANG_Fortran95 = 0x000e, DW_LANG_PLI = 0x000f, DW_LANG_ObjC = 0x0010,
  DW_LANG_ObjC_plus_plus = 0x0011, DW_LANG_UPC = 0x0012, DW_LANG_D = 0x0013, DW_LANG_Python = 0x0014,
  DW_LANG_Go = 0x0016
}
 Dwarf source language codes. More...

Functions

int be_parse_arg (const char *arg)
 Parse one backend argument.
int be_is_big_endian (void)
 Returns 1 if the backend uses big-endian byte ordering and 0 for little-endian.
unsigned be_get_machine_size (void)
 Returns size of machine words.
ir_modebe_get_mode_float_arithmetic (void)
 Returns supported float arithmetic mode or NULL if mode_D and mode_F are supported natively.
ir_typebe_get_type_long_long (void)
 Returns type used for long long or NULL if none available.
ir_typebe_get_type_unsigned_long_long (void)
 Returns type used for unsigned long long or NULL if none available.
ir_typebe_get_type_long_double (void)
 Returns type used for long double or NULL if none available.
const backend_paramsbe_get_backend_param (void)
 Returns the backend configuration parameter.
void be_lower_for_target (void)
 Lowers current program for the target architecture.
ir_prog_pass_tlower_for_target_pass (const char *name)
 Creates an ir_prog pass which performs lowerings necessary for the target architecture.
void be_main (FILE *output, const char *compilation_unit_name)
 Main interface to the frontend.
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/outputs and whether memory is required)
int be_is_valid_clobber (const char *clobber)
 tests whether a string is a valid clobber in an ASM instruction
void be_dwarf_set_source_language (dwarf_source_language language)
 Sets source language for dwarf debug information.
void be_dwarf_set_compilation_directory (const char *directory)
 Sets working directory of the compiler (or directory where the compiler searched for sources) for dwarf debug information.

Detailed Description

Generic backend types and interfaces.

Author
Sebastian Hack

Definition in file be.h.