diff options
author | Christoph Bumiller <e0425955@student.tuwien.ac.at> | 2011-02-19 14:18:28 +0100 |
---|---|---|
committer | Christoph Bumiller <e0425955@student.tuwien.ac.at> | 2011-02-24 17:35:35 +0100 |
commit | 88066d62ae7ec9c715e195f8ff65a0dc5b64c25e (patch) | |
tree | 404437a4d831474f6b70e927269525c8b82cc2d5 | |
parent | 3d190e44dec40650d88256cb074a12ca74d7c31e (diff) |
nvc0: don't visit target blocks of a loop break multiple times
-rw-r--r-- | src/gallium/drivers/nvc0/nvc0_pc.c | 5 |
1 files changed, 4 insertions, 1 deletions
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); |