remove irsimpletype stuff (unused/broken)
[libfirm] / ir / be / bespillslots.c
index 684720a..695cdad 100644 (file)
@@ -48,8 +48,8 @@
 #include "beirg.h"
 #include "bearch.h"
 
-#define DBG_COALESCING         1
-#define DBG_INTERFERENCES      2
+#define DBG_COALESCING      1
+#define DBG_INTERFERENCES   2
 
 DEBUG_ONLY(static firm_dbg_module_t *dbg = NULL;)
 
@@ -68,7 +68,6 @@ typedef struct affinity_edge_t {
 
 struct be_fec_env_t {
        struct obstack         obst;
-       const arch_env_t      *arch_env;
        ir_graph              *irg;
        set                   *spills;
        ir_node              **reloads;
@@ -472,21 +471,21 @@ static void do_greedy_coalescing(be_fec_env_t *env)
 
 
 
-typedef struct _spill_slot_t {
+typedef struct spill_slot_t {
        int size;
        int align;
        ir_entity *entity;
 } spill_slot_t;
 
-typedef struct _memperm_entry_t {
+typedef struct memperm_entry_t {
        ir_node* node;
        int pos;
        ir_entity *in;
        ir_entity *out;
-       struct _memperm_entry_t *next;
+       struct memperm_entry_t *next;
 } memperm_entry_t;
 
-typedef struct _memperm_t {
+typedef struct memperm_t {
        ir_node *block;
        int entrycount;
        memperm_entry_t *entries;
@@ -702,9 +701,7 @@ static ir_node *get_end_of_block_insertion_point(ir_node* block)
 
 static void create_memperms(be_fec_env_t *env)
 {
-       const arch_env_t *arch_env = env->arch_env;
-       ir_graph         *irg      = env->irg;
-       memperm_t        *memperm;
+       memperm_t *memperm;
 
        for (memperm = set_first(env->memperms); memperm != NULL; memperm = set_next(env->memperms)) {
                ir_node         **nodes = ALLOCAN(ir_node*, memperm->entrycount);
@@ -720,8 +717,8 @@ static void create_memperms(be_fec_env_t *env)
                        nodes[i] = arg;
                }
 
-               mempermnode = be_new_MemPerm(arch_env, memperm->block,
-                                            memperm->entrycount, nodes);
+               mempermnode = be_new_MemPerm(memperm->block, memperm->entrycount,
+                                            nodes);
 
                /* insert node into schedule */
                blockend = get_end_of_block_insertion_point(memperm->block);
@@ -735,8 +732,7 @@ static void create_memperms(be_fec_env_t *env)
 
                        be_set_MemPerm_in_entity(mempermnode, i, entry->in);
                        be_set_MemPerm_out_entity(mempermnode, i, entry->out);
-                       set_irg_current_block(irg, memperm->block);
-                       proj = new_Proj(mempermnode, get_irn_mode(arg), i);
+                       proj = new_r_Proj(mempermnode, get_irn_mode(arg), i);
 
                        set_irn_n(entry->node, entry->pos, proj);
                }
@@ -765,13 +761,11 @@ static int count_spillslots(const be_fec_env_t *env)
 
 be_fec_env_t *be_new_frame_entity_coalescer(ir_graph *irg)
 {
-       const arch_env_t *arch_env = be_get_irg_arch_env(irg);
-       be_fec_env_t     *env      = XMALLOC(be_fec_env_t);
+       be_fec_env_t *env = XMALLOCZ(be_fec_env_t);
 
        be_liveness_assure_chk(be_assure_liveness(irg));
 
        obstack_init(&env->obst);
-       env->arch_env       = arch_env;
        env->irg            = irg;
        env->spills         = new_set(cmp_spill, 10);
        env->reloads        = NEW_ARR_F(ir_node*, 0);
@@ -816,17 +810,21 @@ void be_assign_entities(be_fec_env_t *env,
  */
 static void collect_spills_walker(ir_node *node, void *data)
 {
-       be_fec_env_t *env = data;
-       const ir_mode *mode;
+       be_fec_env_t                *env = data;
+       const ir_mode               *mode;
        const arch_register_class_t *cls;
-       int align;
+       int                          align;
+       ir_graph                    *irg;
+       const arch_env_t            *arch_env;
 
        if (! (arch_irn_classify(node) & arch_irn_class_reload))
                return;
 
-       mode  = get_irn_mode(node);
-       cls   = arch_get_irn_reg_class_out(node);
-       align = arch_env_get_reg_class_alignment(env->arch_env, cls);
+       mode     = get_irn_mode(node);
+       cls      = arch_get_irn_reg_class_out(node);
+       irg      = get_irn_irg(node);
+       arch_env = be_get_irg_arch_env(irg);
+       align    = arch_env_get_reg_class_alignment(arch_env, cls);
 
        be_node_needs_frame_entity(env, node, mode, align);
 }