op_arity opar; /**< The arity of operator. */
int op_index; /**< The index of the first data operand, 0 for most cases, 1 for Div etc. */
unsigned flags; /**< Flags describing the behavior of the ir_op, a bitmasks of irop_flags. */
- void *tag; /**< Some custom pointer the op's creator can attach stuff to. */
+ unsigned tag; /**< Some custom TAG value the op's creator set to. */
void *attr; /**< custom pointer where op's creator can attach attribute stuff to. */
ir_op_ops ops; /**< The operations of the this op. */
unsigned is_dead:1; /**< If set, the block is dead (and could be replace by a Bad. */
unsigned is_mb_head:1; /**< Set if this block is a macroblock head. */
unsigned has_label:1; /**< Set if this block has a label assigned. */
+ unsigned marked:1; /**< Can be set/unset to temporary mark a block. */
ir_node **graph_arr; /**< An array to store all parameters. */
/* Attributes holding analyses information */
ir_dom_info dom; /**< Datastructure that holds information about dominators.
/** Inline Assembler support attribute. */
typedef struct {
+ /* BEWARE: pin state MUST be the first attribute */
+ op_pin_state pin_state; /**< the pin state for operations that might generate a exception */
ident *asm_text; /**< The inline assembler text. */
ir_asm_constraint *inputs; /**< Input constraints. */
ir_asm_constraint *outputs; /**< Output constraints. */
ident **clobber; /**< List of clobbered registers. */
- op_pin_state pin_state; /**< the pin state for operations that might generate a exception */
} asm_attr;
/** Some IR-nodes just have one attribute, these are stored here,
unsigned using_irn_visited : 1; /**< set to 1 if we are currently using the visited flag */
unsigned using_block_visited : 1; /**< set to 1 if we are currently using the block_visited flag */
unsigned using_irn_link : 1; /**< set to 1 if we are currently using the irn_link fields */
+ unsigned using_block_mark : 1; /**< set to 1 if we are currently using the block mark flags */
#endif
};