+#include "iredgeset.h"
+#include "hashptr.h"
+
+#define DO_REHASH
+#define SCALAR_RETURN
+#define HashSet ir_edgeset_t
+#define HashSetIterator ir_edgeset_iterator_t
+#define ValueType ir_edge_t*
+#define NullValue NULL
+#define DeletedValue ((ir_edge_t*)-1)
+#define Hash(this,key) (HASH_PTR(key->src) ^ (key->pos * 40013))
+#define KeysEqual(this,key1,key2) ((key1->src) == (key2->src) && (key1->pos == key2->pos))
+#define SetRangeEmpty(ptr,size) memset(ptr, 0, (size) * sizeof((ptr)[0]))
+
+#define hashset_init ir_edgeset_init
+#define hashset_init_size ir_edgeset_init_size
+#define hashset_destroy ir_edgeset_destroy
+#define hashset_insert ir_edgeset_insert
+#define hashset_remove ir_edgeset_remove
+#define hashset_find ir_edgeset_find
+#define hashset_size ir_edgeset_size
+#define hashset_iterator_init ir_edgeset_iterator_init
+#define hashset_iterator_next ir_edgeset_iterator_next
+#define hashset_remove_iterator ir_edgeset_remove_iterator
+
+#include "hashset.c"
+