summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-sccp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir-sccp.cpp')
-rw-r--r--source/slang/slang-ir-sccp.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/source/slang/slang-ir-sccp.cpp b/source/slang/slang-ir-sccp.cpp
index fbc00848b..c03eee695 100644
--- a/source/slang/slang-ir-sccp.cpp
+++ b/source/slang/slang-ir-sccp.cpp
@@ -1678,5 +1678,21 @@ bool applySparseConditionalConstantPropagation(
return changed;
}
+
+bool applySparseConditionalConstantPropagation(IRInst* func)
+{
+ SharedSCCPContext shared;
+ shared.module = func->getModule();
+ shared.sharedBuilder.init(shared.module);
+ shared.sharedBuilder.deduplicateAndRebuildGlobalNumberingMap();
+
+ SCCPContext globalContext;
+ globalContext.shared = &shared;
+ globalContext.code = nullptr;
+
+ // Run recursive SCCP passes on each child code block.
+ return applySparseConditionalConstantPropagationRec(globalContext, func);
+}
+
}