removed include
[libfirm] / ir / ir / irgraph_t.h
index fb79b0e..1b98e71 100644 (file)
  */
 
 
-# ifndef _IRGRAPH_T_H_
-# define _IRGRAPH_T_H_
-# include "obst.h"
-# include "pset.h"
-# include "irgraph.h"
-# include "firm_common_t.h"
-# include "irtypeinfo.h"
+#ifndef _IRGRAPH_T_H_
+#define _IRGRAPH_T_H_
+
+#include "irgraph.h"
+
+#include "firm_common_t.h"
+#include "irtypeinfo.h"
+#include "irprog.h"
+
+#include "irloop.h"
+
+#include "obst.h"
+#include "pset.h"
 
 #define FRAME_TP_SUFFIX "frame_tp"
 
@@ -60,7 +66,7 @@ struct ir_graph {
 
   /* -- Fields indicating different states of irgraph -- */
   irg_phase_state phase_state;       /**< compiler phase */
-  op_pinned pinned;                  /**< Flag for status of nodes */
+  op_pin_state op_pin_state_pinned;  /**< Flag for status of nodes */
   irg_outs_state outs_state;         /**< Out edges. */
   irg_dom_state dom_state;           /**< Dominator information */
   irg_typeinfo_state typeinfo_state;       /**< Validity of type information */
@@ -91,6 +97,9 @@ struct ir_graph {
   int       *caller_isbe;            /**< For callgraph analyses: set if backedge. */
   ir_graph **callees;                /**< For callgraph analyses. */
   int       *callee_isbe;            /**< For callgraph analyses: set if backedge. */
+  int        callgraph_loop_depth;
+  int        callgraph_recursion_depth;
+  ir_loop   *l;
 
   /* -- Fields for Walking the graph -- */
   unsigned long visited;             /**< this flag is an identifier for
@@ -111,13 +120,13 @@ void init_irgraph(void);
 ir_graph *new_const_code_irg(void);
 
 /**
- * Set the pinned state of a graph.
+ * Set the op_pin_state_pinned state of a graph.
  *
  * @irg     the IR graph
  * @p       new pin state
  */
 INLINE void
-set_irg_pinned (ir_graph *irg, op_pinned p);
+set_irg_pinned (ir_graph *irg, op_pin_state p);
 
 /** Returns the obstack associated with the graph. */
 struct obstack *get_irg_obstack(ir_graph *irg);
@@ -325,9 +334,9 @@ __set_irg_phase_low(ir_graph *irg) {
   irg->phase_state = phase_low;
 }
 
-static INLINE op_pinned
+static INLINE op_pin_state
 __get_irg_pinned(ir_graph *irg) {
-  return irg->pinned;
+  return irg->op_pin_state_pinned;
 }
 
 static INLINE irg_outs_state
@@ -361,8 +370,8 @@ __set_irg_loopinfo_state(ir_graph *irg, irg_loopinfo_state s) {
 }
 
 static INLINE void
-__set_irg_pinned(ir_graph *irg, op_pinned p) {
-  irg->pinned = p;
+__set_irg_pinned(ir_graph *irg, op_pin_state p) {
+  irg->op_pin_state_pinned = p;
 }
 
 static INLINE irg_callee_info_state
@@ -372,7 +381,14 @@ __get_irg_callee_info_state(ir_graph *irg) {
 
 static INLINE void
 __set_irg_callee_info_state(ir_graph *irg, irg_callee_info_state s) {
+  irg_callee_info_state irp_state = get_irp_callee_info_state();
+
   irg->callee_info_state = s;
+
+  /* I could compare ... but who knows? */
+  if ((irp_state == irg_callee_info_consistent)  ||
+      ((irp_state == irg_callee_info_inconsistent) && (s == irg_callee_info_none)))
+      set_irp_callee_info_state(s);
 }
 
 static INLINE irg_inline_property
@@ -444,8 +460,8 @@ __inc_irg_block_visited(ir_graph *irg)
 #define set_irg_bad(irg, node)             __set_irg_bad(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_ent(irg)                   __get_irg_ent(irg)
-#define set_irg_ent(irg, ent)              __set_irg_ent(irg, ent)
+#define get_irg_entity(irg)                   __get_irg_ent(irg)
+#define set_irg_entity(irg, ent)              __set_irg_ent(irg, ent)
 #define get_irg_frame_type(irg)            __get_irg_frame_type(irg)
 #define set_irg_frame_type(irg, ftp)       __set_irg_frame_type(irg, ftp)
 #define get_irg_obstack(irg)               __get_irg_obstack(irg)