be_lower_for_target is now a simple function in the public API
[libfirm] / ir / be / beloopana.c
index 0b90c56..8c05a5d 100644 (file)
@@ -44,21 +44,21 @@ DEBUG_ONLY(static firm_dbg_module_t *dbg = NULL);
 
 #define HASH_LOOP_INFO(info) (HASH_PTR((info)->loop) ^ HASH_PTR((info)->cls))
 
-typedef struct _be_loop_info_t {
+typedef struct be_loop_info_t {
        ir_loop                     *loop;
        const arch_register_class_t *cls;
        unsigned                    max_pressure;
 } be_loop_info_t;
 
-struct _be_loopana_t {
+struct be_loopana_t {
        set      *data;
        ir_graph *irg;
 };
 
 static int cmp_loop_info(const void *a, const void *b, size_t size)
 {
-       const be_loop_info_t *i1 = a;
-       const be_loop_info_t *i2 = b;
+       const be_loop_info_t *i1 = (const be_loop_info_t*)a;
+       const be_loop_info_t *i2 = (const be_loop_info_t*)b;
        (void) size;
 
        return ! (i1->loop == i2->loop && i1->cls == i2->cls);
@@ -142,7 +142,7 @@ static unsigned be_compute_loop_pressure(be_loopana_t *loop_ana, ir_loop *loop,
        key.loop            = loop;
        key.cls             = cls;
        key.max_pressure    = 0;
-       entry               = set_insert(loop_ana->data, &key, sizeof(key), HASH_LOOP_INFO(&key));
+       entry               = (be_loop_info_t*)set_insert(loop_ana->data, &key, sizeof(key), HASH_LOOP_INFO(&key));
        entry->max_pressure = MAX(entry->max_pressure, pressure);
 
        return pressure;
@@ -200,8 +200,8 @@ be_loopana_t *be_new_loop_pressure(ir_graph *irg,
        if (cls != NULL) {
                be_compute_loop_pressure(loop_ana, irg_loop, cls);
        } else {
-               for (i = arch_env_get_n_reg_class(arch_env) - 1; i >= 0; --i) {
-                       const arch_register_class_t *cls = arch_env_get_reg_class(arch_env, i);
+               for (i = arch_env->n_register_classes - 1; i >= 0; --i) {
+                       const arch_register_class_t *cls = &arch_env->register_classes[i];
                        DBG((dbg, LEVEL_1, "\n=====================================================\n", cls->name));
                        DBG((dbg, LEVEL_1, " Computing register pressure for class %s:\n", cls->name));
                        DBG((dbg, LEVEL_1, "=====================================================\n", cls->name));
@@ -225,7 +225,7 @@ unsigned be_get_loop_pressure(be_loopana_t *loop_ana, const arch_register_class_
 
        key.loop = loop;
        key.cls  = cls;
-       entry    = set_find(loop_ana->data, &key, sizeof(key), HASH_LOOP_INFO(&key));
+       entry    = (be_loop_info_t*)set_find(loop_ana->data, &key, sizeof(key), HASH_LOOP_INFO(&key));
 
        if (entry)
                pressure = entry->max_pressure;