really keep mux intact if KEEP_MUX is enabled; cleanup and improve some Mux optimisat...
[libfirm] / ir / ir / irlinkednodemap.c
index d3ce492..74aa148 100644 (file)
@@ -39,25 +39,24 @@ static ir_lnk_nodemap_entry_t null_nodemap_entry;
 #define KeyType                   ir_node*
 #define ConstKeyType              const ir_node*
 #define GetKey(value)             (value).node
-#define InitData(self,value,key)  do { (value).node = (key); (value).list.next = NULL; (value).list.prev = NULL; } while(0)
-#ifdef DEBUG_libfirm
+#define InitData(self,value,key)  do { (value).node = (key); (value).list.next = NULL; (value).list.prev = NULL; } while (0)
 #define Hash(self,key)            ((unsigned)((key)->node_nr))
-#else
-#define Hash(self,key)            HASH_PTR(key)
-#endif
 #define KeysEqual(self,key1,key2) (key1) == (key2)
 #define SetRangeEmpty(ptr,size)   memset(ptr, 0, (size) * sizeof((ptr)[0]))
 #define EntrySetEmpty(value)      (value).node = NULL
-#define EntrySetDeleted(value)    do { (value).node = (ir_node*) -1; list_del(&(value).list); } while(0)
+#define EntrySetDeleted(value)    do { (value).node = (ir_node*) -1; list_del(&(value).list); } while (0)
 #define EntryIsEmpty(value)       ((value).node == NULL)
 #define EntryIsDeleted(value)     ((value).node == (ir_node*)-1)
 
 #define hashset_init            ir_lnk_nodemap_init
 #define hashset_init_size       ir_lnk_nodemap_init_size
 #define hashset_destroy         ir_lnk_nodemap_destroy
-#define hashset_insert          _ir_lnk_nodemap_insert
+ir_lnk_nodemap_entry_t *ir_lnk_nodemap_insert_(ir_lnk_nodemap_t *self, ir_node *node);
+#define hashset_insert          ir_lnk_nodemap_insert_
 #define hashset_remove          ir_lnk_nodemap_remove
-#define hashset_find            _ir_lnk_nodemap_find
+ir_lnk_nodemap_entry_t *ir_lnk_nodemap_find_(const ir_lnk_nodemap_t *self,
+                                             const ir_node *node);
+#define hashset_find            ir_lnk_nodemap_find_
 #define hashset_size            ir_lnk_nodemap_size
 
 #define ADDITIONAL_INIT         INIT_LIST_HEAD(&self->elem_list); INIT_LIST_HEAD(&self->all_iters);
@@ -72,10 +71,8 @@ static ir_lnk_nodemap_entry_t null_nodemap_entry;
  * Resize the hashset
  * @internal
  */
-static INLINE
-void resize(HashSet *self, size_t new_size)
+static void resize(HashSet *self, size_t new_size)
 {
-       size_t num_buckets = self->num_buckets;
        HashSetEntry *old_entries = self->entries;
        HashSetEntry *new_entries;
        list_head    list = self->elem_list;
@@ -115,7 +112,7 @@ void resize(HashSet *self, size_t new_size)
 
 int ir_lnk_nodemap_put(ir_lnk_nodemap_t *nodemap, ir_node *node, void *data)
 {
-       ir_lnk_nodemap_entry_t *entry = _ir_lnk_nodemap_insert(nodemap, node);
+       ir_lnk_nodemap_entry_t *entry = ir_lnk_nodemap_insert_(nodemap, node);
 
        entry->data = data;
        if (entry->list.next == NULL) {
@@ -128,7 +125,7 @@ int ir_lnk_nodemap_put(ir_lnk_nodemap_t *nodemap, ir_node *node, void *data)
 
 void *ir_lnk_nodemap_get(const ir_lnk_nodemap_t *nodemap, const ir_node *node)
 {
-       ir_lnk_nodemap_entry_t *entry = _ir_lnk_nodemap_find(nodemap, node);
+       ir_lnk_nodemap_entry_t *entry = ir_lnk_nodemap_find_(nodemap, node);
        return entry->data;
 }
 
@@ -140,7 +137,8 @@ void *ir_lnk_nodemap_get(const ir_lnk_nodemap_t *nodemap, const ir_node *node)
  * @param nodemap       Pointer to the nodemap
  */
 void ir_lnk_nodemap_iterator_init(ir_lnk_nodemap_iterator_t *iterator,
-                                  const ir_lnk_nodemap_t *nodemap) {
+                                  const ir_lnk_nodemap_t *nodemap)
+{
        iterator->iter    = nodemap->elem_list.next;
        iterator->nodemap = nodemap;
 }
@@ -154,7 +152,8 @@ void ir_lnk_nodemap_iterator_init(ir_lnk_nodemap_iterator_t *iterator,
  * @param iterator  Pointer to the nodemap iterator.
  * @returns         Next element in the nodemap or NULL
  */
-ir_node *ir_lnk_nodemap_iterator_next(ir_lnk_nodemap_iterator_t *iterator) {
+ir_node *ir_lnk_nodemap_iterator_next(ir_lnk_nodemap_iterator_t *iterator)
+{
        ir_node *res;
        if (iterator->iter == &iterator->nodemap->elem_list)
                return NULL;
@@ -172,10 +171,9 @@ ir_node *ir_lnk_nodemap_iterator_next(ir_lnk_nodemap_iterator_t *iterator) {
  * @param iterator  Pointer to the nodemap iterator.
  */
 void ir_lnk_nodemap_remove_iterator(ir_lnk_nodemap_t *nodemap,
-                                    ir_lnk_nodemap_iterator_t *iterator) {
-       ir_lnk_nodemap_entry_t *rem = list_entry(iterator->iter, ir_lnk_nodemap_entry_t, list);
-
-       iterator->iter = rem->list.prev;
+                                    ir_lnk_nodemap_iterator_t *iterator)
+{
+       ir_lnk_nodemap_entry_t *rem = list_entry(iterator->iter->prev, ir_lnk_nodemap_entry_t, list);
 
        ir_lnk_nodemap_remove(nodemap, rem->node);
 }