libFirm
backend_params Struct Reference

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

#include <be.h>

Data Fields

unsigned support_inline_asm:1
 If set, the backend supports inline assembly.
unsigned support_rotl:1
 If set, the backend supports Rotl nodes.
unsigned byte_order_big_endian:1
 the backend uses big-endian byte ordering if set, else little endian
unsigned modulo_shift_efficient:1
 whether the architecure can natively handle modulo shift modes.
unsigned non_modulo_shift_efficient:1
 whether the architecure can natively handle modulo shift modes.
const ir_settings_arch_dep_tdep_param
 Settings for architecture dependent optimizations.
arch_allow_ifconv_func allow_ifconv
 Backend settings for if-conversion.
unsigned machine_size
 size of machine word in bits.
ir_modemode_float_arithmetic
 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_typetype_long_long
 type used for long long or NULL if none available.
ir_typetype_unsigned_long_long
 type used for unsigned long long or NULL if none available
ir_typetype_long_double
 type used for long double or NULL if none available.
unsigned trampoline_size
 Size of the trampoline code.
unsigned trampoline_align
 Alignment of the trampoline code.
create_trampoline_fktbuild_trampoline
 If non-zero, build the trampoline.
unsigned stack_param_align
 Alignment of stack parameters.

Detailed Description

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

Definition at line 113 of file be.h.

Field Documentation

arch_allow_ifconv_func backend_params::allow_ifconv

Backend settings for if-conversion.

Definition at line 135 of file be.h.

create_trampoline_fkt* backend_params::build_trampoline

If non-zero, build the trampoline.

Definition at line 169 of file be.h.

unsigned backend_params::byte_order_big_endian

the backend uses big-endian byte ordering if set, else little endian

Definition at line 119 of file be.h.

const ir_settings_arch_dep_t* backend_params::dep_param

Settings for architecture dependent optimizations.

Definition at line 132 of file be.h.

unsigned backend_params::machine_size

size of machine word in bits.

This is usually the size of the general purpose integer/address registers.

Definition at line 139 of file be.h.

ir_mode* backend_params::mode_float_arithmetic

some backends like x87 can only do arithmetic in a specific float mode (load/store are still done in the "normal" float/double modes).

Definition at line 145 of file be.h.

unsigned backend_params::modulo_shift_efficient

whether the architecure can natively handle modulo shift modes.

If this is true, then you can assume that shifting in modes with module_shift==machine_size (if mode size is <= machine_size) is efficient

Definition at line 124 of file be.h.

unsigned backend_params::non_modulo_shift_efficient

whether the architecure can natively handle modulo shift modes.

If this is true, then you can assume that shifting without modulo shift is efficient

Definition at line 129 of file be.h.

unsigned backend_params::stack_param_align

Alignment of stack parameters.

Definition at line 172 of file be.h.

unsigned backend_params::support_inline_asm

If set, the backend supports inline assembly.

Definition at line 115 of file be.h.

unsigned backend_params::support_rotl

If set, the backend supports Rotl nodes.

Definition at line 117 of file be.h.

unsigned backend_params::trampoline_align

Alignment of the trampoline code.

Definition at line 166 of file be.h.

unsigned backend_params::trampoline_size

Size of the trampoline code.

Definition at line 163 of file be.h.

ir_type* backend_params::type_long_double

type used for long double or NULL if none available.

Definition at line 160 of file be.h.

ir_type* backend_params::type_long_long

type used for long long or NULL if none available.

Definition at line 150 of file be.h.

ir_type* backend_params::type_unsigned_long_long

type used for unsigned long long or NULL if none available

Definition at line 155 of file be.h.


The documentation for this struct was generated from the following file: