I was annoyed by the compiler warnings about implicit conversions.
[libfirm] / ir / be / beifg.c
index 020ff15..aa41dd3 100644 (file)
@@ -24,9 +24,7 @@
  * @date        18.11.2005
  * @version     $Id$
  */
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <stdlib.h>
 
@@ -48,7 +46,7 @@
 
 #include "becopystat.h"
 #include "becopyopt.h"
-#include "beirg_t.h"
+#include "beirg.h"
 #include "bemodule.h"
 
 /** Defines values for the ifg performance test */
@@ -393,7 +391,7 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env)
        copy_opt_t *co;
        be_ifg_t *old_if = chordal_env->ifg;
 
-       ir_timer_t *timer = ir_timer_register("getTime","get Time of copy minimization using the ifg");
+       ir_timer_t *timer = ir_timer_new();
        unsigned long elapsed_usec = 0;
 
        if (get_irg_estimated_node_cnt(chordal_env->irg) >= BE_CH_PERFORMANCETEST_MIN_NODES)
@@ -587,6 +585,8 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env)
        }
 
        chordal_env->ifg = old_if;
+
+       ir_timer_free(timer);
 }
 
 void be_ifg_dump_dot(be_ifg_t *ifg, ir_graph *irg, FILE *file, const be_ifg_dump_dot_cb_t *cb, void *self)
@@ -644,10 +644,14 @@ static void int_comp_rec(be_ifg_t *ifg, ir_node *n, bitset_t *seen)
        ir_node *m;
 
        be_ifg_foreach_neighbour(ifg, neigh_it, n, m) {
-               if (!bitset_contains_irn(seen, m) && !arch_irn_is(m, ignore)) {
-                       bitset_add_irn(seen, m);
-                       int_comp_rec(ifg, m, seen);
-               }
+               if (bitset_contains_irn(seen, m))
+                       continue;
+
+               if (arch_get_register_req_out(m)->type & arch_register_req_type_ignore)
+                       continue;
+
+               bitset_add_irn(seen, m);
+               int_comp_rec(ifg, m, seen);
        }
 
 }
@@ -661,11 +665,15 @@ static int int_component_stat(be_irg_t *birg, be_ifg_t *ifg)
        ir_node *n;
 
        be_ifg_foreach_node(ifg, nodes_it, n) {
-               if (!bitset_contains_irn(seen, n) && !arch_irn_is(n, ignore)) {
-                       ++n_comp;
-                       bitset_add_irn(seen, n);
-                       int_comp_rec(ifg, n, seen);
-               }
+               if (bitset_contains_irn(seen, n))
+                       continue;
+
+               if (arch_get_register_req_out(n)->type & arch_register_req_type_ignore)
+                       continue;
+
+               ++n_comp;
+               bitset_add_irn(seen, n);
+               int_comp_rec(ifg, n, seen);
        }
 
        free(seen);