X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeschedrand.c;h=394b7713f208edb72f4dd8d15ef8c1106d9208b3;hb=fef8dc3eff6468d7d65485af8e1ac9884c504e1a;hp=064b1247f954fca4dc50aa978587c8ac02a6b796;hpb=f8cc15664f571aa7ef89d6f6bc8d5bd2b8ca7d53;p=libfirm diff --git a/ir/be/beschedrand.c b/ir/be/beschedrand.c index 064b1247f..394b7713f 100644 --- a/ir/be/beschedrand.c +++ b/ir/be/beschedrand.c @@ -37,40 +37,37 @@ */ 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)