From c86ec09d118dc9daa012e15d483b48c63c0d859c Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Mon, 26 Jul 2021 16:42:14 +0800 Subject: [PATCH] nir/loop_analyze: move nir_is_supported_terminator_condition() to header MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit To be shared with uniform inline. Reviewed-by: Marek Olšák Signed-off-by: Qiang Yu Part-of: --- src/compiler/nir/nir_loop_analyze.c | 15 ++------------- src/compiler/nir/nir_loop_analyze.h | 11 +++++++++++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/compiler/nir/nir_loop_analyze.c b/src/compiler/nir/nir_loop_analyze.c index faa9e58..6f4119e 100644 --- a/src/compiler/nir/nir_loop_analyze.c +++ b/src/compiler/nir/nir_loop_analyze.c @@ -857,17 +857,6 @@ inverse_comparison(nir_op alu_op) } static bool -is_supported_terminator_condition(nir_ssa_scalar cond) -{ - if (!nir_ssa_scalar_is_alu(cond)) - return false; - - nir_alu_instr *alu = nir_instr_as_alu(cond.def->parent_instr); - return nir_alu_instr_is_comparison(alu) && - nir_op_infos[alu->op].num_inputs == 2; -} - -static bool get_induction_and_limit_vars(nir_ssa_scalar cond, nir_ssa_scalar *ind, nir_ssa_scalar *limit, @@ -936,7 +925,7 @@ try_find_trip_count_vars_in_iand(nir_ssa_scalar *cond, bool found_induction_var = false; for (unsigned i = 0; i < 2; i++) { nir_ssa_scalar src = nir_ssa_scalar_chase_alu_src(iand, i); - if (is_supported_terminator_condition(src) && + if (nir_is_supported_terminator_condition(src) && get_induction_and_limit_vars(src, ind, limit, limit_rhs, state)) { *cond = src; found_induction_var = true; @@ -997,7 +986,7 @@ find_trip_count(loop_info_state *state, unsigned execution_mode) } if (!basic_ind.def) { - if (is_supported_terminator_condition(cond)) { + if (nir_is_supported_terminator_condition(cond)) { get_induction_and_limit_vars(cond, &basic_ind, &limit, &limit_rhs, state); } diff --git a/src/compiler/nir/nir_loop_analyze.h b/src/compiler/nir/nir_loop_analyze.h index 18c2305..c722946 100644 --- a/src/compiler/nir/nir_loop_analyze.h +++ b/src/compiler/nir/nir_loop_analyze.h @@ -92,4 +92,15 @@ nir_is_trivial_loop_if(nir_if *nif, nir_block *break_block) return true; } +static inline bool +nir_is_supported_terminator_condition(nir_ssa_scalar cond) +{ + if (!nir_ssa_scalar_is_alu(cond)) + return false; + + nir_alu_instr *alu = nir_instr_as_alu(cond.def->parent_instr); + return nir_alu_instr_is_comparison(alu) && + nir_op_infos[alu->op].num_inputs == 2; +} + #endif /* NIR_LOOP_ANALYZE_H */ -- 2.7.4