[release/6.0-rc2] MonoAOTCompiler: detect when nothing has changed, and skip any precompiling - #58979
Merged
Merged
Conversation
radical
force-pushed
the
aot-fast-path
branch
from
September 15, 2021 16:32
4868368 to
07201f6
Compare
radical
marked this pull request as ready for review
September 16, 2021 14:59
radical
force-pushed
the
aot-fast-path
branch
from
September 16, 2021 15:02
07201f6 to
99bc1c3
Compare
radical
requested review from
jonathanpeppers and
rolfbjarne
and removed request for
rolfbjarne
September 16, 2021 15:03
Member
|
/azp run runtime |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Member
|
@radical can you fill in the template now? |
radical
force-pushed
the
aot-fast-path
branch
from
September 17, 2021 16:28
99bc1c3 to
c9c3e57
Compare
Member
Author
|
The android build (unrelated) is failing with |
Member
yes, it is on the radar. rerunning. |
Contributor
|
@radical can you send an email to the tactics for servicing approval |
Member
|
Do we need to make any corresponding changes in BDN to mimic this behavior ? cc @naricc |
Member
Author
|
Approved in email. |
Contributor
|
@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. |
Contributor
|
can we get a CR here ? |
lewing
approved these changes
Sep 23, 2021
Member
Author
|
@Anipik could you please merge this? |
Member
Author
|
/backport to main |
radical
added a commit
to radical/runtime
that referenced
this pull request
Sep 25, 2021
…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 file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.