summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/glsl/nir/nir.c1
-rw-r--r--src/glsl/nir/nir.h8
-rw-r--r--src/glsl/nir/nir_dominance.c9
-rw-r--r--src/glsl/nir/nir_lower_vars_to_ssa.c2
-rw-r--r--src/glsl/nir/nir_opt_gcm.c2
-rw-r--r--src/glsl/nir/nir_to_ssa.c2
6 files changed, 15 insertions, 9 deletions
diff --git a/src/glsl/nir/nir.c b/src/glsl/nir/nir.c
index 2f7cbae42be..60fdac5920d 100644
--- a/src/glsl/nir/nir.c
+++ b/src/glsl/nir/nir.c
@@ -262,7 +262,6 @@ nir_function_impl_create(nir_function_overload *overload)
nir_block *end_block = nir_block_create(mem_ctx);
start_block->cf_node.parent = &impl->cf_node;
end_block->cf_node.parent = &impl->cf_node;
- impl->start_block = start_block;
impl->end_block = end_block;
exec_list_push_tail(&impl->body, &start_block->cf_node.node);
diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h
index 222a219d0e6..52f84c4d62c 100644
--- a/src/glsl/nir/nir.h
+++ b/src/glsl/nir/nir.h
@@ -1309,7 +1309,7 @@ typedef struct {
struct exec_list body; /** < list of nir_cf_node */
- nir_block *start_block, *end_block;
+ nir_block *end_block;
/** list for all local variables in the function */
struct exec_list locals;
@@ -1336,6 +1336,12 @@ typedef struct {
nir_metadata valid_metadata;
} nir_function_impl;
+static inline nir_block *
+nir_start_block(nir_function_impl *impl)
+{
+ return (nir_block *) exec_list_get_head(&impl->body);
+}
+
static inline nir_cf_node *
nir_cf_node_next(nir_cf_node *node)
{
diff --git a/src/glsl/nir/nir_dominance.c b/src/glsl/nir/nir_dominance.c
index 2f50db1c1f6..af4caae0055 100644
--- a/src/glsl/nir/nir_dominance.c
+++ b/src/glsl/nir/nir_dominance.c
@@ -42,7 +42,7 @@ static bool
init_block_cb(nir_block *block, void *_state)
{
dom_state *state = (dom_state *) _state;
- if (block == state->impl->start_block)
+ if (block == nir_start_block(state->impl))
block->imm_dom = block;
else
block->imm_dom = NULL;
@@ -78,7 +78,7 @@ static bool
calc_dominance_cb(nir_block *block, void *_state)
{
dom_state *state = (dom_state *) _state;
- if (block == state->impl->start_block)
+ if (block == nir_start_block(state->impl))
return true;
nir_block *new_idom = NULL;
@@ -209,12 +209,13 @@ nir_calc_dominance_impl(nir_function_impl *impl)
nir_foreach_block(impl, calc_dom_frontier_cb, &state);
- impl->start_block->imm_dom = NULL;
+ nir_block *start_block = nir_start_block(impl);
+ start_block->imm_dom = NULL;
calc_dom_children(impl);
unsigned dfs_index = 0;
- calc_dfs_indicies(impl->start_block, &dfs_index);
+ calc_dfs_indicies(start_block, &dfs_index);
}
void
diff --git a/src/glsl/nir/nir_lower_vars_to_ssa.c b/src/glsl/nir/nir_lower_vars_to_ssa.c
index ccb8f99dfba..4ff21663e57 100644
--- a/src/glsl/nir/nir_lower_vars_to_ssa.c
+++ b/src/glsl/nir/nir_lower_vars_to_ssa.c
@@ -935,7 +935,7 @@ nir_lower_vars_to_ssa_impl(nir_function_impl *impl)
nir_foreach_block(impl, register_variable_uses_block, &state);
insert_phi_nodes(&state);
- rename_variables_block(impl->start_block, &state);
+ rename_variables_block(nir_start_block(impl), &state);
nir_metadata_preserve(impl, nir_metadata_block_index |
nir_metadata_dominance);
diff --git a/src/glsl/nir/nir_opt_gcm.c b/src/glsl/nir/nir_opt_gcm.c
index 44068bf37b8..5b412eebc32 100644
--- a/src/glsl/nir/nir_opt_gcm.c
+++ b/src/glsl/nir/nir_opt_gcm.c
@@ -256,7 +256,7 @@ gcm_schedule_early_instr(nir_instr *instr, struct gcm_state *state)
/* Start with the instruction at the top. As we iterate over the
* sources, it will get moved down as needed.
*/
- instr->block = state->impl->start_block;
+ instr->block = nir_start_block(state->impl);
state->instr = instr;
nir_foreach_src(instr, gcm_schedule_early_src, state);
diff --git a/src/glsl/nir/nir_to_ssa.c b/src/glsl/nir/nir_to_ssa.c
index a3c35fa0493..b089df79fcf 100644
--- a/src/glsl/nir/nir_to_ssa.c
+++ b/src/glsl/nir/nir_to_ssa.c
@@ -516,7 +516,7 @@ nir_convert_to_ssa_impl(nir_function_impl *impl)
rewrite_state state;
init_rewrite_state(impl, &state);
- rewrite_block(impl->start_block, &state);
+ rewrite_block(nir_start_block(impl), &state);
remove_unused_regs(impl, &state);