}
/**
- * Two Sel addresses have the same base address, check if there offsets are
+ * Two Sel addresses have the same base address, check if their offsets are
* different.
*
* @param adr1 The first address.
ir_alias_relation result; /**< The alias relation result. */
} mem_disambig_entry;
-#define HASH_ENTRY(adr1, adr2) (HASH_PTR(adr1) ^ HASH_PTR(adr2))
+#define HASH_ENTRY(adr1, adr2) (hash_ptr(adr1) ^ hash_ptr(adr2))
/**
* Compare two relation cache entries.
*/
static ir_type *clone_type_and_cache(ir_type *tp)
{
- ir_type *res;
- pmap_entry *e = pmap_find(mtp_map, tp);
+ ir_type *res = (ir_type*)pmap_get(mtp_map, tp);
- if (e != NULL)
- return (ir_type*) e->value;
-
- res = clone_type_method(tp);
- pmap_insert(mtp_map, tp, res);
+ if (res == NULL) {
+ res = clone_type_method(tp);
+ pmap_insert(mtp_map, tp, res);
+ }
return res;
}