diff options
| author | Yong He <yonghe@outlook.com> | 2023-10-04 11:20:35 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-04 11:20:35 -0700 |
| commit | ac886fd3e329a9599ed1ac7a6d8b26ca5821046c (patch) | |
| tree | 87bcafb3985775f9d90303d6a4239eb743164407 /source/slang/slang-emit-spirv.cpp | |
| parent | d87493a46c00be37b820a473c0827bbb865eb222 (diff) | |
SPIRV compiler performance fixes. (#3258)
* SPIRV compiler performance fixes.
* Cleanup.
* update project files
* Cleanup debug code.
* Make redundancy removal non-recursive.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-emit-spirv.cpp')
| -rw-r--r-- | source/slang/slang-emit-spirv.cpp | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp index 62e7d428b..0ba637978 100644 --- a/source/slang/slang-emit-spirv.cpp +++ b/source/slang/slang-emit-spirv.cpp @@ -3310,7 +3310,12 @@ struct SPIRVEmitContext // Find phi arguments from incoming branch instructions that target `block`. for (auto use = block->firstUse; use; use = use->nextUse) { - auto branchInst = use->getUser(); + auto branchInst = as<IRUnconditionalBranch>(use->getUser()); + if (!branchInst) + continue; + if (branchInst->getTargetBlock() != inst->getParent()) + continue; + UInt argStartIndex = 0; switch (branchInst->getOp()) { @@ -4742,27 +4747,6 @@ struct SPIRVEmitContext } } - void handleRequiredCapabilitiesImpl(IRInst* inst) - { - for (auto decoration : inst->getDecorations()) - { - switch (decoration->getOp()) - { - default: - break; - case kIROp_RequireSPIRVCapabilityDecoration: - requireSPIRVCapability((SpvCapability)getIntVal(decoration->getOperand(0))); - if (decoration->getOperandCount() == 2) - { - auto stringLit = as<IRStringLit>(decoration->getOperand(1)); - if (stringLit->getStringSlice().getLength()) - ensureExtensionDeclaration(stringLit->getStringSlice()); - } - break; - } - } - } - SPIRVEmitContext(IRModule* module, TargetRequest* target, DiagnosticSink* sink) : SPIRVEmitSharedContext(module, target, sink) , m_irModule(module) |
