summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Arceri <tarceri@itsqueeze.com>2022-10-17 13:28:19 +1100
committerMarge Bot <emma+marge@anholt.net>2022-10-18 00:05:29 +0000
commitac7f4e0942de2576feda085d5fd165323753f950 (patch)
tree1bed9487192150ededc6a6d0edd8a1fd18041509
parentc7e92686583f45617aa017f30f93d156f2a74a2c (diff)
glsl/glsl_to_nir: remove unreachable code
This hack in glsl_to_nir() to clean up after the glsl ir linker should no longer be reachable. These type of linking opts are now done via a nir based linker long after GLSL IR has been coverted to nir by this pass. Reviewed-by: Emma Anholt <emma@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19104>
-rw-r--r--src/compiler/glsl/glsl_to_nir.cpp36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp
index a3035ab50bc..4eb4fdf081d 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/src/compiler/glsl/glsl_to_nir.cpp
@@ -1886,30 +1886,20 @@ nir_visitor::visit(ir_expression *ir)
deref->accept(this);
+ assert(nir_deref_mode_is(this->deref, nir_var_shader_in));
nir_intrinsic_op op;
- if (nir_deref_mode_is(this->deref, nir_var_shader_in)) {
- switch (ir->operation) {
- case ir_unop_interpolate_at_centroid:
- op = nir_intrinsic_interp_deref_at_centroid;
- break;
- case ir_binop_interpolate_at_offset:
- op = nir_intrinsic_interp_deref_at_offset;
- break;
- case ir_binop_interpolate_at_sample:
- op = nir_intrinsic_interp_deref_at_sample;
- break;
- default:
- unreachable("Invalid interpolation intrinsic");
- }
- } else {
- /* This case can happen if the vertex shader does not write the
- * given varying. In this case, the linker will lower it to a
- * global variable. Since interpolating a variable makes no
- * sense, we'll just turn it into a load which will probably
- * eventually end up as an SSA definition.
- */
- assert(nir_deref_mode_is(this->deref, nir_var_shader_temp));
- op = nir_intrinsic_load_deref;
+ switch (ir->operation) {
+ case ir_unop_interpolate_at_centroid:
+ op = nir_intrinsic_interp_deref_at_centroid;
+ break;
+ case ir_binop_interpolate_at_offset:
+ op = nir_intrinsic_interp_deref_at_offset;
+ break;
+ case ir_binop_interpolate_at_sample:
+ op = nir_intrinsic_interp_deref_at_sample;
+ break;
+ default:
+ unreachable("Invalid interpolation intrinsic");
}
nir_intrinsic_instr *intrin = nir_intrinsic_instr_create(shader, op);