bescripts: Copy all common node attributes into the constructor variants.
[libfirm] / ir / be / beschedrand.c
index 8826826..394b771 100644 (file)
@@ -22,7 +22,6 @@
  * @brief       Random node selector.
  * @author      Matthias Braun
  * @date        29.08.2006
- * @version     $Id$
  */
 #include "config.h"
 
  */
 static ir_node *random_select(void *block_env, ir_nodeset_t *ready_set)
 {
-       ir_nodeset_iterator_t iter;
-       ir_node          *irn      = NULL;
        int only_branches_left = 1;
        (void)block_env;
 
        /* assure that branches and constants are executed last */
-       ir_nodeset_iterator_init(&iter, ready_set);
-       while ( (irn = ir_nodeset_iterator_next(&iter)) != NULL) {
+       foreach_ir_nodeset(ready_set, irn, iter) {
                if (!is_cfop(irn)) {
                        only_branches_left = 0;
                        break;
                }
        }
 
+       ir_node *rand_node = NULL;
        if (only_branches_left) {
                /* at last: schedule branches */
-               ir_nodeset_iterator_init(&iter, ready_set);
-               irn = ir_nodeset_iterator_next(&iter);
+               rand_node = ir_nodeset_first(ready_set);
        } else {
                do {
                        /* take 1 random node */
                        int n = rand() % ir_nodeset_size(ready_set);
                        int i = 0;
-                       ir_nodeset_iterator_init(&iter, ready_set);
-                       while ((irn = ir_nodeset_iterator_next(&iter)) != NULL) {
+                       foreach_ir_nodeset(ready_set, irn, iter) {
+                               rand_node = irn;
                                if (i == n) {
                                        break;
                                }
                                ++i;
                        }
-               } while (is_cfop(irn));
+               } while (is_cfop(rand_node));
        }
 
-       return irn;
+       return rand_node;
 }
 
 static void *random_init_graph(ir_graph *irg)