11#ifndef FIRM_COMMON_FIRM_TYPES_H
12#define FIRM_COMMON_FIRM_TYPES_H
34typedef unsigned long ir_visited_t;
36typedef unsigned long ir_label_t;
126# define ENUM_BITSET(type) \
128 static inline type operator ~ (type a) { return (type)~(int)a; } \
129 static inline type operator & (type a, type b) { return (type)((int)a & (int)b); } \
130 static inline type operator &= (type& a, type b) { return a = (type)((int)a & (int)b); } \
131 static inline type operator ^ (type a, type b) { return (type)((int)a ^ (int)b); } \
132 static inline type operator ^= (type& a, type b) { return a = (type)((int)a ^ (int)b); } \
133 static inline type operator | (type a, type b) { return (type)((int)a | (int)b); } \
134 static inline type operator |= (type& a, type b) { return a = (type)((int)a | (int)b); } \
141# define ENUM_BITSET(type)
145# define ENUM_COUNTABLE(type) \
147 static inline type operator ++(type& a) { return a = (type)((int)a + 1); } \
148 static inline type operator --(type& a) { return a = (type)((int)a - 1); } \
155# define ENUM_COUNTABLE(type)
311 volatility_non_volatile,
312 volatility_is_volatile
319 align_is_aligned = 0,
327typedef enum float_int_conversion_overflow_style_t {
328 ir_overflow_indefinite,
333} float_int_conversion_overflow_style_t;
335typedef struct hook_entry hook_entry_t;
struct ir_cdep ir_cdep
Control Dependence Analysis Results.
struct type_dbg_info type_dbg_info
Source Type Reference.
struct dbg_info dbg_info
Source Reference.
struct ir_heights_t ir_heights_t
Computed graph Heights.
const char ident
Identifier.
ir_node * uninitialized_local_variable_func_t(ir_graph *irg, ir_mode *mode, int pos)
This function is called, whenever a local variable is used before definition.
struct ir_edge_t ir_edge_t
Dynamic Reverse Edge.
struct ir_graph ir_graph
Procedure Graph.
void irg_walk_func(ir_node *, void *)
type for graph-walk callbacks
struct ir_loop ir_loop
Loop.
struct ir_mode ir_mode
SSA Value mode.
struct ir_node ir_node
Procedure Graph Node.
ir_relation
Relations for comparing numbers.
op_pin_state
pinned states.
ir_cons_flags
constrained flags for memory operations.
@ ir_relation_unordered_greater_equal
unordered, greater or equal
@ ir_relation_true
always true
@ ir_relation_false
always false
@ ir_relation_unordered_less_equal
unordered, less or equal
@ ir_relation_less_equal_greater
less equal or greater ('not unordered')
@ ir_relation_less_greater
less or greater ('not equal' for integer numbers)
@ ir_relation_greater_equal
greater or equal
@ ir_relation_unordered
unordered
@ ir_relation_unordered_greater
unordered or greater
@ ir_relation_unordered_less_greater
unordered, less or greater ('not equal' for floatingpoint numbers)
@ ir_relation_unordered_less
unordered or less
@ ir_relation_greater
greater
@ ir_relation_unordered_equal
unordered or equal
@ ir_relation_less_equal
less or equal
@ op_pin_state_pinned
Nodes must remain in this basic block.
@ op_pin_state_exc_pinned
Node must remain in this basic block if it can throw an exception, else can float.
@ op_pin_state_floats
Nodes of this opcode can be placed in any basic block.
@ cons_volatile
Memory operation is volatile.
@ cons_none
No constrains.
@ cons_floats
Memory operation can float.
@ cons_throws_exception
fragile op throws exception (and produces X_regular and X_except values)
@ cons_unaligned
Memory operation is unaligned.
struct ir_op ir_op
Node Opcode.
struct ir_prog ir_prog
Program.
struct ir_machine_triple_t ir_machine_triple_t
Machine triple.
struct ir_tarval ir_tarval
Target Machine Value.
struct ir_entity ir_entity
Entity.
union ir_initializer_t ir_initializer_t
Initializer (for entities)
struct ir_type ir_type
Type.
mtp_additional_properties
Additional method type properties: Tell about special properties of a method type.
@ mtp_property_noreturn
This method never returns.
@ mtp_property_malloc
This method returns newly allocate memory.
@ mtp_property_is_constructor
marker used for oo analyses needing info whether method is constructor or not
@ mtp_property_returns_twice
This method can return more than once (typically setjmp).
@ mtp_property_always_inline
Try to always inline this function, even if it seems nonprofitable.
@ mtp_property_private
All method invocations are known and inside the current compilation unit, the backend can freely choo...
@ mtp_property_no_write
This method does not change any memory known to the rest of the program.
@ mtp_property_pure
The behaviour of the method does not depend on any global/external state.
@ mtp_property_noinline
The function should not be inlined.
@ mtp_no_property
No additional properties.
@ mtp_temporary
Marker used by opt_funccall (really a hack)...
@ mtp_property_naked
This method is naked.
@ mtp_property_inline_recommended
The programmer recommends to inline the function.
@ mtp_property_terminates
The function is guaranteed not to end in an endless and to not abort the program.
@ mtp_property_nothrow
This method cannot throw an exception.
A input/output constraint attribute.
ident * constraint
The constraint for this input/output.
int out_pos
The output position for this constraint.
int in_pos
The input position for this constraint.
ir_mode * mode
The mode of the constraint.
ir_builtin_kind
Supported libFirm builtins.
@ ir_bk_may_alias
replaced by 0 if args cannot alias, 1 otherwise
@ ir_bk_ctz
GCC __builtin_ctz(): count trailing zero.
@ ir_bk_parity
GCC __builtin_parity(): parity.
@ ir_bk_debugbreak
MS __debugbreak(): insert debug break.
@ ir_bk_va_start
va_start from <stdarg.h>
@ ir_bk_popcount
GCC __builtin_popcount(): population count.
@ ir_bk_return_address
GCC __builtin_return_address()
@ ir_bk_clz
GCC __builtin_clz(): count leading zero.
@ ir_bk_compare_swap
compare exchange (aka.
@ ir_bk_saturating_increment
saturating increment
@ ir_bk_va_arg
va_arg from <stdarg.h>
@ ir_bk_trap
GCC __builtin_trap(): insert trap.
@ ir_bk_prefetch
GCC __builtin_prefetch()
@ ir_bk_frame_address
GCC __builtin_frame_address()
@ ir_bk_ffs
GCC __builtin_ffs(): find first (least) significant 1 bit.
cond_jmp_predicate
A type to express conditional jump predictions.
@ COND_JMP_PRED_NONE
No jump prediction.
@ COND_JMP_PRED_FALSE
The False case is predicted.
@ COND_JMP_PRED_TRUE
The True case is predicted.
struct ir_switch_table ir_switch_table
A switch table mapping integer numbers to proj-numbers of a Switch-node.