| libFirm
    | 
Code Generation (backend) produces machine-code. More...
| 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. | |
| typedef struct arch_irn_ops_t | arch_irn_ops_t | 
| Target Architecture specific node operations. | |
| 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_mode * | be_get_mode_float_arithmetic (void) | 
| Returns supported float arithmetic mode or NULL if mode_D and mode_F are supported natively. | |
| ir_type * | be_get_type_long_long (void) | 
| Returns type used for long long or NULL if none available. | |
| ir_type * | be_get_type_unsigned_long_long (void) | 
| Returns type used for unsigned long long or NULL if none available. | |
| ir_type * | be_get_type_long_double (void) | 
| Returns type used for long double or NULL if none available. | |
| const backend_params * | be_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_t * | lower_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. | |
Code Generation (backend) produces machine-code.
| typedef struct arch_irn_ops_t arch_irn_ops_t | 
Target Architecture specific node operations.
Definition at line 102 of file firm_types.h.
flags categorizing assembler constraint specifications
| 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.
| void be_dwarf_set_source_language | ( | dwarf_source_language | language | ) | 
Sets source language for dwarf debug information.
| const backend_params* be_get_backend_param | ( | void | ) | 
Returns the backend configuration parameter.
| unsigned be_get_machine_size | ( | void | ) | 
Returns size of machine words.
This is usually the size of the general purpose integer registers.
| ir_mode* be_get_mode_float_arithmetic | ( | void | ) | 
Returns supported float arithmetic mode or NULL if mode_D and mode_F are supported natively.
Some backends like x87 can only do arithmetic in a specific float mode (load/store are still done in the "normal" float/double modes).
| ir_type* be_get_type_long_double | ( | void | ) | 
Returns type used for long double or NULL if none available.
| ir_type* be_get_type_long_long | ( | void | ) | 
Returns type used for long long or NULL if none available.
| ir_type* be_get_type_unsigned_long_long | ( | void | ) | 
Returns type used for unsigned long long or NULL if none available.
| int be_is_big_endian | ( | void | ) | 
Returns 1 if the backend uses big-endian byte ordering and 0 for little-endian.
| int be_is_valid_clobber | ( | const char * | clobber | ) | 
tests whether a string is a valid clobber in an ASM instruction
| void be_lower_for_target | ( | void | ) | 
Lowers current program for the target architecture.
This must be run once before using be_main. The idea here is that the backend can perform lowerings like doubleword-lowering, ABI adjustments or implementation of boolean values, if-conversion, with target specific settings. The resulting graph is still a "normal" firm-graph on which you can and should perform further architecture-neutral optimisations before be_main.
| void be_main | ( | FILE * | output, | 
| const char * | compilation_unit_name | ||
| ) | 
Main interface to the frontend.
| int be_parse_arg | ( | const char * | arg | ) | 
Parse one backend argument.
| 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)
| ir_prog_pass_t* lower_for_target_pass | ( | const char * | name | ) | 
Creates an ir_prog pass which performs lowerings necessary for the target architecture.
(Calling backend_params->lower_for_target)