/** ir_graph holds all information for a procedure */
struct ir_graph {
+ firm_kind kind; /**< always set to k_ir_graph*/
/* -- Basics of the representation -- */
struct entity *ent; /**< The entity of this procedure, i.e.,
the type of the procedure and the
every time someone walks through
the graph */
unsigned long block_visited; /**< same as visited, for a complete block */
+#ifdef DEBUG_libfirm
+ int graph_nr; /**< a unique graph number for each graph to make output
+ readable. */
+#endif
};
+void init_irgraph(void);
+
/** Make a rudimentary ir graph for the constant code.
Must look like a correct irg, spare everything else. */
-ir_graph *new_const_code_irg();
+ir_graph *new_const_code_irg(void);
+/**
+ * Set the pinned state of a graph.
+ *
+ * @irg the IR graph
+ * @p new pin state
+ */
INLINE void
set_irg_pinned (ir_graph *irg, op_pinned p);
+/** Returns the obstack associated with the graph. */
+struct obstack *get_irg_obstack(ir_graph *irg);
+
+/**
+ * Returns true if the node n is allocated on the storage of graph irg.
+ *
+ * @param irg the IR graph
+ * @param n the IR node
+ */
+int node_is_in_irgs_storage(ir_graph *irg, ir_node *n);
+
# endif /* _IRGRAPH_T_H_ */