libFirm
|
Macros | |
#define | cc_bits (0xFF000000) |
#define | cc_cdecl_set (0) |
cdecl calling convention | |
#define | cc_stdcall_set cc_callee_clear_stk |
stdcall calling convention | |
#define | cc_fastcall_set (cc_reg_param|cc_callee_clear_stk) |
fastcall calling convention | |
#define | IS_CDECL(cc_mask) |
check for the CDECL calling convention | |
#define | IS_STDCALL(cc_mask) |
check for the STDCALL calling convention | |
#define | IS_FASTCALL(cc_mask) |
check for the FASTCALL calling convention | |
#define | SET_CDECL(cc_mask) |
Sets the CDECL convention bits. | |
#define | SET_STDCALL(cc_mask) |
Sets the STDCALL convention bits. | |
#define | SET_FASTCALL(cc_mask) |
Sets the FASTCALL convention bits. | |
Enumerations | |
enum | mtp_additional_properties { mtp_no_property = 0 , mtp_property_no_write = 1u << 0 , mtp_property_pure = 1u << 1 , mtp_property_noreturn = 1u << 2 , mtp_property_terminates = 1u << 3 , mtp_property_nothrow = 1u << 4 , mtp_property_naked = 1u << 5 , mtp_property_malloc = 1u << 6 , mtp_property_returns_twice = 1u << 7 , mtp_property_private = 1u << 8 , mtp_property_always_inline = 1u << 9 , mtp_property_noinline = 1u << 10 , mtp_property_inline_recommended = 1u << 11 , mtp_temporary = 1u << 12 , mtp_property_is_constructor = 1u << 13 } |
Additional method type properties: Tell about special properties of a method type. More... | |
enum | calling_convention { cc_reg_param = 0x01000000 , cc_last_on_top = 0x02000000 , cc_callee_clear_stk = 0x04000000 , cc_this_call = 0x08000000 , cc_compound_ret = 0x10000000 , cc_frame_on_caller_stk = 0x20000000 , cc_fpreg_param = 0x40000000 } |
Calling conventions: lower 24 bits are the number of register parameters, upper 8 encode the calling conventions. More... | |
Functions | |
ir_type * | new_type_method (size_t n_param, size_t n_res, int is_variadic, unsigned cc_mask, mtp_additional_properties property_mask) |
Create a new method type. | |
size_t | get_method_n_params (const ir_type *method) |
Returns the number of parameters of this method. | |
ir_type * | get_method_param_type (const ir_type *method, size_t pos) |
Returns the type of the parameter at position pos of a method. | |
void | set_method_param_type (ir_type *method, size_t pos, ir_type *tp) |
Sets the type of the parameter at position pos of a method. | |
size_t | get_method_n_ress (const ir_type *method) |
Returns the number of results of a method type. | |
ir_type * | get_method_res_type (const ir_type *method, size_t pos) |
Returns the return type of a method type at position pos. | |
void | set_method_res_type (ir_type *method, size_t pos, ir_type *tp) |
Sets the type of the result at position pos of a method. | |
int | is_method_variadic (ir_type const *method) |
Returns the variadicity of a method. | |
mtp_additional_properties | get_method_additional_properties (const ir_type *method) |
Returns the mask of the additional graph properties. | |
unsigned | get_method_calling_convention (const ir_type *method) |
Returns the calling convention of an entities graph. | |
unsigned | get_method_n_regparams (ir_type *method) |
Returns the number of registers parameters, 0 means default. | |
int | is_Method_type (const ir_type *method) |
Returns true if a type is a method type. | |
A method type represents a method, function or procedure type. It contains a list of the parameter and result types, as these are part of the type description. These lists should not be changed by an optimization, as a change creates a new method type. Therefore optimizations should allocate new method types. set_method_param_type() and set_method_res_type() are only for construction by a frontend.
#define cc_fastcall_set (cc_reg_param|cc_callee_clear_stk) |
#define cc_stdcall_set cc_callee_clear_stk |
#define IS_CDECL | ( | cc_mask | ) |
check for the CDECL calling convention
#define IS_FASTCALL | ( | cc_mask | ) |
check for the FASTCALL calling convention
#define IS_STDCALL | ( | cc_mask | ) |
check for the STDCALL calling convention
#define SET_CDECL | ( | cc_mask | ) |
Sets the CDECL convention bits.
#define SET_FASTCALL | ( | cc_mask | ) |
Sets the FASTCALL convention bits.
#define SET_STDCALL | ( | cc_mask | ) |
Sets the STDCALL convention bits.
enum calling_convention |
Calling conventions: lower 24 bits are the number of register parameters, upper 8 encode the calling conventions.
Additional method type properties: Tell about special properties of a method type.
Some of these may be discovered by analyses.
Definition at line 224 of file firm_types.h.
mtp_additional_properties get_method_additional_properties | ( | const ir_type * | method | ) |
Returns the mask of the additional graph properties.
unsigned get_method_calling_convention | ( | const ir_type * | method | ) |
Returns the calling convention of an entities graph.
size_t get_method_n_params | ( | const ir_type * | method | ) |
Returns the number of parameters of this method.
unsigned get_method_n_regparams | ( | ir_type * | method | ) |
Returns the number of registers parameters, 0 means default.
size_t get_method_n_ress | ( | const ir_type * | method | ) |
Returns the number of results of a method type.
Returns the type of the parameter at position pos of a method.
Returns the return type of a method type at position pos.
int is_Method_type | ( | const ir_type * | method | ) |
Returns true if a type is a method type.
int is_method_variadic | ( | ir_type const * | method | ) |
Returns the variadicity of a method.
ir_type * new_type_method | ( | size_t | n_param, |
size_t | n_res, | ||
int | is_variadic, | ||
unsigned | cc_mask, | ||
mtp_additional_properties | property_mask ) |
Create a new method type.
n_param | the number of parameters |
n_res | the number of results |
is_variadic | whether the function is variadic |
cc_mask | the calling convention |
property_mask | the mask of the additional graph properties |
The arrays for the parameter and result types are not populated by the constructor.
Sets the type of the parameter at position pos of a method.
Note: does not change the corresponding parameter entities (if there are any)