From 88066d62ae7ec9c715e195f8ff65a0dc5b64c25e Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Sat, 19 Feb 2011 14:18:28 +0100 Subject: nvc0: don't visit target blocks of a loop break multiple times --- src/gallium/drivers/nvc0/nvc0_pc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/gallium/drivers/nvc0') diff --git a/src/gallium/drivers/nvc0/nvc0_pc.c b/src/gallium/drivers/nvc0/nvc0_pc.c index e0cba05b97..3a3a00f27b 100644 --- a/src/gallium/drivers/nvc0/nvc0_pc.c +++ b/src/gallium/drivers/nvc0/nvc0_pc.c @@ -189,7 +189,10 @@ nvc0_pc_pass_in_order(struct nv_basic_block *root, nv_pc_pass_func f, bb[p++] = b->out[j]; break; case CFG_EDGE_LOOP_LEAVE: - bbb[pp++] = b->out[j]; + if (!b->out[j]->priv) { + bbb[pp++] = b->out[j]; + b->out[j]->priv = 1; + } break; default: assert(0); -- cgit v1.2.3