diff options
| author | Yong He <yonghe@outlook.com> | 2024-05-29 18:01:11 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-29 18:01:11 -0700 |
| commit | efdbb954c57b89362e390f955d45f90e59d66878 (patch) | |
| tree | 7b47d6e52d2de666af99f66a2fd3a5dc387ca5cc /source/slang/slang-emit.cpp | |
| parent | 83f176ba8a3bae5533470aed6a90663653f894b8 (diff) | |
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.
Diffstat (limited to 'source/slang/slang-emit.cpp')
| -rw-r--r-- | source/slang/slang-emit.cpp | 9 |
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); } |
