remove stray declaration
[libfirm] / ir / ana / irmemory.c
index e400a2e..52afe1b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2010 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -133,7 +133,7 @@ static ir_alias_relation check_const(const ir_node *cns, int size)
        if (size == 0)
                return tarval_is_null(tv) ? ir_may_alias : ir_no_alias;
        tv_size = new_tarval_from_long(size, get_tarval_mode(tv));
-       return tarval_cmp(tv_size, tv) & (pn_Cmp_Eq|pn_Cmp_Lt) ? ir_no_alias : ir_may_alias;
+       return tarval_cmp(tv_size, tv) & (ir_relation_less_equal) ? ir_no_alias : ir_may_alias;
 }  /* check_const */
 
 /**
@@ -201,7 +201,7 @@ static ir_alias_relation different_index(const ir_node *idx1, const ir_node *idx
                                } else {
                                        tv_size = new_tarval_from_long(size, m2);
 
-                                       if (tarval_cmp(tv2, tv_size) & (pn_Cmp_Eq|pn_Cmp_Gt)) {
+                                       if (tarval_cmp(tv2, tv_size) & (ir_relation_greater_equal)) {
                                                /* tv1 is negative and tv2 >= tv_size, so the difference is bigger than size */
                                                return ir_no_alias;
                                        }
@@ -215,11 +215,11 @@ static ir_alias_relation different_index(const ir_node *idx1, const ir_node *idx
                                        tv1 = tarval_convert_to(tv1, m2);
 
                                        /* now we can compare without overflow */
-                                       return tarval_cmp(tv1, tv2) & (pn_Cmp_Eq|pn_Cmp_Gt) ? ir_no_alias : ir_may_alias;
+                                       return tarval_cmp(tv1, tv2) & (ir_relation_greater_equal) ? ir_no_alias : ir_may_alias;
                                }
                        }
                }
-               if (tarval_cmp(tv1, tv2) == pn_Cmp_Gt) {
+               if (tarval_cmp(tv1, tv2) == ir_relation_greater) {
                        ir_tarval *t = tv1;
                        tv1 = tv2;
                        tv2 = t;
@@ -227,7 +227,7 @@ static ir_alias_relation different_index(const ir_node *idx1, const ir_node *idx
                /* tv1 is now the "smaller" one */
                tv      = tarval_sub(tv2, tv1, NULL);
                tv_size = new_tarval_from_long(size, get_tarval_mode(tv));
-               return tarval_cmp(tv_size, tv) & (pn_Cmp_Eq|pn_Cmp_Lt) ? ir_no_alias : ir_may_alias;
+               return tarval_cmp(tv_size, tv) & (ir_relation_less_equal) ? ir_no_alias : ir_may_alias;
        }
 
        /* Note: we rely here on the fact that normalization puts constants on the RIGHT side */
@@ -437,17 +437,14 @@ ir_storage_class_class_t classify_pointer(const ir_node *irn,
        ir_storage_class_class_t res = ir_sc_pointer;
        if (is_Global(irn)) {
                ir_entity *entity = get_Global_entity(irn);
-               res = ir_sc_globalvar;
+               ir_type   *owner  = get_entity_owner(entity);
+               res = owner == get_tls_type() ? ir_sc_tls : ir_sc_globalvar;
                if (! (get_entity_usage(entity) & ir_usage_address_taken))
                        res |= ir_sc_modifier_nottaken;
        } else if (irn == get_irg_frame(irg)) {
                res = ir_sc_localvar;
                if (ent != NULL && !(get_entity_usage(ent) & ir_usage_address_taken))
                        res |= ir_sc_modifier_nottaken;
-       } else if (irn == get_irg_tls(irg)) {
-               res = ir_sc_tls;
-               if (ent != NULL && !(get_entity_usage(ent) & ir_usage_address_taken))
-                       res |= ir_sc_modifier_nottaken;
        } else if (is_Proj(irn) && is_malloc_Result(irn)) {
                return ir_sc_malloced;
        } else if (is_Const(irn)) {
@@ -567,7 +564,7 @@ static ir_alias_relation _get_alias_relation(
        /*
         * Bitfields can be constructed as Sels from its base address.
         * As they have different entities, the disambiguator would find that they are
-        * alias free. While this is true for it's values, it is false for the addresses
+        * alias free. While this is true for its values, it is false for the addresses
         * (strictly speaking, the Sel's are NOT the addresses of the bitfields).
         * So, skip those bitfield selecting Sel's.
         */
@@ -1082,8 +1079,8 @@ static void init_entity_usage(ir_type *tp)
  */
 static void check_initializer_nodes(ir_initializer_t *initializer)
 {
-       unsigned i;
-       ir_node  *n;
+       size_t  i;
+       ir_node *n;
 
        switch (initializer->kind) {
        case IR_INITIALIZER_CONST:
@@ -1189,18 +1186,15 @@ static void print_entity_usage_flags(const ir_type *tp)
 /**
  * Post-walker: check for global entity address
  */
-static void check_global_address(ir_node *irn, void *env)
+static void check_global_address(ir_node *irn, void *data)
 {
-       ir_node *tls = (ir_node*) env;
        ir_entity *ent;
        unsigned flags;
+       (void) data;
 
        if (is_Global(irn)) {
                /* A global. */
                ent = get_Global_entity(irn);
-       } else if (is_Sel(irn) && get_Sel_ptr(irn) == tls) {
-               /* A TLS variable. */
-               ent = get_Sel_entity(irn);
        } else
                return;
 
@@ -1231,7 +1225,7 @@ static void analyse_irp_globals_entity_usage(void)
                ir_graph *irg = get_irp_irg(i);
 
                assure_irg_outs(irg);
-               irg_walk_graph(irg, NULL, check_global_address, get_irg_tls(irg));
+               irg_walk_graph(irg, NULL, check_global_address, NULL);
        }
 
 #ifdef DEBUG_libfirm