X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgwalk_blk.c;h=fb9f61425c520a30e6bc6a00d82eeea5fdc90dfd;hb=f9d25133f86594ca2b1f33fb0b41a591ecc9b914;hp=9dec17973924549d2b7d96c8bd70ad3ed907fa1d;hpb=988da4b1dc22814722d336bac25a0e59dac34a22;p=libfirm diff --git a/ir/ir/irgwalk_blk.c b/ir/ir/irgwalk_blk.c index 9dec17973..fb9f61425 100644 --- a/ir/ir/irgwalk_blk.c +++ b/ir/ir/irgwalk_blk.c @@ -19,6 +19,7 @@ #include "pset.h" #include "irhooks.h" #include "array.h" +#include "hashptr.h" /** * Metadata for block walker @@ -50,14 +51,6 @@ static int addr_cmp(const void *elt, const void *key) { return e1->block != e2->block; } -/** - * calculates a hash value for an block address - * Addresses are typically aligned at 32bit, so we ignore the lowest bits - */ -static INLINE unsigned block_hash(const ir_node *node) { - return (unsigned)node >> 3; -} - /** * Returns the associates block_entry_t for an block */ @@ -67,7 +60,7 @@ static block_entry_t *block_find_entry(ir_node *block, blk_collect_data_t *ctx) block_entry_t *elem; key.block = block; - elem = pset_find(ctx->blk_map, &key, block_hash(block)); + elem = pset_find(ctx->blk_map, &key, HASH_PTR(block)); if (elem) return elem; @@ -79,7 +72,7 @@ static block_entry_t *block_find_entry(ir_node *block, blk_collect_data_t *ctx) elem->cf_list = NEW_ARR_F(ir_node *, 0); elem->entry_list = NEW_ARR_F(ir_node *, 0); - return pset_insert(ctx->blk_map, elem, block_hash(block)); + return pset_insert(ctx->blk_map, elem, HASH_PTR(block)); } /**