* PURPOSE.
*/
-/*
- * Author: Matthias Braun
- * Date: 26.7.06
- * Copyright: (c) Universitaet Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+/**
+ * @file
+ * @brief Spillslot coalescer.
+ * @author Matthias Braun
+ * @date 26.07.2006
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#include <stdlib.h>
#include "set.h"
-
+#include "array.h"
#include "irgwalk.h"
#include "ircons.h"
#include "irprintf.h"
#include "bestatevent.h"
#include "bespilloptions.h"
#include "bemodule.h"
-#include "bera.h"
+#include "beintlive_t.h"
#include "beirg_t.h"
+#include "bearch_t.h"
#define DBG_COALESCING 1
#define DBG_INTERFERENCES 2
int affinity_edge_count;
bitset_t **interferences;
int* spillslot_unionfind;
- const be_lv_t *lv = be_get_birg_liveness(env->birg);
spillcount = set_count(env->spills);
if(spillcount == 0)
if (is_NoMem(spill2))
continue;
- if (values_interfere(lv, spill1, spill2)) {
+ if (values_interfere(env->birg, spill1, spill2)) {
DBG((dbg, DBG_INTERFERENCES, "Slot %d and %d interfere\n", i, i2));
bitset_set(interferences[i], i2);
bitset_set(interferences[i2], i);
if (!arch_irn_class_is(arch_env, node, reload))
return;
- mode = get_irn_mode(node);
- cls = arch_get_irn_reg_class(arch_env, node, -1);
+ mode = get_irn_mode(node);
+ cls = arch_get_irn_reg_class(arch_env, node, -1);
align = arch_isa_get_reg_class_alignment(arch_env_get_isa(arch_env), cls);
be_node_needs_frame_entity(env, node, mode, align);