libFirm 1.20
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...

Functions

int be_parse_arg (const char *arg)
 Parse one backend argument.
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

Detailed Description

Generic backend types and interfaces.

Author:
Sebastian Hack

Definition in file be.h.