summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-08-31 16:54:02 -0700
committerJason Ekstrand <[email protected]>2015-08-31 17:05:23 -0700
commitce70cae7562c7651a7fb907b4bd2f6924a00b40c (patch)
treef5b957a8daed13aa20cfed42580019e199cd7996
parent24b0c532319b9318e6e5794978c7e1c05e81d76e (diff)
nir/builder: Use nir_after_instr to advance the cursor
This *should* ensure that the cursor gets properly advanced in all cases. We had a problem before where, if the cursor was created using nir_after_cf_node on a non-block cf_node, that would call nir_before_block on the block following the cf node. Instructions would then get inserted in backwards order at the top of the block which is not at all what you would expect from nir_after_cf_node. By just resetting to after_instr, we avoid all these problems.
-rw-r--r--src/glsl/nir/nir_builder.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/glsl/nir/nir_builder.h b/src/glsl/nir/nir_builder.h
index 3aa0efded3c..295a209b4e6 100644
--- a/src/glsl/nir/nir_builder.h
+++ b/src/glsl/nir/nir_builder.h
@@ -49,8 +49,7 @@ nir_builder_instr_insert(nir_builder *build, nir_instr *instr)
nir_instr_insert(build->cursor, instr);
/* Move the cursor forward. */
- if (build->cursor.option == nir_cursor_after_instr)
- build->cursor.instr = instr;
+ build->cursor = nir_after_instr(instr);
}
static inline void