@@ -10839,7 +10839,7 @@ RefPtr<IRModule> generateIRForTranslationUnit(
10839
10839
bool minimumOptimizations = linkage->m_optionSet.getBoolOption(CompilerOptionName::MinimumSlangOptimization);
10840
10840
if (!minimumOptimizations)
10841
10841
{
10842
- simplifyCFG(module, CFGSimplificationOptions::getFast ());
10842
+ simplifyCFG(module, CFGSimplificationOptions::getDefault ());
10843
10843
auto peepholeOptions = PeepholeOptimizationOptions::getPrelinking();
10844
10844
peepholeOptimize(nullptr, module, peepholeOptions);
10845
10845
}
@@ -10900,11 +10900,12 @@ RefPtr<IRModule> generateIRForTranslationUnit(
10900
10900
{
10901
10901
for (auto func : modifiedFuncs.getHashSet())
10902
10902
{
10903
+ auto codeInst = as<IRGlobalValueWithCode>(func);
10903
10904
changed |= constructSSA(func);
10904
10905
changed |= applySparseConditionalConstantPropagation(func, compileRequest->getSink());
10905
10906
changed |= peepholeOptimize(nullptr, func);
10906
- changed |= simplifyCFG(codeInst, CFGSimplificationOptions::getFast())
10907
- eliminateDeadCode(func);
10907
+ changed |= simplifyCFG(codeInst, CFGSimplificationOptions::getFast());
10908
+ eliminateDeadCode(func, dceOptions );
10908
10909
}
10909
10910
}
10910
10911
}
@@ -10920,6 +10921,7 @@ RefPtr<IRModule> generateIRForTranslationUnit(
10920
10921
propagateConstExpr(module, compileRequest->getSink());
10921
10922
10922
10923
checkForUsingUninitializedOutParams(module, compileRequest->getSink());
10924
+
10923
10925
// TODO: give error messages if any `undefined` or
10924
10926
// instructions remain.
10925
10927
0 commit comments