fix things when WITH_JVM and WITH_ILP is defined
[libfirm] / ir / be / benode.c
index 6a017c4..31b337c 100644 (file)
@@ -95,21 +95,21 @@ typedef struct {
 /** The be_Frame attribute type. */
 typedef struct {
        be_node_attr_t node_attr;
-       entity *ent;
+       ir_entity *ent;
        int offset;
 } be_frame_attr_t;
 
 /** The be_Call attribute type. */
 typedef struct {
        be_node_attr_t node_attr;
-       entity *ent;         /**< The called entity if this is a static call. */
+       ir_entity *ent;      /**< The called entity if this is a static call. */
        ir_type *call_tp;    /**< The call type, copied from the original Call node. */
 } be_call_attr_t;
 
 typedef struct {
        be_node_attr_t node_attr;
-       entity **in_entities;
-       entity **out_entities;
+       ir_entity **in_entities;
+       ir_entity **out_entities;
 } be_memperm_attr_t;
 
 ir_op *op_be_Spill;
@@ -338,34 +338,24 @@ be_node_set_irn_reg(const void *_self, ir_node *irn, const arch_register_t *reg)
 }
 
 
-ir_node *be_new_Spill(const arch_register_class_t *cls, const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_node *frame, ir_node *to_spill)
+ir_node *be_new_Spill(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, ir_node *to_spill)
 {
        be_frame_attr_t *a;
-       ir_node *in[2];
-       ir_node *res;
+       ir_node         *res;
 
-       in[0] = frame;
-       in[1] = to_spill;
-       res   = new_ir_node(NULL, irg, bl, op_be_Spill, mode_M, 2, in);
-       a     = init_node_attr(res, 2);
-       a->ent = NULL;
+       res       = new_ir_node(NULL, irg, bl, op_be_Spill, mode_M, 1, &to_spill);
+       a         = init_node_attr(res, 2);
+       a->ent    = NULL;
        a->offset = 0;
 
-       be_node_set_reg_class(res, 0, cls_frame);
-       be_node_set_reg_class(res, 1, cls);
+       be_node_set_reg_class(res, be_pos_Spill_val, cls);
        return res;
 }
 
-ir_node *be_new_Reload(const arch_register_class_t *cls, const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_node *frame, ir_node *mem, ir_mode *mode)
+ir_node *be_new_Reload(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, ir_node *mem, ir_mode *mode)
 {
-       ir_node *in[2];
-       ir_node *res;
-
-       in[0] = frame;
-       in[1] = mem;
-       res   = new_ir_node(NULL, irg, bl, op_be_Reload, mode, 2, in);
+       ir_node *res = new_ir_node(NULL, irg, bl, op_be_Reload, mode, 1, &mem);
        init_node_attr(res, 2);
-       be_node_set_reg_class(res, 0, cls_frame);
        be_node_set_reg_class(res, -1, cls);
        be_node_set_flags(res, -1, arch_irn_flags_rematerializable);
        return res;
@@ -377,24 +367,12 @@ ir_node *be_get_Reload_mem(const ir_node *irn)
        return get_irn_n(irn, be_pos_Reload_mem);
 }
 
-ir_node *be_get_Reload_frame(const ir_node *irn)
-{
-       assert(be_is_Reload(irn));
-       return get_irn_n(irn, be_pos_Reload_frame);
-}
-
 ir_node *be_get_Spill_val(const ir_node *irn)
 {
        assert(be_is_Spill(irn));
        return get_irn_n(irn, be_pos_Spill_val);
 }
 
