From 00e98d74b1861d36043dec65c7631f4460279254 Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Sat, 14 Dec 2024 18:20:38 +0100 Subject: [PATCH] gallivm/nir/soa: Properly skip empty else branches Reviewed-by: Mike Blumenkrantz Part-of: --- src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c index c783b0b3130..8c6f762c0e3 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c @@ -5588,8 +5588,6 @@ visit_block(struct lp_build_nir_soa_context *bld, nir_block *block) static bool lp_should_flatten_cf_list(struct exec_list *cf_list) { - if (exec_list_is_empty(cf_list)) - return true; if (!exec_list_is_singular(cf_list)) return false; @@ -5604,18 +5602,13 @@ visit_if(struct lp_build_nir_soa_context *bld, nir_if *if_stmt) LLVMValueRef cond = get_src(bld, &if_stmt->condition, 0); bool flatten_then = lp_should_flatten_cf_list(&if_stmt->then_list); + bool flatten_else = lp_should_flatten_cf_list(&if_stmt->else_list); if_cond(bld, cond, flatten_then); visit_cf_list(bld, &if_stmt->then_list); - - if (!exec_list_is_empty(&if_stmt->else_list)) { - bool flatten_else = lp_should_flatten_cf_list(&if_stmt->else_list); - else_stmt(bld, flatten_then, flatten_else); - visit_cf_list(bld, &if_stmt->else_list); - endif_stmt(bld, flatten_else); - } else { - endif_stmt(bld, flatten_then); - } + else_stmt(bld, flatten_then, flatten_else); + visit_cf_list(bld, &if_stmt->else_list); + endif_stmt(bld, flatten_else); } static void