summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit.cpp')
-rw-r--r--source/slang/slang-emit.cpp9
1 files changed, 2 insertions, 7 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index 428c9bf66..02dab6dfa 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -598,13 +598,12 @@ Result linkAndOptimizeIR(
{
applySparseConditionalConstantPropagation(irModule, codeGenContext->getSink());
}
- eliminateDeadCode(irModule, deadCodeEliminationOptions);
-
validateIRModuleIfEnabled(codeGenContext, irModule);
// Inline calls to any functions marked with [__unsafeInlineEarly] again,
// since we may be missing out cases prevented by the functions that we just specialzied.
performMandatoryEarlyInlining(irModule);
+ eliminateDeadCode(irModule, deadCodeEliminationOptions);
// Unroll loops.
if (!fastIRSimplificationOptions.minimalOptimization)
@@ -691,11 +690,7 @@ Result linkAndOptimizeIR(
// do unnecessary work to lower them.
unpinWitnessTables(irModule);
- if (fastIRSimplificationOptions.minimalOptimization)
- {
- eliminateDeadCode(irModule, deadCodeEliminationOptions);
- }
- else
+ if (!fastIRSimplificationOptions.minimalOptimization)
{
simplifyIR(targetProgram, irModule, fastIRSimplificationOptions, sink);
}