Revert r28379.
[libfirm] / ir / opt / scalar_replace.c
index ad3c731..99c0a70 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -66,7 +66,7 @@ typedef union {
  */
 typedef struct path_t {
        unsigned    vnum;      /**< The value number. */
-       unsigned    path_len;  /**< The length of the access path. */
+       size_t      path_len;  /**< The length of the access path. */
        path_elem_t path[1];   /**< The path. */
 } path_t;
 
@@ -436,9 +436,10 @@ static int find_possible_replacements(ir_graph *irg)
  * @param sel  the Sel node
  * @param len  the length of the path so far
  */
-static path_t *find_path(ir_node *sel, unsigned len)
+static path_t *find_path(ir_node *sel, size_t len)
 {
-       int pos, i, n;
+       size_t pos;
+       int i, n;
        path_t *res;
        ir_node *pred = get_Sel_ptr(sel);
 
@@ -453,6 +454,7 @@ static path_t *find_path(ir_node *sel, unsigned len)
        } else
                res = find_path(pred, len);
 
+       assert(len <= res->path_len);
        pos = res->path_len - len;
 
        res->path[pos++].ent = get_Sel_entity(sel);
@@ -506,7 +508,7 @@ static unsigned allocate_value_numbers(pset *sels, ir_entity *ent, unsigned vnum
                        SET_VNUM(sel, key->vnum);
                        DB((dbg, SET_LEVEL_3, "  %+F represents value %u\n", sel, key->vnum));
 
-                       ARR_EXTO(ir_mode *, *modes, (int)((key->vnum + 15) & ~15));
+                       ARR_EXTO(ir_mode *, *modes, (key->vnum + 15) & ~15);
 
                        (*modes)[key->vnum] = get_type_mode(get_entity_type(get_Sel_entity(sel)));