+/** sets the callee_info_state of an IR graph. */
+void set_irg_callee_info_state(ir_graph *irg, irg_callee_info_state s);
+
+/** property:
+ * Tells how to handle an ir graph in inlineing.
+ */
+typedef enum {
+ irg_inline_any, /**< No restriction on inlineing. Default. */
+ irg_inline_forbidden, /**< The graph may not be inlined. */
+ irg_inline_recomended, /**< The graph should be inlined. */
+ irg_inline_forced, /**< The graph must be inlined. */
+ irg_inline_forced_no_body /**< The graph must be inlined. No body is allowed
+ to be emitted. */
+} irg_inline_property;
+
+/** Returns the inline property of a graph. */
+irg_inline_property get_irg_inline_property(const ir_graph *irg);
+/** Sets the inline property of a graph. */
+void set_irg_inline_property(ir_graph *irg, irg_inline_property s);
+
+/**
+ * Returns the mask of the additional graph properties.
+ * The properties are automatically inherited from the method type
+ * if they were not set using set_irg_additional_properties() or
+ * set_irg_additional_property().
+ */
+unsigned get_irg_additional_properties(const ir_graph *irg);
+
+/** Sets the mask of the additional graph properties. */
+void set_irg_additional_properties(ir_graph *irg, unsigned property_mask);
+
+/** Sets one additional graph property. */
+void set_irg_additional_property(ir_graph *irg, mtp_additional_property flag);
+
+/** A void * field to link arbitrary information to the node. */
+void set_irg_link (ir_graph *irg, void *thing);
+void *get_irg_link (const ir_graph *irg);
+
+/** Increments visited flag by one.
+ * @see also: get_irn_visited() get_irg_block_visited(). */
+void inc_irg_visited (ir_graph *irg);
+unsigned long get_irg_visited (const ir_graph *irg);
+void set_irg_visited (ir_graph *irg, unsigned long i);
+/** An interprocedural flag valid for all irgs.
+ * @see also: get_irn_visited() get_irg_block_visited(). */
+unsigned long get_max_irg_visited (void);
+void set_max_irg_visited (int val);
+unsigned long inc_max_irg_visited (void);
+
+/** Increments block_visited by one.
+ * @see also: get_irn_visited() get_irg_block_visited(). */
+void inc_irg_block_visited (ir_graph *irg);
+unsigned long get_irg_block_visited (const ir_graph *irg);
+void set_irg_block_visited (ir_graph *irg, unsigned long i);
+
+/**
+ * Debug helpers: You can indicate wether you are currently using visited or
+ * block_visited flags. If NDEBUG is not defined, then the compiler will abort
+ * if 2 parties try to use the flags.
+ */
+#ifndef NDEBUG
+void set_using_block_visited(ir_graph *irg);
+void clear_using_block_visited(ir_graph *irg);
+int using_block_visited(const ir_graph *irg);
+void set_using_visited(ir_graph *irg);
+void clear_using_visited(ir_graph *irg);
+int using_visited(const ir_graph *irg);
+void set_using_irn_link(ir_graph *irg);
+void clear_using_irn_link(ir_graph *irg);
+int using_irn_link(const ir_graph *irg);
+#else
+static INLINE void set_using_block_visited(ir_graph *irg) { (void) irg; }
+static INLINE void clear_using_block_visited(ir_graph *irg) { (void) irg; }
+static INLINE int using_block_visited(const ir_graph *irg) { (void) irg; return 0; }
+static INLINE void set_using_visited(ir_graph *irg) { (void) irg; }
+static INLINE void clear_using_visited(ir_graph *irg) { (void) irg; }
+static INLINE int using_visited(const ir_graph *irg) { (void) irg; return 0; }
+static INLINE void set_using_irn_link(ir_graph *irg) { (void) irg; }
+static INLINE void clear_using_irn_link(ir_graph *irg) { (void) irg; }
+static INLINE int using_irn_link(const ir_graph *irg) { (void) irg; return 0; }
+#endif