Do not mark the transformed as visited. It makes no sense at all.
[libfirm] / ir / be / becopyheur4.c
index bfad18b..58e85ad 100644 (file)
@@ -33,6 +33,8 @@
 #include "config.h"
 #endif /* HAVE_CONFIG_H */
 
+#define DISABLE_STATEV
+
 #include <float.h>
 
 #include "array.h"
@@ -254,7 +256,7 @@ static int cmp_col_cost_gt(const void *a, const void *b) {
  * Creates a new affinity chunk
  */
 static INLINE aff_chunk_t *new_aff_chunk(co_mst_env_t *env) {
-       aff_chunk_t *c = xmalloc(sizeof(*c) + (env->n_regs - 1) * sizeof(c->color_affinity[0]));
+       aff_chunk_t *c = XMALLOCF(aff_chunk_t, color_affinity, env->n_regs);
        c->n                 = NEW_ARR_F(const ir_node *, 0);
        c->interfere         = NEW_ARR_F(const ir_node *, 0);
        c->weight            = -1;