This reduces the depth of the loop tree. */
#define NO_LOOPS_WITHOUT_HEAD 1
-
-INLINE void add_loop_son(ir_loop *loop, ir_loop *son);
-
-INLINE void add_loop_node(ir_loop *loop, ir_node *n);
-
static ir_graph *outermost_ir_graph; /* The outermost graph the scc is computed
for */
static ir_loop *current_loop; /* Current loop construction is working
scc->uplink = uplink;
}
-INLINE int
+int
get_irn_uplink (ir_node *n) {
scc_info *scc = get_irn_link(n);
assert(scc);
scc->dfn = dfn;
}
-INLINE int
+int
get_irn_dfn (ir_node *n) {
scc_info *scc = get_irn_link(n);
assert(scc);
}
-INLINE void
+void
set_irn_loop (ir_node *n, ir_loop *loop) {
n->loop = loop;
}
/* Uses temporary information to get the loop */
-INLINE ir_loop *
+ir_loop *
get_irn_loop (ir_node *n) {
return n->loop;
}
/* Use EXCLUSIVELY this function to add sons, otherwise the loop->n_sons
is invalid! */
-INLINE void
+void
add_loop_son(ir_loop *loop, ir_loop *son) {
loop_element lson;
lson.son = son;
/* Use EXCLUSIVELY this function to add nodes, otherwise the loop->n_nodes
is invalid! */
-INLINE void
+void
add_loop_node(ir_loop *loop, ir_node *n) {
loop_element ln;
ln.node = n;
#endif
/* Test for legal loop header: Block, Phi, ... */
-INLINE static bool is_possible_loop_head(ir_node *n) {
+static INLINE bool is_possible_loop_head(ir_node *n) {
ir_op *op = get_irn_op(n);
return ((op == op_Block) ||
(op == op_Phi) ||
#endif
-INLINE static int
+static INLINE int
is_outermost_loop(ir_loop *l) {
return l == get_loop_outer_loop(l);
}
* start off with a block loop to find all proper uses.
*
* Returns true, if the node n is not changed in the loop block
- * belongs to or in inner loops of this block. */
+ * belongs to or in inner loops of this blocks loop. */
int is_loop_invariant(ir_node *n, ir_node *block) {
ir_loop *l = get_irn_loop(block);
ir_node *b = (is_Block(n)) ? n : get_nodes_block(n);