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. */
+ void *attr; /**< custom pointer where op's creator can attach attribute stuff to. */
ir_op_ops ops; /**< The operations of the this op. */
};
tarval *null; /**< the value 0 */
tarval *one; /**< the value 1 */
tarval *minus_one; /**< the value -1 */
+ tarval *all_one; /**< the value ~0 */
ir_mode *eq_signed; /**< For pointer modes, the equivalent signed integer one. */
ir_mode *eq_unsigned; /**< For pointer modes, the equivalent unsigned integer one. */
void *link; /**< To store some intermediate information */
typedef struct {
except_attr exc; /**< The exception attribute. MUST be the first one. */
ir_mode *load_mode; /**< The mode of this Load operation. */
- ir_volatility volatility; /**< The volatility of a Load/Store operation. */
+ unsigned volatility:1; /**< The volatility of this Load operation. */
+ unsigned aligned:1; /**< The align attribute of this Load operation. */
} load_attr;
/** Store attributes. */
typedef struct {
except_attr exc; /**< the exception attribute. MUST be the first one. */
- ir_volatility volatility; /**< the volatility of a Store operation */
+ unsigned volatility:1; /**< The volatility of this Store operation. */
+ unsigned aligned:1; /**< The align attribute of this Store operation. */
} store_attr;
typedef struct {
struct dbg_info *dbi; /**< A pointer to information for debug support. */
/* ------- For debugging ------- */
#ifdef DEBUG_libfirm
- int out_valid;
+ unsigned out_valid : 1;
+ unsigned flags : 31;
long node_nr; /**< A unique node number for each node to make output
readable. */
#endif
double max_method_execution_frequency; /**< needed in callgraph. */
irp_temperature_state temperature_state; /**< accumulated temperatures computed? */
exec_freq_state execfreq_state; /**< The state of execution frequency information */
+#ifdef INTERPROCEDURAL_VIEW
loop_nesting_depth_state lnd_state; /**< The state of loop nesting depth information. */
+#endif
ir_class_cast_state class_cast_state; /**< The state of cast operations in code. */
ir_address_taken_computed_state globals_adr_taken_state; /**< Address taken state of the globals. */