X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnodeset.c;h=f42b904f8b96870977d2793b79e8fe9690280099;hb=560ed5a4e3236d933413ad4863c123d77c807429;hp=42bc5ad6bcc34c388fc4fe59283f45c0eeceb222;hpb=eb08138c6b80c169945568e4414f491a9bc20388;p=libfirm diff --git a/ir/ir/irnodeset.c b/ir/ir/irnodeset.c index 42bc5ad6b..f42b904f8 100644 --- a/ir/ir/irnodeset.c +++ b/ir/ir/irnodeset.c @@ -21,13 +21,14 @@ * @file * @author Matthias Braun * @date 30.03.2007 - * @brief A nodeset. This should be prefered over a simple pset, because it + * @brief A nodeset. This should be preferred over a simple pset, because it tries to guarantee deterministic behavior. * @version $Id$ */ #include "config.h" #include "irnodeset.h" +#include "irnode_t.h" #include "hashptr.h" #define DO_REHASH @@ -37,15 +38,16 @@ #define ValueType ir_node* #define NullValue NULL #define DeletedValue ((ir_node*)-1) -#ifdef FIRM_debug -#define Hash(this,value) (value)->node_nr +#ifdef DEBUG_libfirm +#define Hash(this,key) ((unsigned)((key)->node_nr)) #else -#define Hash(this,value) HASH_PTR(value) +#define Hash(this,key) HASH_PTR(key) #endif #define KeysEqual(this,key1,key2) (key1) == (key2) #define SetRangeEmpty(ptr,size) memset(ptr, 0, (size) * sizeof((ptr)[0])) +#define ValueCmp(a,b) ((int) get_irn_idx(a) - (int) get_irn_idx(b)) -#define hashset_init ir_nodeset_init +#define hashset_init _ir_nodeset_init #define hashset_init_size ir_nodeset_init_size #define hashset_destroy ir_nodeset_destroy #define hashset_insert ir_nodeset_insert @@ -58,7 +60,12 @@ #include "hashset.c" -int ir_nodeset_contains(const ir_nodeset_t *this, const ir_node *node) +void ir_nodeset_init(ir_nodeset_t *nodeset) { - return _ir_nodeset_find(this, node) != NULL; + ir_nodeset_init_size(nodeset, 16); +} + +int ir_nodeset_contains(const ir_nodeset_t *nodeset, const ir_node *node) +{ + return _ir_nodeset_find(nodeset, node); }