Mesa (master): Revert "spirv: consider bitsize when handling OpSwitch cases"

Mark Janes majanes at kemper.freedesktop.org
Thu Dec 21 20:17:58 UTC 2017


Module: Mesa
Branch: master
Commit: 7665383a33f9ce9256aa121cbe4d3bd948dff145
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7665383a33f9ce9256aa121cbe4d3bd948dff145

Author: Mark Janes <mark.a.janes at intel.com>
Date:   Thu Dec 21 12:15:40 2017 -0800

Revert "spirv: consider bitsize when handling OpSwitch cases"

This reverts commit 9702fac68e8bd07be8871f7925d7f9fb98da3699, which
hangs vulkancts and crucible on all platforms.

The patch is being reverted because it disables continuous integration
testing.  The patch from bug 104359 does not apply to master.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104359

---

 src/compiler/spirv/vtn_cfg.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/src/compiler/spirv/vtn_cfg.c b/src/compiler/spirv/vtn_cfg.c
index 9c4cbe2e6a..8582c4f0e9 100644
--- a/src/compiler/spirv/vtn_cfg.c
+++ b/src/compiler/spirv/vtn_cfg.c
@@ -513,14 +513,13 @@ vtn_cfg_walk_blocks(struct vtn_builder *b, struct list_head *cf_list,
                      "Selector of OpSelect must have a type of OpTypeInt");
 
          bool is_default = true;
-         const uint bitsize = nir_alu_type_get_type_size(cond_type);
          for (const uint32_t *w = block->branch + 2; w < branch_end;) {
             uint64_t literal = 0;
             if (!is_default) {
-               if (bitsize <= 32) {
+               if (nir_alu_type_get_type_size(cond_type) <= 32) {
                   literal = *(w++);
                } else {
-                  assert(bitsize == 64);
+                  assert(nir_alu_type_get_type_size(cond_type) == 64);
                   literal = vtn_u64_literal(w);
                   w += 2;
                }
@@ -545,7 +544,7 @@ vtn_cfg_walk_blocks(struct vtn_builder *b, struct list_head *cf_list,
          /* Finally, we walk over all of the cases one more time and put
           * them in fall-through order.
           */
-         for (const uint32_t *w = block->branch + 2; w < branch_end;) {
+         for (const uint32_t *w = block->branch + 2; w < branch_end; w += 2) {
             struct vtn_block *case_block =
                vtn_value(b, *w, vtn_value_type_block)->block;
 
@@ -555,13 +554,6 @@ vtn_cfg_walk_blocks(struct vtn_builder *b, struct list_head *cf_list,
             vtn_assert(case_block->switch_case);
 
             vtn_order_case(swtch, case_block->switch_case);
-
-            if (bitsize <= 32) {
-               w += 2;
-            } else {
-               assert(bitsize == 64);
-               w += 3;
-            }
          }
 
          enum vtn_branch_type branch_type =




More information about the mesa-commit mailing list