3 * @author Matthias Braun
5 * @brief A nodeset. This should be prefered over a simple pset, because it
6 tries to guarantee deterministic behavior.
11 #include "irnodeset.h"
16 #define HashSet ir_nodeset_t
17 #define HashSetIterator ir_nodeset_iterator_t
18 #define ValueType ir_node*
19 #define NullValue NULL
20 #define DeletedValue ((ir_node*)-1)
22 #define Hash(this,value) (value)->node_nr
24 #define Hash(this,value) HASH_PTR(value)
26 #define KeysEqual(this,key1,key2) (key1) == (key2)
27 #define SetRangeEmpty(ptr,size) memset(ptr, 0, (size) * sizeof((ptr)[0]))
29 #define hashset_init ir_nodeset_init
30 #define hashset_init_size ir_nodeset_init_size
31 #define hashset_destroy ir_nodeset_destroy
32 #define hashset_insert ir_nodeset_insert
33 #define hashset_remove ir_nodeset_remove
34 #define hashset_find _ir_nodeset_find
35 #define hashset_size ir_nodeset_size
36 #define hashset_iterator_init ir_nodeset_iterator_init
37 #define hashset_iterator_next ir_nodeset_iterator_next
38 #define hashset_remove_iterator ir_nodeset_remove_iterator
42 int ir_nodeset_contains(const ir_nodeset_t *this, const ir_node *node)
44 return _ir_nodeset_find(this, node) != NULL;