-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[release/6.0-rc2] MonoAOTCompiler: detect when nothing has changed, and skip any precompiling #58979
Conversation
4868368
to
07201f6
Compare
07201f6
to
99bc1c3
Compare
/azp run runtime |
Azure Pipelines successfully started running 1 pipeline(s). |
@radical can you fill in the template now? |
99bc1c3
to
c9c3e57
Compare
The android build (unrelated) is failing with |
yes, it is on the radar. rerunning. |
@radical can you send an email to the tactics for servicing approval |
Do we need to make any corresponding changes in BDN to mimic this behavior ? cc @naricc |
Approved in email. |
@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. |
can we get a CR here ? |
@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
MonoAOTCompiler
runs 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.