Added a computation for spill-slot (offset) assignment.
[libfirm] / ir / be / besched_t.h
index 9d972ca..0d37f86 100644 (file)
@@ -8,6 +8,7 @@
 #include "irnode_t.h"
 #include "irgraph_t.h"
 
+#include "beutil.h"
 #include "besched.h"
 
 typedef unsigned int sched_timestep_t;
@@ -54,18 +55,10 @@ static INLINE int _sched_get_time_step(const ir_node *irn)
  */
 static INLINE int to_appear_in_schedule(ir_node *irn)
 {
-  int i, n;
-
   if(get_irn_opcode(irn) == iro_Start)
        return 1;
 
-  for(i = 0, n = get_irn_arity(irn); i < n; ++i) {
-    ir_node *op = get_irn_n(irn, i);
-    if(mode_is_datab(get_irn_mode(op)))
-      return 1;
-  }
-
-  return mode_is_datab(get_irn_mode(irn));
+  return is_data_node(irn);
 }
 
 /**
@@ -197,10 +190,10 @@ static INLINE ir_node *_sched_add_before(ir_node *before, ir_node *irn)
  */
 static INLINE ir_node *_sched_add_after(ir_node *after, ir_node *irn)
 {
-  sched_info_t *info = get_irn_sched_info(irn);
+       sched_info_t *info = get_irn_sched_info(irn);
        list_add(&info->list, &get_irn_sched_info(after)->list);
-  _sched_set_time_stamp(irn);
-  info->scheduled = 1;
+       _sched_set_time_stamp(irn);
+       info->scheduled = 1;
        return irn;
 }
 
@@ -212,11 +205,12 @@ static INLINE void _sched_remove(ir_node *irn)
 {
   sched_info_t *info = get_irn_sched_info(irn);
   list_del(&info->list);
+       INIT_LIST_HEAD(&info->list);
   info->scheduled = 0;
 }
 
 /**
- * Check, if thenode is scheduled.
+ * Check, if the node is scheduled.
  * @param irn The node.
  * @return 1, if the node is scheduled, 0 if not.
  */