Skip to content
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

Merged
merged 3 commits into from
Sep 24, 2021

Conversation

radical
Copy link
Member

@radical radical commented Sep 11, 2021

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.

@radical radical marked this pull request as ready for review September 16, 2021 14:59
@radical radical added the arch-wasm WebAssembly architecture label Sep 16, 2021
@ghost
Copy link

ghost commented Sep 16, 2021

Tagging subscribers to 'arch-wasm': @lewing
See info in area-owners.md if you want to be subscribed.

Issue Details

Based on #58913

Issue: #58975

Author: radical
Assignees: -
Labels:

arch-wasm, area-Build-mono

Milestone: -

@radical radical requested review from jonathanpeppers and rolfbjarne and removed request for rolfbjarne September 16, 2021 15:03
@radical radical changed the title MonoAOTCompiler: detect when nothing has changed, and skip any precompiling [release/6.0] MonoAOTCompiler: detect when nothing has changed, and skip any precompiling Sep 16, 2021
@lewing
Copy link
Member

lewing commented Sep 17, 2021

/azp run runtime

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@lewing lewing changed the base branch from release/6.0 to release/6.0-rc2 September 17, 2021 15:54
@lewing lewing changed the title [release/6.0] MonoAOTCompiler: detect when nothing has changed, and skip any precompiling [release/6.0-rc2] MonoAOTCompiler: detect when nothing has changed, and skip any precompiling Sep 17, 2021
@lewing
Copy link
Member

lewing commented Sep 17, 2021

@radical can you fill in the template now?

@marek-safar marek-safar added the Servicing-consider Issue for next servicing release review label Sep 20, 2021
@radical
Copy link
Member Author

radical commented Sep 20, 2021

The android build (unrelated) is failing with ##[error]No space left on device.

@lewing
Copy link
Member

lewing commented Sep 21, 2021

The android build (unrelated) is failing with ##[error]No space left on device.

yes, it is on the radar. rerunning.

@Anipik
Copy link
Contributor

Anipik commented Sep 21, 2021

@radical can you send an email to the tactics for servicing approval

@SamMonoRT
Copy link
Member

Do we need to make any corresponding changes in BDN to mimic this behavior ? cc @naricc

@radical radical removed the Servicing-consider Issue for next servicing release review label Sep 22, 2021
@radical radical added the Servicing-approved Approved for servicing release label Sep 22, 2021
@radical
Copy link
Member Author

radical commented Sep 22, 2021

Approved in email.

@naricc
Copy link
Member

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
Copy link
Contributor

Anipik commented Sep 23, 2021

can we get a CR here ?

@radical
Copy link
Member Author

radical commented Sep 23, 2021

@Anipik could you please merge this?

@Anipik Anipik merged commit 9fd17b1 into dotnet:release/6.0-rc2 Sep 24, 2021
@radical radical deleted the aot-fast-path branch September 24, 2021 17:33
@radical
Copy link
Member Author

radical commented Sep 24, 2021

/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)
radical added a commit that referenced this pull request Sep 27, 2021
…hing has changed, a… (#59597)

…nd skip any precompiling (#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)
@ghost ghost locked as resolved and limited conversation to collaborators Nov 3, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-wasm WebAssembly architecture area-Build-mono Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants