aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
diff options
context:
space:
mode:
authorNathan Gauër <brioche@google.com>2025-06-12 18:13:29 +0200
committerGitHub <noreply@github.com>2025-06-12 18:13:29 +0200
commitef1cb8277ac3cb34ce9700a313ed60410dd9f84b (patch)
treeca32363fbf026ad1ad389e1c8a7a3f030b31b7ec /llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
parent882b58a90ae0c4a91e1ecda6df3767b0fc44dab1 (diff)
downloadllvm-ef1cb8277ac3cb34ce9700a313ed60410dd9f84b.zip
llvm-ef1cb8277ac3cb34ce9700a313ed60410dd9f84b.tar.gz
llvm-ef1cb8277ac3cb34ce9700a313ed60410dd9f84b.tar.bz2
[SPIR-V] Fix ExecutionMode generation (#143888)
PR #141787 added code to emit the Fragment execution model. This required emitting the OriginUpperLeft ExecutionMode. But this was done by using the same codepath used for OpEntrypoint. This has 2 issues: - the interface variables were added to both OpEntryPoint and OpExecutionMode. - the existing OpExecutionMode logic was not used. This commit fixes this, regrouping OpExecutionMode handling in one place, and fixing bad codegen issue when interface variiables are added.
Diffstat (limited to 'llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp')
-rw-r--r--llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp2
1 files changed, 0 insertions, 2 deletions
diff --git a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
index 2ddd028..b71a9dd 100644
--- a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
@@ -595,8 +595,6 @@ void SPIRVModuleAnalysis::processOtherInstrs(const Module &M) {
collectOtherInstr(MI, MAI, SPIRV::MB_DebugNames, IS);
} else if (OpCode == SPIRV::OpEntryPoint) {
collectOtherInstr(MI, MAI, SPIRV::MB_EntryPoints, IS);
- } else if (OpCode == SPIRV::OpExecutionMode) {
- collectOtherInstr(MI, MAI, SPIRV::MB_EntryPoints, IS);
} else if (TII->isAliasingInstr(MI)) {
collectOtherInstr(MI, MAI, SPIRV::MB_AliasingInsts, IS);
} else if (TII->isDecorationInstr(MI)) {