Added test case for pbqp construction: There seems to be missing skip patterns, so...
[libfirm] / ir / be / bespillremat.c
index be7499b..f293b8e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -51,6 +51,7 @@
 #include "execfreq.h"
 #include "irvrfy.h"
 #include "irbackedge_t.h"
+#include "irprofile.h"
 
 #include <lpp/lpp.h>
 #include <lpp/mps.h>
 #include "bespillremat.h"
 #include "bespill.h"
 #include "bepressurestat.h"
-#include "beprofile.h"
 #include "bespilloptions.h"
 #include "bechordal_t.h"
 #include "bemodule.h"
 
-#include <libcore/lc_opts.h>
-#include <libcore/lc_opts_enum.h>
+#include "lc_opts.h"
+#include "lc_opts_enum.h"
 
 #define DUMP_PROBLEM       1
 #define DUMP_MPS           2
@@ -440,8 +440,8 @@ static double
 execution_frequency(const spill_ilp_t *si, const ir_node * irn)
 {
 #define FUDGE 0.001
-       if(be_profile_has_data())
-               return ((double)be_profile_get_block_execcount(get_block_const(irn))) + FUDGE;
+       if(ir_profile_has_data())
+               return ((double)ir_profile_get_block_execcount(get_block_const(irn))) + FUDGE;
 
 #ifndef EXECFREQ_LOOPDEPH
        return get_block_execfreq(si->birg->exec_freq, get_block_const(irn)) + FUDGE;
@@ -482,7 +482,7 @@ is_rematerializable(const spill_ilp_t * si, const ir_node * irn)
 
        for (n = get_irn_arity(irn)-1; n>=0 && remat; --n) {
                ir_node        *op = get_irn_n(irn, n);
-               remat &= has_reg_class(si, op) || arch_irn_get_flags(arch_env, op) & arch_irn_flags_ignore || (get_irn_op(op) == op_NoMem);
+               remat &= has_reg_class(si, op) || arch_irn_get_flags(arch_env, op) & arch_irn_flags_ignore || is_NoMem(op);
 
 //             if(!remat)
 //                     ir_fprintf(stderr, "  Argument %d (%+F) of Node %+F has wrong regclass\n", i, op, irn);
@@ -3247,6 +3247,9 @@ is_zero(double x)
        return fabs(x) < 0.00001;
 }
 
+/**
+ * node attribute hook for changing colors
+ */
 static int mark_remat_nodes_hook(FILE *F, ir_node *n, ir_node *l)
 {
        spill_ilp_t *si = get_irg_link(current_ir_graph);
@@ -3601,7 +3604,7 @@ new_r_PhiM_nokeep(ir_graph * irg, ir_node *block, int arity, ir_node **in)
        assert( get_irn_arity(block) == arity );
 
        res = new_ir_node(NULL, irg, block, op_Phi, mode_M, arity, in);
-       res->attr.phi_backedge = new_backedge_arr(irg->obst, arity);
+       res->attr.phi.u.backedge = new_backedge_arr(irg->obst, arity);
 
        return res;
 }