X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbespillslots.c;h=6265111aa5a64a1f9b481d9aaf5cb74969c614b7;hb=dd773fe15c0af814dc5af6fcb0dad913d181a30d;hp=da9b18c6cc3e9cb08a48724275e77585252b1538;hpb=5cfbace431416dbbf03ec25b6ef16bc3bf5f91d9;p=libfirm diff --git a/ir/be/bespillslots.c b/ir/be/bespillslots.c index da9b18c6c..6265111aa 100644 --- a/ir/be/bespillslots.c +++ b/ir/be/bespillslots.c @@ -37,16 +37,16 @@ #include "unionfind.h" #include "irdump_t.h" -#include "benode_t.h" +#include "benode.h" #include "besched.h" +#include "bespill.h" #include "bespillslots.h" #include "bechordal_t.h" #include "bestatevent.h" -#include "bespilloptions.h" #include "bemodule.h" #include "beintlive_t.h" -#include "beirg_t.h" -#include "bearch_t.h" +#include "beirg.h" +#include "bearch.h" #define DBG_COALESCING 1 #define DBG_INTERFERENCES 2 @@ -182,7 +182,7 @@ static spill_t *collect_memphi(be_fec_env_t *env, ir_node *node, } /* add an affinity edge */ - affinty_edge = obstack_alloc(&env->obst, sizeof(affinty_edge[0])); + affinty_edge = OALLOC(&env->obst, affinity_edge_t); affinty_edge->affinity = get_block_execfreq(exec_freq, get_nodes_block(arg)); affinty_edge->slot1 = res->spillslot; affinty_edge->slot2 = arg_spill->spillslot; @@ -222,7 +222,7 @@ static int merge_interferences(be_fec_env_t *env, bitset_t** interferences, /* merge spillslots and interferences */ res = uf_union(spillslot_unionfind, s1, s2); /* we assume that we always merge s2 to s1 so swap s1, s2 if necessary */ - if(res != 0) { + if(res != s1) { int t = s1; s1 = s2; s2 = t; @@ -569,7 +569,8 @@ static void assign_spill_entity(ir_node *node, ir_entity *entity) return; } - /* beware: we might have Stores with Memory Proj's, ia32 fisttp for instance */ + /* beware: we might have Stores with Memory Proj's, ia32 fisttp for + instance */ node = skip_Proj(node); assert(arch_get_frame_entity(node) == NULL); arch_set_frame_entity(node, entity); @@ -643,7 +644,7 @@ static void assign_spillslots(be_fec_env_t *env) memperm = get_memperm(env, predblock); - entry = obstack_alloc(&env->obst, sizeof(entry[0])); + entry = OALLOC(&env->obst, memperm_entry_t); entry->node = node; entry->pos = i; entry->in = argslot->entity; @@ -713,7 +714,7 @@ static void create_memperms(be_fec_env_t *env) nodes[i] = arg; } - mempermnode = be_new_MemPerm(arch_env, irg, memperm->block, + mempermnode = be_new_MemPerm(arch_env, memperm->block, memperm->entrycount, nodes); /* insert node into schedule */