From c8c4471a92408f48c47d0bcdbe87c9acfcca3376 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Thu, 15 Aug 2019 08:48:34 -0700 Subject: pan/midgard: Add mir_foreach_successor helper Now we should be able to walk the control-flow graph naturally. Signed-off-by: Alyssa Rosenzweig --- src/panfrost/midgard/compiler.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/panfrost/midgard/compiler.h b/src/panfrost/midgard/compiler.h index f196389c36a..a78d933e9e4 100644 --- a/src/panfrost/midgard/compiler.h +++ b/src/panfrost/midgard/compiler.h @@ -360,6 +360,14 @@ mir_next_op(struct midgard_instruction *ins) mir_foreach_block(ctx, v_block) \ mir_foreach_instr_in_block_safe(v_block, v) +#define mir_foreach_successor(blk, v) \ + struct midgard_block *v; \ + struct midgard_block **_v; \ + for (_v = &blk->successors[0], \ + v = *_v; \ + v != NULL && _v < &blk->successors[2]; \ + _v++, v = *_v) \ + /* Based on set_foreach, expanded with automatic type casts */ #define mir_foreach_predecessor(blk, v) \ -- cgit v1.2.3