diff options
author | Timothy Arceri <[email protected]> | 2018-06-01 15:37:27 +1000 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2018-06-07 11:33:04 +1000 |
commit | 1098bc5e854a1253e050fa30d16eda6ca676d4b3 (patch) | |
tree | 199e0c8de2e0e279584f7d44626c68615a61bd8f | |
parent | 186988e28f9fe31ad4d08626586d5167051a14e7 (diff) |
nir: move ends_in_break() helper to nir_loop_analyze.h
We will use the helper while simplifying potential loop terminators
in the following patch.
Reviewed-by: Ian Romanick <[email protected]>
-rw-r--r-- | src/compiler/nir/nir_loop_analyze.c | 15 | ||||
-rw-r--r-- | 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 84da035052d..d5281a5faa4 100644 --- a/src/compiler/nir/nir_loop_analyze.c +++ b/src/compiler/nir/nir_loop_analyze.c @@ -290,17 +290,6 @@ initialize_ssa_def(nir_ssa_def *def, void *void_state) return true; } -static inline bool -ends_in_break(nir_block *block) -{ - if (exec_list_is_empty(&block->instr_list)) - return false; - - nir_instr *instr = nir_block_last_instr(block); - return instr->type == nir_instr_type_jump && - nir_instr_as_jump(instr)->type == nir_jump_break; -} - static bool find_loop_terminators(loop_info_state *state) { @@ -315,11 +304,11 @@ find_loop_terminators(loop_info_state *state) nir_block *last_then = nir_if_last_then_block(nif); nir_block *last_else = nir_if_last_else_block(nif); - if (ends_in_break(last_then)) { + if (nir_block_ends_in_break(last_then)) { break_blk = last_then; continue_from_blk = last_else; continue_from_then = false; - } else if (ends_in_break(last_else)) { + } else if (nir_block_ends_in_break(last_else)) { break_blk = last_else; continue_from_blk = last_then; } diff --git a/src/compiler/nir/nir_loop_analyze.h b/src/compiler/nir/nir_loop_analyze.h index 18c23051717..7b4ed66ee58 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_block_ends_in_break(nir_block *block) +{ + if (exec_list_is_empty(&block->instr_list)) + return false; + + nir_instr *instr = nir_block_last_instr(block); + return instr->type == nir_instr_type_jump && + nir_instr_as_jump(instr)->type == nir_jump_break; +} + #endif /* NIR_LOOP_ANALYZE_H */ |