- C99 feature removed and simplified code
[libfirm] / ir / be / bechordal.c
index 8cccf14..6d32c1c 100644 (file)
@@ -24,9 +24,7 @@
  * @date        08.12.2004
  * @version     $Id$
  */
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <ctype.h>
 
@@ -120,7 +118,7 @@ static void check_heads(be_chordal_env_t *env)
  * @param is_def Is the border a use or a def.
  * @return The created border.
  */
-static INLINE border_t *border_add(be_chordal_env_t *env, struct list_head *head,
+static inline border_t *border_add(be_chordal_env_t *env, struct list_head *head,
                        ir_node *irn, unsigned step, unsigned pressure,
                        unsigned is_def, unsigned is_real)
 {
@@ -177,7 +175,7 @@ static INLINE border_t *border_add(be_chordal_env_t *env, struct list_head *head
  * @param irn The node.
  * @return 1, if the node is of that register class, 0 if not.
  */
-static INLINE int has_reg_class(const be_chordal_env_t *env, const ir_node *irn)
+static inline int has_reg_class(const be_chordal_env_t *env, const ir_node *irn)
 {
        return arch_irn_consider_in_reg_alloc(env->cls, irn);
 }
@@ -243,7 +241,8 @@ static ir_node *prepare_constr_insn(be_chordal_env_t *env, ir_node *irn)
                const arch_register_t *reg;
                const arch_register_req_t *req;
 
-               if (arch_get_irn_reg_class(irn, i) != env->cls)
+               req = arch_get_register_req(irn, i);
+               if (req->cls != env->cls)
                        continue;
 
                reg = arch_get_irn_register(op);
@@ -253,7 +252,6 @@ static ir_node *prepare_constr_insn(be_chordal_env_t *env, ir_node *irn)
                if(arch_register_type_is(reg, joker))
                        continue;
 
-               req = arch_get_register_req(irn, i);
                if (!arch_register_req_is(req, limited))
                        continue;
 
@@ -371,13 +369,9 @@ void be_pre_spill_prepare_constr(be_chordal_env_t *cenv) {
 static void pair_up_operands(const be_chordal_alloc_env_t *alloc_env, be_insn_t *insn)
 {
        const be_chordal_env_t *env = alloc_env->chordal_env;
-
-       int n_uses   = be_insn_n_uses(insn);
-       int n_defs   = be_insn_n_defs(insn);
-       bitset_t *bs = bitset_alloca(env->cls->n_regs);
-       int *pairing = alloca(MAX(n_defs, n_uses) * sizeof(pairing[0]));
-
-       int i, j;
+       bitset_t               *bs  = bitset_alloca(env->cls->n_regs);
+       int                     i;
+       int                     j;
 
        /*
                For each out operand, try to find an in operand which can be assigned the
@@ -540,10 +534,10 @@ static ir_node *handle_constraints(be_chordal_alloc_env_t *alloc_env,
 
        n_regs      = env->cls->n_regs;
        bs          = bitset_alloca(n_regs);
-       alloc_nodes = alloca(n_regs * sizeof(alloc_nodes[0]));
+       alloc_nodes = ALLOCAN(ir_node*, n_regs);
        //bp          = hungarian_new(n_regs, n_regs, 2, HUNGARIAN_MATCH_PERFECT);
        bp          = bipartite_new(n_regs, n_regs);
-       assignment  = alloca(n_regs * sizeof(assignment[0]));
+       assignment  = ALLOCAN(int, n_regs);
        partners    = pmap_create();
 
        /*
@@ -927,7 +921,7 @@ static void assign(ir_node *block, void *env_ptr)
        list_for_each_entry_reverse(border_t, b, head, list) {
                ir_node *irn = b->irn;
                int nr       = get_irn_idx(irn);
-               int ignore   = arch_irn_is(irn, ignore);
+               int ignore   = arch_irn_is_ignore(irn);
 
                /*
                 * Assign a color, if it is a local def. Global defs already have a