summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2018-10-29 12:08:29 -0500
committerJason Ekstrand <[email protected]>2018-10-30 20:14:52 -0500
commitd3a0d8b750a6db5bc535f5f0b9c2c83849fee5bb (patch)
tree9be0fe6c1a96a85b53e3b69782fd7c0dc07f8d3f
parent31596836fc22e1f5b4cf85abc012acd27366db87 (diff)
intel/compiler: Stop assuming the entrypoint is called "main"
This isn't true for Vulkan so we have to whack it to "main" in anv which is silly. Instead of walking the list of functions and asserting that everything is named "main" and hoping there's only one function named "main", just use the nir_shader_get_entrypoint() helper which has better assertions anyway. Reviewed-by: Lionel Landwerlin <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/intel/compiler/brw_fs.cpp3
-rw-r--r--src/intel/compiler/brw_fs_nir.cpp17
-rw-r--r--src/intel/compiler/brw_vec4_nir.cpp7
-rw-r--r--src/intel/vulkan/anv_pipeline.c1
4 files changed, 5 insertions, 23 deletions
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index e030f7215ce..3e083723471 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -6811,9 +6811,6 @@ fs_visitor::run_fs(bool allow_spilling, bool do_rep_send)
retype(dispatch_mask, BRW_REGISTER_TYPE_UW));
}
- /* Generate FS IR for main(). (the visitor only descends into
- * functions called "main").
- */
emit_nir_code();
if (failed)
diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp
index 7930205d659..c845d87d59b 100644
--- a/src/intel/compiler/brw_fs_nir.cpp
+++ b/src/intel/compiler/brw_fs_nir.cpp
@@ -40,12 +40,7 @@ fs_visitor::emit_nir_code()
nir_setup_uniforms();
nir_emit_system_values();
- /* get the main function and emit it */
- nir_foreach_function(function, nir) {
- assert(strcmp(function->name, "main") == 0);
- assert(function->impl);
- nir_emit_impl(function->impl);
- }
+ nir_emit_impl(nir_shader_get_entrypoint((nir_shader *)nir));
}
void
@@ -267,13 +262,9 @@ fs_visitor::nir_emit_system_values()
}
}
- nir_foreach_function(function, nir) {
- assert(strcmp(function->name, "main") == 0);
- assert(function->impl);
- nir_foreach_block(block, function->impl) {
- emit_system_values_block(block, this);
- }
- }
+ nir_function_impl *impl = nir_shader_get_entrypoint((nir_shader *)nir);
+ nir_foreach_block(block, impl)
+ emit_system_values_block(block, this);
}
/*
diff --git a/src/intel/compiler/brw_vec4_nir.cpp b/src/intel/compiler/brw_vec4_nir.cpp
index 5ccfd1f8940..19ee79367c8 100644
--- a/src/intel/compiler/brw_vec4_nir.cpp
+++ b/src/intel/compiler/brw_vec4_nir.cpp
@@ -37,12 +37,7 @@ vec4_visitor::emit_nir_code()
if (nir->num_uniforms > 0)
nir_setup_uniforms();
- /* get the main function and emit it */
- nir_foreach_function(function, nir) {
- assert(strcmp(function->name, "main") == 0);
- assert(function->impl);
- nir_emit_impl(function->impl);
- }
+ nir_emit_impl(nir_shader_get_entrypoint((nir_shader *)nir));
}
void
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index 7c9b1230115..ad0f08253e7 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -191,7 +191,6 @@ anv_shader_compile_to_nir(struct anv_pipeline *pipeline,
exec_node_remove(&func->node);
}
assert(exec_list_length(&nir->functions) == 1);
- entry_point->name = ralloc_strdup(entry_point, "main");
/* Now that we've deleted all but the main function, we can go ahead and
* lower the rest of the constant initializers. We do this here so that