nir: Use a switch statement in nir_handle_add_jump
authorJason Ekstrand <jason@jlekstrand.net>
Fri, 15 May 2020 20:31:50 +0000 (15:31 -0500)
committerMarge Bot <eric+marge@anholt.net>
Tue, 19 May 2020 17:21:23 +0000 (17:21 +0000)
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5101>

src/compiler/nir/nir_control_flow.c

index 252aaf335ad3dfb0eca21cedbc6e35e2a40febbe..c52d091e848286ba8dc141a927c08595d9fd9ab2 100644 (file)
@@ -471,21 +471,28 @@ nir_handle_add_jump(nir_block *block)
    nir_function_impl *impl = nir_cf_node_get_function(&block->cf_node);
    nir_metadata_preserve(impl, nir_metadata_none);
 
-   if (jump_instr->type == nir_jump_break ||
-       jump_instr->type == nir_jump_continue) {
+   switch (jump_instr->type) {
+   case nir_jump_return:
+      link_blocks(block, impl->end_block, NULL);
+      break;
+
+   case nir_jump_break: {
       nir_loop *loop = nearest_loop(&block->cf_node);
+      nir_cf_node *after = nir_cf_node_next(&loop->cf_node);
+      nir_block *after_block = nir_cf_node_as_block(after);
+      link_blocks(block, after_block, NULL);
+      break;
+   }
 
-      if (jump_instr->type == nir_jump_continue) {
-         nir_block *first_block = nir_loop_first_block(loop);
-         link_blocks(block, first_block, NULL);
-      } else {
-         nir_cf_node *after = nir_cf_node_next(&loop->cf_node);
-         nir_block *after_block = nir_cf_node_as_block(after);
-         link_blocks(block, after_block, NULL);
-      }
-   } else {
-      assert(jump_instr->type == nir_jump_return);
-      link_blocks(block, impl->end_block, NULL);
+   case nir_jump_continue: {
+      nir_loop *loop = nearest_loop(&block->cf_node);
+      nir_block *first_block = nir_loop_first_block(loop);
+      link_blocks(block, first_block, NULL);
+      break;
+   }
+
+   default:
+      unreachable("Invalid jump type");
    }
 }