Module: Mesa Branch: main Commit: 662bbf6ad4948caa364bda2c8e3a1edc3a2f961a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=662bbf6ad4948caa364bda2c8e3a1edc3a2f961a
Author: Timur Kristóf <[email protected]> Date: Fri May 7 09:37:59 2021 +0200 aco: Determine whether a few more instructions need exec. These don't really need the exec mask (and never have), but we haven't needed to include them in needs_exec_mask yet. No Fossil DB changes. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Tony Wasserka <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10691> --- src/amd/compiler/aco_ir.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/amd/compiler/aco_ir.cpp b/src/amd/compiler/aco_ir.cpp index 458bf7981e4..8aab589a458 100644 --- a/src/amd/compiler/aco_ir.cpp +++ b/src/amd/compiler/aco_ir.cpp @@ -447,9 +447,9 @@ uint32_t get_reduction_identity(ReduceOp op, unsigned idx) } bool needs_exec_mask(const Instruction* instr) { - if (instr->isSALU()) + if (instr->isSALU() || instr->isBranch()) return instr->reads_exec(); - if (instr->isSMEM() || instr->isSALU()) + if (instr->isSMEM()) return false; if (instr->isBarrier()) return false; @@ -459,6 +459,8 @@ bool needs_exec_mask(const Instruction* instr) { case aco_opcode::p_create_vector: case aco_opcode::p_extract_vector: case aco_opcode::p_split_vector: + case aco_opcode::p_phi: + case aco_opcode::p_parallelcopy: for (Definition def : instr->definitions) { if (def.getTemp().type() == RegType::vgpr) return true; @@ -466,6 +468,9 @@ bool needs_exec_mask(const Instruction* instr) { return false; case aco_opcode::p_spill: case aco_opcode::p_reload: + case aco_opcode::p_logical_start: + case aco_opcode::p_logical_end: + case aco_opcode::p_startpgm: return false; default: break; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