-ir_node *be_get_Spill_frame(const ir_node *irn)
-{
-       assert(be_is_Spill(irn));
-       return get_irn_n(irn, be_pos_Spill_frame);
-}
-
 ir_node *be_new_Perm(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, int n, ir_node *in[])
 {
        int i;
@@ -499,14 +477,14 @@ ir_node *be_new_Call(dbg_info *dbg, ir_graph *irg, ir_node *bl, ir_node *mem, ir
 }
 
 /* Gets the call entity or NULL if this is no static call. */
-entity *be_Call_get_entity(const ir_node *call) {
+ir_entity *be_Call_get_entity(const ir_node *call) {
        be_call_attr_t *a = get_irn_attr(call);
        assert(be_is_Call(call));
        return a->ent;
 }
 
 /* Sets the call entity. */
-void be_Call_set_entity(ir_node *call, entity *ent) {
+void be_Call_set_entity(ir_node *call, ir_entity *ent) {
        be_call_attr_t *a = get_irn_attr(call);
        assert(be_is_Call(call));
        a->ent = ent;
@@ -634,7 +612,7 @@ ir_node *be_new_SetSP(const arch_register_t *sp, ir_graph *irg, ir_node *bl, ir_
        return irn;
 }
 
-ir_node *be_new_StackParam(const arch_register_class_t *cls, const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_mode *mode, ir_node *frame_pointer, entity *ent)
+ir_node *be_new_StackParam(const arch_register_class_t *cls, const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_mode *mode, ir_node *frame_pointer, ir_entity *ent)
 {
        be_frame_attr_t *a;
        ir_node *irn;
@@ -661,7 +639,7 @@ ir_node *be_new_RegParams(ir_graph *irg, ir_node *bl, int n_outs)
 }
 
 ir_node *be_new_FrameLoad(const arch_register_class_t *cls_frame, const arch_register_class_t *cls_data,
-                                                 ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, entity *ent)
+                                                 ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_entity *ent)
 {
        be_frame_attr_t *a;
        ir_node *irn;
@@ -679,7 +657,7 @@ ir_node *be_new_FrameLoad(const arch_register_class_t *cls_frame, const arch_reg
 }
 
 ir_node *be_new_FrameStore(const arch_register_class_t *cls_frame, const arch_register_class_t *cls_data,
-                                                  ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_node *data, entity *ent)
+                                                  ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_node *data, ir_entity *ent)
 {
        be_frame_attr_t *a;
        ir_node *irn;
@@ -697,7 +675,7 @@ ir_node *be_new_FrameStore(const arch_register_class_t *cls_frame, const arch_re
        return irn;
 }
 
-ir_node *be_new_FrameAddr(const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_node *frame, entity *ent)
+ir_node *be_new_FrameAddr(const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_node *frame, ir_entity *ent)
 {
        be_frame_attr_t *a;
        ir_node *irn;
@@ -788,7 +766,7 @@ int be_has_frame_entity(const ir_node *irn)
        }
 }
 
-entity* be_get_frame_entity(const ir_node *irn)
+ir_entity* be_get_frame_entity(const ir_node *irn)
 {
        if(be_has_frame_entity(irn)) {
                be_frame_attr_t *a = get_irn_attr(irn);
@@ -797,7 +775,7 @@ entity* be_get_frame_entity(const ir_node *irn)
        return NULL;
 }
 
-void be_set_MemPerm_in_entity(const ir_node *irn, int n, entity *ent)
+void be_set_MemPerm_in_entity(const ir_node *irn, int n, ir_entity *ent)
 {
        be_memperm_attr_t *attr = get_irn_attr(irn);
 
@@ -807,7 +785,7 @@ void be_set_MemPerm_in_entity(const ir_node *irn, int n, entity *ent)
        attr->in_entities[n] = ent;
 }
 
-entity* be_get_MemPerm_in_entity(const ir_node* irn, int n)
+ir_entity* be_get_MemPerm_in_entity(const ir_node* irn, int n)
 {
        be_memperm_attr_t *attr = get_irn_attr(irn);
 
@@ -817,7 +795,7 @@ entity* be_get_MemPerm_in_entity(const ir_node* irn, int n)
        return attr->in_entities[n];
 }
 
-void be_set_MemPerm_out_entity(const ir_node *irn, int n, entity *ent)
+void be_set_MemPerm_out_entity(const ir_node *irn, int n, ir_entity *ent)
 {
        be_memperm_attr_t *attr = get_irn_attr(irn);
 
@@ -827,7 +805,7 @@ void be_set_MemPerm_out_entity(const ir_node *irn, int n, entity *ent)
        attr->out_entities[n] = ent;
 }
 
-entity* be_get_MemPerm_out_entity(const ir_node* irn, int n)
+ir_entity* be_get_MemPerm_out_entity(const ir_node* irn, int n)
 {
        be_memperm_attr_t *attr = get_irn_attr(irn);
 
@@ -953,30 +931,25 @@ int be_get_IncSP_offset(const ir_node *irn)
 
 ir_node *be_spill(const arch_env_t *arch_env, ir_node *irn)
 {
-       ir_node *bl     = get_nodes_block(irn);
-       ir_graph *irg   = get_irn_irg(bl);
-       ir_node *frame  = get_irg_frame(irg);
-       ir_node *spill;
+       ir_node                     *bl  = get_nodes_block(irn);
+       ir_graph                    *irg = get_irn_irg(bl);
+       const arch_register_class_t *cls = arch_get_irn_reg_class(arch_env, irn, -1);
+       ir_node                     *spill;
 
-       const arch_register_class_t *cls       = arch_get_irn_reg_class(arch_env, irn, -1);
-       const arch_register_class_t *cls_frame = arch_get_irn_reg_class(arch_env, frame, -1);
 
-       spill = be_new_Spill(cls, cls_frame, irg, bl, frame, irn);
+       spill = be_new_Spill(cls, irg, bl, irn);
        return spill;
 }
 
 ir_node *be_reload(const arch_env_t *arch_env, const arch_register_class_t *cls, ir_node *insert, ir_mode *mode, ir_node *spill)
 {
-       ir_node *reload;
-
-       ir_node *bl    = is_Block(insert) ? insert : get_nodes_block(insert);
-       ir_graph *irg  = get_irn_irg(bl);
-       ir_node *frame = get_irg_frame(irg);
-       const arch_register_class_t *cls_frame = arch_get_irn_reg_class(arch_env, frame, -1);
+       ir_node  *reload;
+       ir_node  *bl  = is_Block(insert) ? insert : get_nodes_block(insert);
+       ir_graph *irg = get_irn_irg(bl);
 
        assert(be_is_Spill(spill) || (is_Phi(spill) && get_irn_mode(spill) == mode_M));
 
-       reload = be_new_Reload(cls, cls_frame, irg, bl, frame, spill, mode);
+       reload = be_new_Reload(cls, irg, bl, spill, mode);
 
        if(is_Block(insert)) {
                insert = sched_skip(insert, 0, sched_skip_cf_predicator, (void *) arch_env);
@@ -1088,12 +1061,12 @@ static arch_irn_flags_t be_node_get_flags(const void *_self, const ir_node *irn)
        return r ? r->req.flags : 0;
 }
 
-static entity *be_node_get_frame_entity(const void *self, const ir_node *irn)
+static ir_entity *be_node_get_frame_entity(const void *self, const ir_node *irn)
 {
        return be_get_frame_entity(irn);
 }
 
-static void be_node_set_frame_entity(const void *self, ir_node *irn, entity *ent)
+static void be_node_set_frame_entity(const void *self, ir_node *irn, ir_entity *ent)
 {
        be_frame_attr_t *a;
 
@@ -1113,13 +1086,7 @@ static void be_node_set_frame_offset(const void *self, ir_node *irn, int offset)
 
 static int be_node_get_sp_bias(const void *self, const ir_node *irn)
 {
-       int result = 0;
-
-       if(be_is_IncSP(irn)) {
-               result = be_get_IncSP_offset(irn);
-       }
-
-       return result;
+       return be_is_IncSP(irn) ? be_get_IncSP_offset(irn) : 0;
 }
 
 /*
@@ -1259,12 +1226,12 @@ static arch_irn_flags_t phi_get_flags(const void *_self, const ir_node *irn)
        return arch_irn_flags_none;
 }
 
-static entity *phi_get_frame_entity(const void *_self, const ir_node *irn)
+static ir_entity *phi_get_frame_entity(const void *_self, const ir_node *irn)
 {
        return NULL;
 }
 
-static void phi_set_frame_entity(const void *_self, ir_node *irn, entity *ent)
+static void phi_set_frame_entity(const void *_self, ir_node *irn, ir_entity *ent)
 {
 }
 
@@ -1456,7 +1423,7 @@ static int dump_node(ir_node *irn, FILE *f, dump_reason_t reason)
                                {
                                        int i;
                                        for(i = 0; i < be_get_MemPerm_entity_arity(irn); ++i) {
-                                               entity *in, *out;
+                                               ir_entity *in, *out;
                                                in = be_get_MemPerm_in_entity(irn, i);
                                                out = be_get_MemPerm_out_entity(irn, i);
                                                if(in) {