add some localopts for shifting over the mode size
[libfirm] / ir / ir / irprog.c
index 8f252a9..daeb232 100644 (file)
@@ -85,9 +85,10 @@ static ir_prog *complete_ir_prog(ir_prog *irp, const char *module_name)
 #define IDENT(x)  new_id_from_chars(x, sizeof(x) - 1)
 
        irp->name = new_id_from_str(module_name);
-       irp->segment_types[IR_SEGMENT_GLOBAL] = new_type_class(IDENT("GlobalType"));
+       irp->segment_types[IR_SEGMENT_GLOBAL]
+               = new_type_class(IDENT("GlobalType"));
        irp->segment_types[IR_SEGMENT_THREAD_LOCAL]
-               = new_type_class(IDENT("ThreadLocal"));
+               = new_type_struct(IDENT("ThreadLocal"));
        irp->segment_types[IR_SEGMENT_CONSTRUCTORS]
                = new_type_class(IDENT("Constructors"));
        irp->segment_types[IR_SEGMENT_DESTRUCTORS]
@@ -246,7 +247,7 @@ ir_graph *(get_irp_irg)(size_t pos)
        return _get_irp_irg(pos);
 }
 
-int get_irp_last_idx(void)
+size_t get_irp_last_idx(void)
 {
        return irp->max_irg_idx;
 }
@@ -361,9 +362,9 @@ ir_op *(get_irp_opcode)(size_t pos)
 /* Sets the generic function pointer of all opcodes to NULL */
 void clear_irp_opcodes_generic_func(void)
 {
-       int i;
+       size_t i, n;
 
-       for (i = get_irp_n_opcodes() - 1; i >= 0; --i) {
+       for (i = 0, n = get_irp_n_opcodes(); i < n; ++i) {
                ir_op *op = get_irp_opcode(i);
                op->ops.generic = (op_func)NULL;
        }
@@ -415,12 +416,12 @@ static int set_irp_phase_state_wrapper(ir_prog *irp, void *context)
 {
        pass_t         *pass  = (pass_t *)context;
        irg_phase_state state = pass->state;
-       int             i;
+       size_t          i, n;
 
        (void)irp;
 
        /* set the phase of all graphs */
-       for (i = get_irp_n_irgs() - 1; i >= 0; --i)
+       for (i = 0, n = get_irp_n_irgs(); i < n; ++i)
                set_irg_phase_state(get_irp_irg(i), state);
 
        /* set the irp phase */