From efdbb954c57b89362e390f955d45f90e59d66878 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 29 May 2024 18:01:11 -0700 Subject: Improve compile time performance. (#3857) * Handle type check cache update on extensions more gracefully. * Correctness fix. * Cache implcit cast overload resolution results. * Fix. * More optimizations. * Cache implicit default ctor resolution. * Disable redundancy removal. * Fix. * Fix test. * Fix. * Correctness fix. * Fix. * Fix, * Fix test. * Small tweak. --- source/slang/slang-emit.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'source/slang/slang-emit.cpp') 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); } -- cgit v1.2.3