[Mesa-dev] [PATCH 7/8] nir: add new partially_unrolled bool to nir_loop

Timothy Arceri tarceri at itsqueeze.com
Mon Nov 19 06:18:32 UTC 2018


In order to stop continuously partially unrolling the same loop
we add the bool partialy_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.
---
 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 e9aec90420..93727064c2 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -1915,6 +1915,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 989c5051a5..b229094679 100644
--- a/src/compiler/nir/nir_clone.c
+++ b/src/compiler/nir/nir_clone.c
@@ -548,6 +548,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.19.1



More information about the mesa-dev mailing list