Uh oh!
There was an error while loading. Please reload this page.
[release/6.0-rc2] MonoAOTCompiler: detect when nothing has changed, and skip any precompiling - #58979
Conversation
ghost
commented
Sep 16, 2021
Uh oh!
There was an error while loading. Please reload this page.
lewing
commented
Sep 17, 2021
/azp run runtime |
|
Azure Pipelines successfully started running 1 pipeline(s). |
lewing
commented
Sep 17, 2021
@radical can you fill in the template now? |
radical
commented
Sep 20, 2021
The android build (unrelated) is failing with |
lewing
commented
Sep 21, 2021
yes, it is on the radar. rerunning. |
Anipik
commented
Sep 21, 2021
@radical can you send an email to the tactics for servicing approval |
SamMonoRT
commented
Sep 21, 2021
Do we need to make any corresponding changes in BDN to mimic this behavior ? cc @naricc |
radical
commented
Sep 22, 2021
Approved in email. |
naricc
commented
Sep 22, 2021
@SamMonoRT No; BDN uses the local build stuff which should pick up any change in the compiler task. So it will be using this change, with out any modification to BDN itself. |
Anipik
commented
Sep 23, 2021
can we get a CR here ? |
radical
commented
Sep 23, 2021
@Anipik could you please merge this? |
/backport to main |
…nd skip any precompiling (dotnet#58979) * Refactor to allow fast-path * implement fast-path for MonoAOTCompiler when nothing has changed * re-enable some tests that got disabled by mistake (cherry picked from commit 9fd17b1)
This saves some unnecessary work when rebuilding with no changes.
Issue: #58975
Customer impact
MonoAOTCompilerruns the aot compiler for each of the assemblies, to figure out if anything changed. This is needed because even if one has changed, then it could impact others because of dependencies. But this doesn't handle the case when none of the assemblies changed, in which case invoking the aot compiler for all of them is unnecessary work, and adds to the build time.This reduces incremental build times for AOT for this specific case.
Testing
Manual testing, and existing unit tests.
Risk
Low. This impacts a very narrow case.