/*
- * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
typedef struct load_attr {
except_attr exc; /**< The exception attribute. MUST be the first one. */
unsigned volatility:1; /**< The volatility of this Load operation. */
- unsigned aligned:1; /**< The align attribute of this Load operation. */
+ unsigned unaligned:1; /**< The align attribute of this Load operation. */
ir_mode *mode; /**< The mode of this Load operation. */
} load_attr;
typedef struct store_attr {
except_attr exc; /**< the exception attribute. MUST be the first one. */
unsigned volatility:1; /**< The volatility of this Store operation. */
- unsigned aligned:1; /**< The align attribute of this Store operation. */
+ unsigned unaligned:1; /**< The align attribute of this Store operation. */
} store_attr;
typedef struct phi_attr {
} u;
} phi_attr;
+/**< Cmp attribute. */
+typedef struct cmp_attr {
+ ir_relation relation; /**< comparison condition. */
+} cmp_attr;
/**< Confirm attribute. */
typedef struct confirm_attr {
- pn_Cmp cmp; /**< The compare operation. */
+ ir_relation relation; /**< relation between value and bound */
} confirm_attr;
/** CopyB attribute. */
char strict; /**< If set, this is a strict Conv that cannot be removed. */
} conv_attr;
-/** Div/Mod/DivMod/Quot attribute. */
-typedef struct divmod_attr {
+/** Div attribute. */
+typedef struct div_attr {
except_attr exc; /**< The exception attribute. MUST be the first one. */
ir_mode *resmode; /**< Result mode for the division. */
char no_remainder; /**< Set, if known that a division can be done without a remainder. */
-} divmod_attr;
+} div_attr;
+
+/** Mod attribute. */
+typedef struct mod_attr {
+ except_attr exc; /**< The exception attribute. MUST be the first one. */
+ ir_mode *resmode; /**< Result mode for the division. */
+} mod_attr;
/** Inline Assembler support attribute. */
typedef struct asm_attr {
bad_attr bad; /**< for Bads: irg reference */
anchor_attr anchor; /**< for Anchor: irg reference */
block_attr block; /**< For Block: Fields needed to construct it */
+ cmp_attr cmp; /**< For Cmp. */
cond_attr cond; /**< For Cond. */
const_attr con; /**< For Const: contains the value of the constant and a type */
symconst_attr symc; /**< For SymConst. */
copyb_attr copyb; /**< For CopyB operation */
bound_attr bound; /**< For Bound operation */
conv_attr conv; /**< For Conv operation */
- divmod_attr divmod; /**< For Div/Mod/DivMod operation */
+ div_attr div; /**< For Div operation */
+ mod_attr mod; /**< For Mod operation */
asm_attr assem; /**< For ASM operation. */
} ir_attr;
typedef struct cg_callee_entry {
ir_graph *irg; /**< The called irg. */
ir_node **call_list; /**< The list of all calls to the irg. */
- int max_depth; /**< Maximum depth of all Call nodes to irg. */
+ size_t max_depth; /**< Maximum depth of all Call nodes to irg. */
} cg_callee_entry;
/**
cg_callee_entry **callees; /**< For callgraph analysis: list of callee calls */
unsigned *callee_isbe; /**< For callgraph analysis: raw bitset if backedge info calculated. */
ir_loop *l; /**< For callgraph analysis. */
- int callgraph_loop_depth; /**< For callgraph analysis */
- int callgraph_recursion_depth; /**< For callgraph analysis */
+ size_t callgraph_loop_depth; /**< For callgraph analysis */
+ size_t callgraph_recursion_depth; /**< For callgraph analysis */
double method_execution_frequency; /**< For callgraph analysis */
irp_callgraph_state callgraph_state; /**< The state of the callgraph. */
ir_loop *outermost_cg_loop; /**< For callgraph analysis: entry point
to looptree over callgraph. */
- int max_callgraph_loop_depth; /**< needed in callgraph. */
- int max_callgraph_recursion_depth; /**< needed in callgraph. */
+ size_t max_callgraph_loop_depth; /**< needed in callgraph. */
+ size_t max_callgraph_recursion_depth; /**< needed in callgraph. */
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 */