/** Returns the start block of a graph. */
static INLINE ir_node *
_get_irg_start_block(const ir_graph *irg) {
- return irg->anchors[anchor_start_block];
+ return get_irn_intra_n(irg->anchor, anchor_start_block);
}
static INLINE void
_set_irg_start_block(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_start_block] = node;
+ set_irn_n(irg->anchor, anchor_start_block, node);
}
static INLINE ir_node *
_get_irg_start(const ir_graph *irg) {
- return irg->anchors[anchor_start];
+ return get_irn_intra_n(irg->anchor, anchor_start);
}
static INLINE void
_set_irg_start(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_start] = node;
+ set_irn_n(irg->anchor, anchor_start, node);
}
static INLINE ir_node *
_get_irg_end_block(const ir_graph *irg) {
- return irg->anchors[anchor_end_block];
+ return get_irn_intra_n(irg->anchor, anchor_end_block);
}
static INLINE void
_set_irg_end_block(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_end_block] = node;
+ set_irn_n(irg->anchor, -1, node);
+ set_irn_n(irg->anchor, anchor_end_block, node);
}
static INLINE ir_node *
_get_irg_end(const ir_graph *irg) {
- return irg->anchors[anchor_end];
+ return get_irn_intra_n(irg->anchor, anchor_end);
}
static INLINE void
_set_irg_end(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_end] = node;
+ set_irn_n(irg->anchor, anchor_end, node);
}
static INLINE ir_node *
_get_irg_end_reg(const ir_graph *irg) {
- return irg->anchors[anchor_end_reg];
+ return get_irn_intra_n(irg->anchor, anchor_end_reg);
+}
+
+static INLINE void
+_set_irg_end_reg(ir_graph *irg, ir_node *node) {
+ set_irn_n(irg->anchor, anchor_end_reg, node);
}
static INLINE ir_node *
-_get_irg_end_except (const ir_graph *irg) {
- return irg->anchors[anchor_end_except];
+_get_irg_end_except(const ir_graph *irg) {
+ return get_irn_intra_n(irg->anchor, anchor_end_except);
+}
+
+static INLINE void
+_set_irg_end_except(ir_graph *irg, ir_node *node) {
+ set_irn_n(irg->anchor, anchor_end_except, node);
}
static INLINE ir_node *
_get_irg_frame(const ir_graph *irg) {
- return irg->anchors[anchor_frame];
+ return get_irn_intra_n(irg->anchor, anchor_frame);
}
static INLINE void
_set_irg_frame(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_frame] = node;
+ set_irn_n(irg->anchor, anchor_frame, node);
}
static INLINE ir_node *
_get_irg_globals(const ir_graph *irg) {
- return irg->anchors[anchor_globals];
+ return get_irn_intra_n(irg->anchor, anchor_globals);
}
static INLINE void
_set_irg_globals(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_globals] = node;
+ set_irn_n(irg->anchor, anchor_globals, node);
}
static INLINE ir_node *
_get_irg_tls(const ir_graph *irg) {
- return irg->anchors[anchor_tls];
+ return get_irn_intra_n(irg->anchor, anchor_tls);
}
static INLINE void
_set_irg_tls(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_tls] = node;
+ set_irn_n(irg->anchor, anchor_tls, node);
}
static INLINE ir_node *
_get_irg_initial_mem(const ir_graph *irg) {
- return irg->anchors[anchor_initial_mem];
+ return get_irn_intra_n(irg->anchor, anchor_initial_mem);
}
static INLINE void
_set_irg_initial_mem(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_initial_mem] = node;
+ set_irn_n(irg->anchor, anchor_initial_mem, node);
}
static INLINE ir_node *
_get_irg_args(const ir_graph *irg) {
- return irg->anchors[anchor_args];
+ return get_irn_intra_n(irg->anchor, anchor_args);
}
static INLINE void
_set_irg_args(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_args] = node;
+ set_irn_n(irg->anchor, anchor_args, node);
}
static INLINE ir_node *
_get_irg_value_param_base(const ir_graph *irg) {
- return irg->anchors[anchor_value_param_base];
+ return get_irn_intra_n(irg->anchor, anchor_value_param_base);
}
static INLINE void
_set_irg_value_param_base(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_value_param_base] = node;
+ set_irn_n(irg->anchor, anchor_value_param_base, node);
}
static INLINE ir_node **
static INLINE ir_node *
_get_irg_bad(const ir_graph *irg) {
- return irg->anchors[anchor_bad];
+ return get_irn_intra_n(irg->anchor, anchor_bad);
}
static INLINE void
_set_irg_bad(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_bad] = node;
+ set_irn_n(irg->anchor, anchor_bad, node);
}
static INLINE ir_node *
_get_irg_no_mem(const ir_graph *irg) {
- return irg->anchors[anchor_no_mem];
+ return get_irn_intra_n(irg->anchor, anchor_no_mem);
}
static INLINE void
_set_irg_no_mem(ir_graph *irg, ir_node *node) {
- irg->anchors[anchor_no_mem] = node;
+ set_irn_n(irg->anchor, anchor_no_mem, node);
}
+
static INLINE ir_node *
_get_irg_current_block(const ir_graph *irg) {
return irg->current_block;
return irg->idx_irn_map[idx];
}
+/**
+ * Return the number of anchors in this graph.
+ */
+static INLINE int
+get_irg_n_anchors(const ir_graph *irg) {
+ return get_irn_arity(irg->anchor);
+}
+
+/**
+ * Return anchor for given index
+ */
+static INLINE ir_node *
+get_irg_anchor(const ir_graph *irg, int idx) {
+ return get_irn_intra_n(irg->anchor, idx);
+}
+
+/**
+ * Set anchor for given index
+ */
+static INLINE void
+set_irg_anchor(ir_graph *irg, int idx, ir_node *irn) {
+ set_irn_n(irg->anchor, idx, irn);
+}
+
+
#define get_interprocedural_view() _get_interprocedural_view()
#define is_ir_graph(thing) _is_ir_graph(thing)
#define get_irg_start_block(irg) _get_irg_start_block(irg)
#define get_irg_end(irg) _get_irg_end(irg)
#define set_irg_end(irg, node) _set_irg_end(irg, node)
#define get_irg_end_reg(irg) _get_irg_end_reg(irg)
+#define set_irg_end_reg(irg, node) _set_irg_end_reg(irg, node)
#define get_irg_end_except(irg) _get_irg_end_except(irg)
+#define set_irg_end_except(irg, node) _set_irg_end_except(irg, node)
#define get_irg_frame(irg) _get_irg_frame(irg)
#define set_irg_frame(irg, node) _set_irg_frame(irg, node)
#define get_irg_globals(irg) _get_irg_globals(irg)
#define get_irg_bad(irg) _get_irg_bad(irg)
#define set_irg_bad(irg, node) _set_irg_bad(irg, node)
#define get_irg_no_mem(irg) _get_irg_no_mem(irg)
-#define set_irg_no_mem(irg, node) _set_irg_no_mem(irg, node)
+#define set_irn_no_mem(irg, node) _set_irn_no_mem(irg, node)
#define get_irg_current_block(irg) _get_irg_current_block(irg)
#define set_irg_current_block(irg, node) _set_irg_current_block(irg, node)
#define get_irg_entity(irg) _get_irg_entity(irg)