From fba5d275db178232ce52160d84757bd2fb1bd9b8 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Mon, 19 Nov 2018 17:01:52 +1100 Subject: [PATCH] nir: add new partially_unrolled bool to nir_loop In order to stop continuously partially unrolling the same loop we add the bool partially_unrolled to nir_loop, we add it here rather than in nir_loop_info because nir_loop_info is only set via loop analysis and is intended to be cleared before each analysis. Also nir_loop_info is never cloned. Reviewed-by: Ian Romanick --- src/compiler/nir/nir.h | 1 + src/compiler/nir/nir_clone.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 39b4c2aaf3e..aac9ac448b8 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -1949,6 +1949,7 @@ typedef struct { struct exec_list body; /** < list of nir_cf_node */ nir_loop_info *info; + bool partially_unrolled; } nir_loop; /** diff --git a/src/compiler/nir/nir_clone.c b/src/compiler/nir/nir_clone.c index b10068928a7..fa24f8b6028 100644 --- a/src/compiler/nir/nir_clone.c +++ b/src/compiler/nir/nir_clone.c @@ -551,6 +551,7 @@ static nir_loop * clone_loop(clone_state *state, struct exec_list *cf_list, const nir_loop *loop) { nir_loop *nloop = nir_loop_create(state->ns); + nloop->partially_unrolled = loop->partially_unrolled; nir_cf_node_insert_end(cf_list, &nloop->cf_node); -- 2.11.0