diff options
author | Daniel Schürmann <daniel@schuermann.dev> | 2019-08-14 18:52:50 +0200 |
---|---|---|
committer | Daniel Schürmann <daniel@schuermann.dev> | 2019-08-20 17:39:52 +0200 |
commit | 204846ad062fe4e154406fa2d9093cdab4461ea2 (patch) | |
tree | 95dde9abaa04420aeea83d02d61366c317262523 /src/compiler/nir/nir_deref.c | |
parent | 7c56a68c8bd45208ef7c7e6e61bfeb6147ded4b6 (diff) | |
download | mesa-204846ad062fe4e154406fa2d9093cdab4461ea2.tar.gz |
nir/lcssa: handle deref instructions properly
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes: 414148cdc124 "nir: Support deref instructions in loop_analyze"
Diffstat (limited to 'src/compiler/nir/nir_deref.c')
-rw-r--r-- | src/compiler/nir/nir_deref.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/compiler/nir/nir_deref.c b/src/compiler/nir/nir_deref.c index da66c5f0487..f7a07c6b465 100644 --- a/src/compiler/nir/nir_deref.c +++ b/src/compiler/nir/nir_deref.c @@ -216,17 +216,15 @@ nir_deref_instr_has_complex_use(nir_deref_instr *deref) unsigned nir_deref_instr_ptr_as_array_stride(nir_deref_instr *deref) { - assert(deref->deref_type == nir_deref_type_ptr_as_array); - nir_deref_instr *parent = nir_deref_instr_parent(deref); - switch (parent->deref_type) { + switch (deref->deref_type) { case nir_deref_type_array: - return glsl_get_explicit_stride(nir_deref_instr_parent(parent)->type); + return glsl_get_explicit_stride(nir_deref_instr_parent(deref)->type); case nir_deref_type_ptr_as_array: - return nir_deref_instr_ptr_as_array_stride(parent); + return nir_deref_instr_ptr_as_array_stride(nir_deref_instr_parent(deref)); case nir_deref_type_cast: - return parent->cast.ptr_stride; + return deref->cast.ptr_stride; default: - unreachable("Invalid parent for ptr_as_array deref"); + return 0; } } |