summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-specialize.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-12-15 17:05:32 -0800
committerGitHub <noreply@github.com>2023-12-15 17:05:32 -0800
commitb507d881ca47135bfa46237767e7183f61e7d8e3 (patch)
tree3bbe4652a6972d940fd4df92a113b760c3a9e115 /source/slang/slang-ir-specialize.cpp
parentf8b3027d0be0b890152a6a649822741cd3a3b6b6 (diff)
Add ConstBufferPointer::subscript. (#3415)
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-specialize.cpp')
-rw-r--r--source/slang/slang-ir-specialize.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/source/slang/slang-ir-specialize.cpp b/source/slang/slang-ir-specialize.cpp
index e1a563b04..3f75a8b32 100644
--- a/source/slang/slang-ir-specialize.cpp
+++ b/source/slang/slang-ir-specialize.cpp
@@ -47,15 +47,17 @@ struct SpecializationContext
// we are specializing.
IRModule* module;
DiagnosticSink* sink;
+ TargetRequest* targetRequest;
bool changed = false;
- SpecializationContext(IRModule* inModule)
+ SpecializationContext(IRModule* inModule, TargetRequest* target)
: workList(*inModule->getContainerPool().getList<IRInst>())
, workListSet(*inModule->getContainerPool().getHashSet<IRInst>())
, cleanInsts(*module->getContainerPool().getHashSet<IRInst>())
, module(inModule)
+ , targetRequest(target)
{
}
@@ -1511,7 +1513,7 @@ struct SpecializationContext
//
addToWorkList(newFunc);
- simplifyFunc(newFunc, IRSimplificationOptions::getFast());
+ simplifyFunc(targetRequest, newFunc, IRSimplificationOptions::getFast());
return newFunc;
}
@@ -2230,11 +2232,12 @@ struct SpecializationContext
};
bool specializeModule(
+ TargetRequest* target,
IRModule* module,
DiagnosticSink* sink)
{
SLANG_PROFILE;
- SpecializationContext context(module);
+ SpecializationContext context(module, target);
context.sink = sink;
context.processModule();
return context.changed;
@@ -2369,7 +2372,7 @@ IRInst* specializeGenericImpl(
// the same thing.
if (auto func = as<IRFunc>(specializedVal))
{
- simplifyFunc(func, IRSimplificationOptions::getFast());
+ simplifyFunc(context->targetRequest, func, IRSimplificationOptions::getFast());
}
return specializedVal;