From e9237e148a4cd289c02e4800f094cd64445fd2fd Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Fri, 13 Jul 2012 08:51:18 +0200 Subject: [PATCH] Add ir_nodeset_first() to return the "first" node in an ir_nodeset. --- ir/be/beschednormal.c | 5 +---- ir/be/beschedrand.c | 3 +-- ir/be/beschedregpress.c | 4 +--- ir/be/beschedtrace.c | 5 +---- ir/be/beschedtrivial.c | 5 +---- ir/ir/irnodeset.h | 7 +++++++ ir/opt/parallelize_mem.c | 3 +-- 7 files changed, 13 insertions(+), 19 deletions(-) diff --git a/ir/be/beschednormal.c b/ir/be/beschednormal.c index 7ca3f19e0..cff3a87ca 100644 --- a/ir/be/beschednormal.c +++ b/ir/be/beschednormal.c @@ -59,7 +59,6 @@ static ir_node *normal_select(void *block_env, ir_nodeset_t *ready_set) ir_node* irn; ir_node* next; ir_node* last = NULL; - ir_nodeset_iterator_t iter; for (irn = inst->curr_list; irn != NULL; last = irn, irn = next) { next = (ir_node*)get_irn_link(irn); @@ -75,9 +74,7 @@ static ir_node *normal_select(void *block_env, ir_nodeset_t *ready_set) } } - ir_nodeset_iterator_init(&iter, ready_set); - irn = ir_nodeset_iterator_next(&iter); - return irn; + return ir_nodeset_first(ready_set); } diff --git a/ir/be/beschedrand.c b/ir/be/beschedrand.c index d675e01c1..d7d5300d4 100644 --- a/ir/be/beschedrand.c +++ b/ir/be/beschedrand.c @@ -52,8 +52,7 @@ static ir_node *random_select(void *block_env, ir_nodeset_t *ready_set) if (only_branches_left) { /* at last: schedule branches */ - ir_nodeset_iterator_init(&iter, ready_set); - irn = ir_nodeset_iterator_next(&iter); + irn = ir_nodeset_first(ready_set); } else { do { /* take 1 random node */ diff --git a/ir/be/beschedregpress.c b/ir/be/beschedregpress.c index c2f06b40a..0c8afed1c 100644 --- a/ir/be/beschedregpress.c +++ b/ir/be/beschedregpress.c @@ -286,9 +286,7 @@ static ir_node *reg_pressure_select(void *block_env, ir_nodeset_t *ready_set) */ if (!res) { - ir_nodeset_iterator_init(&iter, ready_set); - res = ir_nodeset_iterator_next(&iter); - + res = ir_nodeset_first(ready_set); assert(res && "There must be a node scheduled."); } diff --git a/ir/be/beschedtrace.c b/ir/be/beschedtrace.c index 0308ebf9c..7a0781ffa 100644 --- a/ir/be/beschedtrace.c +++ b/ir/be/beschedtrace.c @@ -61,10 +61,7 @@ typedef struct trace_env { */ static ir_node *get_nodeset_node(const ir_nodeset_t *nodeset) { - ir_nodeset_iterator_t iter; - - ir_nodeset_iterator_init(&iter, nodeset); - return ir_nodeset_iterator_next(&iter); + return ir_nodeset_first(nodeset); } /** diff --git a/ir/be/beschedtrivial.c b/ir/be/beschedtrivial.c index 6f6b59628..6dde79d1a 100644 --- a/ir/be/beschedtrivial.c +++ b/ir/be/beschedtrivial.c @@ -55,10 +55,7 @@ static ir_node *trivial_select(void *block_env, ir_nodeset_t *ready_set) } /* at last: schedule branches */ - ir_nodeset_iterator_init(&iter, ready_set); - irn = ir_nodeset_iterator_next(&iter); - - return irn; + return ir_nodeset_first(ready_set); } static void *trivial_init_graph(ir_graph *irg) diff --git a/ir/ir/irnodeset.h b/ir/ir/irnodeset.h index b97b042cd..71c156d84 100644 --- a/ir/ir/irnodeset.h +++ b/ir/ir/irnodeset.h @@ -157,6 +157,13 @@ ir_node *ir_nodeset_iterator_next(ir_nodeset_iterator_t *iterator); void ir_nodeset_remove_iterator(ir_nodeset_t *nodeset, const ir_nodeset_iterator_t *iterator); +static inline ir_node *ir_nodeset_first(ir_nodeset_t const *const nodeset) +{ + ir_nodeset_iterator_t iter; + ir_nodeset_iterator_init(&iter, nodeset); + return ir_nodeset_iterator_next(&iter); +} + #define foreach_ir_nodeset(nodeset, irn, iter) \ for(ir_nodeset_iterator_init(&iter, nodeset), \ irn = ir_nodeset_iterator_next(&iter); \ diff --git a/ir/opt/parallelize_mem.c b/ir/opt/parallelize_mem.c index 14ac949a1..ee4a76951 100644 --- a/ir/opt/parallelize_mem.c +++ b/ir/opt/parallelize_mem.c @@ -210,8 +210,7 @@ static void walker(ir_node *proj, void *env) n = ir_nodeset_size(&pi.this_mem); if (n == 1) { - ir_nodeset_iterator_init(&iter, &pi.this_mem); - sync = ir_nodeset_iterator_next(&iter); + sync = ir_nodeset_first(&pi.this_mem); } else { in = XMALLOCN(ir_node*, n); i = 0; -- 2.20.1