libFirm 1.20
|
Enumeration types need not necessarily be represented explicitly by Firm types, as the frontend can lower them to integer constants as well. More...
Typedefs | |
typedef struct ir_enum_const | ir_enum_const |
Enumeration constant. | |
Functions | |
ir_type * | new_type_enumeration (ident *name, size_t n_enums) |
Create a new type enumeration -- set the enumerators independently. | |
ir_type * | new_d_type_enumeration (ident *name, size_t n_enums, type_dbg_info *db) |
Create a new type enumeration with debug information -- set the enumerators independently. | |
ident * | get_enumeration_ident (const ir_type *enumeration) |
Returns enumeration identifier. | |
const char * | get_enumeration_name (const ir_type *enumeration) |
Returns enumeration identifier as c-string. | |
void | set_enumeration_const (ir_type *enumeration, size_t pos, ident *nameid, ir_tarval *con) |
Sets an enumeration constant to a enumeration type at a given position. | |
size_t | get_enumeration_n_enums (const ir_type *enumeration) |
Returns the number of enumeration values of this enumeration. | |
ir_enum_const * | get_enumeration_const (const ir_type *enumeration, size_t pos) |
Returns the enumeration constant at a given position. | |
ir_type * | get_enumeration_owner (const ir_enum_const *enum_cnst) |
Returns the enumeration type owner of an enumeration constant. | |
void | set_enumeration_value (ir_enum_const *enum_cnst, ir_tarval *con) |
Sets the enumeration constant value. | |
ir_tarval * | get_enumeration_value (const ir_enum_const *enum_cnst) |
Returns the enumeration constant value. | |
void | set_enumeration_nameid (ir_enum_const *enum_cnst, ident *id) |
Assign an ident to an enumeration constant. | |
ident * | get_enumeration_const_nameid (const ir_enum_const *enum_cnst) |
Returns the assigned ident of an enumeration constant. | |
const char * | get_enumeration_const_name (const ir_enum_const *enum_cnst) |
Returns the assigned name of an enumeration constant. | |
int | is_Enumeration_type (const ir_type *enumeration) |
Returns true if a type is a enumeration type. | |
const tp_op * | get_tpop_enumeration (void) |
Returns type opcode for enumeration type. | |
Variables | |
const tp_op * | type_enumeration |
This type opcode marks that the corresponding type is an enumeration type. |
Enumeration types need not necessarily be represented explicitly by Firm types, as the frontend can lower them to integer constants as well.
For debugging purposes or similar tasks this information is useful. The type state layout_fixed is set, if all enumeration constants have their tarvals assigned. Until then
typedef struct ir_enum_const ir_enum_const |
Enumeration constant.
Definition at line 81 of file firm_types.h.
ir_enum_const* get_enumeration_const | ( | const ir_type * | enumeration, |
size_t | pos | ||
) |
Returns the enumeration constant at a given position.
const char* get_enumeration_const_name | ( | const ir_enum_const * | enum_cnst | ) |
Returns the assigned name of an enumeration constant.
ident* get_enumeration_const_nameid | ( | const ir_enum_const * | enum_cnst | ) |
Returns the assigned ident of an enumeration constant.
size_t get_enumeration_n_enums | ( | const ir_type * | enumeration | ) |
Returns the number of enumeration values of this enumeration.
const char* get_enumeration_name | ( | const ir_type * | enumeration | ) |
Returns enumeration identifier as c-string.
ir_type* get_enumeration_owner | ( | const ir_enum_const * | enum_cnst | ) |
Returns the enumeration type owner of an enumeration constant.
ir_tarval* get_enumeration_value | ( | const ir_enum_const * | enum_cnst | ) |
Returns the enumeration constant value.
const tp_op* get_tpop_enumeration | ( | void | ) |
Returns type opcode for enumeration type.
int is_Enumeration_type | ( | const ir_type * | enumeration | ) |
Returns true if a type is a enumeration type.
ir_type* new_d_type_enumeration | ( | ident * | name, |
size_t | n_enums, | ||
type_dbg_info * | db | ||
) |
Create a new type enumeration with debug information -- set the enumerators independently.
Create a new type enumeration -- set the enumerators independently.
Sets an enumeration constant to a enumeration type at a given position.
void set_enumeration_nameid | ( | ir_enum_const * | enum_cnst, |
ident * | id | ||
) |
Assign an ident to an enumeration constant.
void set_enumeration_value | ( | ir_enum_const * | enum_cnst, |
ir_tarval * | con | ||
) |
Sets the enumeration constant value.
const tp_op* type_enumeration |
This type opcode marks that the corresponding type is an enumeration type.
Consequently it contains a list of idents for the enumeration identifiers and a list of target values that are the constants used to implement the enumerators. This struct is dynamically allocated but constant for the lifetime of the library.