11 #ifndef FIRM_COMMON_FIRM_TYPES_H 12 #define FIRM_COMMON_FIRM_TYPES_H 34 typedef unsigned long ir_visited_t;
36 typedef unsigned long ir_label_t;
123 # define ENUM_BITSET(type) \ 125 static inline type operator ~ (type a) { return (type)~(int)a; } \ 126 static inline type operator & (type a, type b) { return (type)((int)a & (int)b); } \ 127 static inline type operator &= (type& a, type b) { return a = (type)((int)a & (int)b); } \ 128 static inline type operator ^ (type a, type b) { return (type)((int)a ^ (int)b); } \ 129 static inline type operator ^= (type& a, type b) { return a = (type)((int)a ^ (int)b); } \ 130 static inline type operator | (type a, type b) { return (type)((int)a | (int)b); } \ 131 static inline type operator |= (type& a, type b) { return a = (type)((int)a | (int)b); } \ 138 # define ENUM_BITSET(type) 142 # define ENUM_COUNTABLE(type) \ 144 static inline type operator ++(type& a) { return a = (type)((int)a + 1); } \ 145 static inline type operator --(type& a) { return a = (type)((int)a - 1); } \ 152 # define ENUM_COUNTABLE(type) 305 volatility_non_volatile,
306 volatility_is_volatile
313 align_is_aligned = 0,
317 typedef struct hook_entry hook_entry_t;
ident * constraint
The constraint for this input/output.
union ir_initializer_t ir_initializer_t
Initializer (for entities)
This method never returns.
This method can return more than once (typically setjmp).
All method invocations are known and inside the current compilation unit, the backend can freely choo...
unordered, less or greater ('not equal' for floatingpoint numbers)
const char ident
Identifier.
GCC __builtin_ctz(): count trailing zero.
The programmer recommends to inline the function.
ir_mode * mode
The mode of the constraint.
mtp_additional_properties
Additional method type properties: Tell about special properties of a method type.
The function should not be inlined.
The False case is predicted.
GCC __builtin_popcount(): population count.
struct ir_op ir_op
Node Opcode.
struct type_dbg_info type_dbg_info
Source Type Reference.
This method cannot throw an exception.
struct ir_edge_t ir_edge_t
Dynamic Reverse Edge.
struct ir_heights_t ir_heights_t
Computed graph Heights.
GCC __builtin_parity(): parity.
This method returns newly allocate memory.
Memory operation is unaligned.
struct ir_type ir_type
Type.
struct dbg_info dbg_info
Source Reference.
struct ir_tarval ir_tarval
Target Machine Value.
The function is guaranteed not to end in an endless and to not abort the program. ...
Memory operation is volatile.
GCC __builtin_ffs(): find first (least) significant 1 bit.
Memory operation can float.
op_pin_state
pinned states.
The behaviour of the method does not depend on any global/external state.
less equal or greater ('not unordered')
struct ir_switch_table ir_switch_table
A switch table mapping integer numbers to proj-numbers of a Switch-node.
GCC __builtin_frame_address()
Nodes must remain in this basic block.
struct ir_prog ir_prog
Program.
void irg_walk_func(ir_node *, void *)
type for graph-walk callbacks
A input/output constraint attribute.
Node must remain in this basic block if it can throw an exception, else can float.
struct ir_cdep ir_cdep
Control Dependence Analysis Results.
ir_builtin_kind
Supported libFirm builtins.
The True case is predicted.
struct ir_loop ir_loop
Loop.
GCC __builtin_trap(): insert trap.
Marker used by opt_funccall (really a hack)...
replaced by 0 if args cannot alias, 1 otherwise
ir_relation
Relations for comparing numbers.
GCC __builtin_return_address()
unsigned pos
The input/output position for this constraint.
cond_jmp_predicate
A type to express conditional jump predictions.
MS __debugbreak(): insert debug break.
ir_cons_flags
constrained flags for memory operations.
GCC __builtin_clz(): count leading zero.
struct ir_mode ir_mode
SSA Value mode.
This method does not change any memory known to the rest of the program.
No additional properties.
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_entity ir_entity
Entity.
less or greater ('not equal' for integer numbers)
struct ir_node ir_node
Procedure Graph Node.
unordered, greater or equal
struct ir_graph ir_graph
Procedure Graph.
Nodes of this opcode can be placed in any basic block.
fragile op throws exception (and produces X_regular and X_except values)
Try to always inline this function, even if it seems nonprofitable.