Panic when get_irn_Proj_for_mode() does not find a Proj.
[libfirm] / ir / be / becopyilp2.c
index 17b9262..32a0395 100644 (file)
@@ -240,7 +240,6 @@ static void make_affinity_var_name(char *buf, size_t buf_size,
 static void build_affinity_cstr(ilp_env_t *ienv)
 {
        unsigned  n_colors = arch_register_class_n_regs(ienv->co->cls);
-       unit_t   *curr;
 
        /* for all optimization units */
        list_for_each_entry(unit_t, curr, &ienv->co->units, units) {
@@ -312,7 +311,7 @@ static inline edge_t *add_edge(set *edges, ir_node *n1, ir_node *n2, size_t *cou
                new_edge.n2 = n1;
        }
        (*counter)++;
-       return (edge_t*)set_insert(edges, &new_edge, sizeof(new_edge), HASH_EDGE(&new_edge));
+       return set_insert(edge_t, edges, &new_edge, sizeof(new_edge), HASH_EDGE(&new_edge));
 }
 
 static inline edge_t *find_edge(set *edges, ir_node *n1, ir_node *n2)
@@ -326,7 +325,7 @@ static inline edge_t *find_edge(set *edges, ir_node *n1, ir_node *n2)
                new_edge.n1 = n2;
                new_edge.n2 = n1;
        }
-       return (edge_t*)set_find(edges, &new_edge, sizeof(new_edge), HASH_EDGE(&new_edge));
+       return set_find(edge_t, edges, &new_edge, sizeof(new_edge), HASH_EDGE(&new_edge));
 }
 
 static inline void remove_edge(set *edges, ir_node *n1, ir_node *n2, size_t *counter)
@@ -340,7 +339,7 @@ static inline void remove_edge(set *edges, ir_node *n1, ir_node *n2, size_t *cou
                new_edge.n1 = n2;
                new_edge.n2 = n1;
        }
-       e = (edge_t*)set_find(edges, &new_edge, sizeof(new_edge), HASH_EDGE(&new_edge));
+       e = set_find(edge_t, edges, &new_edge, sizeof(new_edge), HASH_EDGE(&new_edge));
        if (e) {
                e->n1 = NULL;
                e->n2 = NULL;
@@ -348,7 +347,7 @@ static inline void remove_edge(set *edges, ir_node *n1, ir_node *n2, size_t *cou
        }
 }
 
-#define pset_foreach(pset, irn)  for (irn=(ir_node*)pset_first(pset); irn; irn=(ir_node*)pset_next(pset))
+#define pset_foreach(pset, irn) foreach_pset((pset), ir_node, (irn))
 
 /**
  * Search for an interference clique and an external node
@@ -357,12 +356,9 @@ static inline void remove_edge(set *edges, ir_node *n1, ir_node *n2, size_t *cou
  */
 static void build_clique_star_cstr(ilp_env_t *ienv)
 {
-       affinity_node_t *aff;
-
        /* for each node with affinity edges */
        co_gs_foreach_aff_node(ienv->co, aff) {
                struct obstack ob;
-               neighb_t *nbr;
                const ir_node *center = aff->irn;
                ir_node **nodes;
                set *edges;
@@ -401,8 +397,7 @@ static void build_clique_star_cstr(ilp_env_t *ienv)
                        bool    growed;
 
                        /* get 2 starting nodes to form a clique */
-                       for (e=(edge_t*)set_first(edges); !e->n1; e=(edge_t*)set_next(edges)) {
-                       }
+                       for (e = set_first(edge_t, edges); !e->n1; e = set_next(edge_t, edges)) {}
 
                        /* we could be stepped out of the loop before the set iterated to the end */
                        set_break(edges);
@@ -418,7 +413,6 @@ static void build_clique_star_cstr(ilp_env_t *ienv)
                                /* search for a candidate to extend the clique */
                                for (i=0; i<n_nodes; ++i) {
                                        ir_node *cand = nodes[i];
-                                       ir_node *member;
                                        bool     is_cand;
 
                                        /* if its already in the clique try the next */
@@ -451,10 +445,9 @@ static void build_clique_star_cstr(ilp_env_t *ienv)
 
                        /* now the clique is maximal. Finally add the constraint */
                        {
-                               ir_node *member;
-                               int      var_idx;
-                               int      cst_idx;
-                               char     buf[32];
+                               int  var_idx;
+                               int  cst_idx;
+                               char buf[32];
 
                                cst_idx = lpp_add_cst(ienv->lp, NULL, lpp_greater_equal, pset_count(clique)-1);
 
@@ -479,7 +472,6 @@ static void extend_path(ilp_env_t *ienv, pdeq *path, const ir_node *irn)
        int i, len;
        ir_node **curr_path;
        affinity_node_t *aff;
-       neighb_t *nbr;
 
        /* do not walk backwards or in circles */
        if (pdeq_contains(path, irn))
@@ -541,8 +533,6 @@ end:
  */
 static void build_path_cstr(ilp_env_t *ienv)
 {
-       affinity_node_t *aff_info;
-
        /* for each node with affinity edges */
        co_gs_foreach_aff_node(ienv->co, aff_info) {
                pdeq *path = new_pdeq();