Skip to content

[release/6.0-rc2] MonoAOTCompiler: detect when nothing has changed, and skip any precompiling - #58979

Merged
Anipik merged 3 commits into
dotnet:release/6.0-rc2from
radical:aot-fast-path
Sep 24, 2021
Merged

[release/6.0-rc2] MonoAOTCompiler: detect when nothing has changed, and skip any precompiling#58979
Anipik merged 3 commits into
dotnet:release/6.0-rc2from
radical:aot-fast-path

Conversation

@radical

@radicalradical commented Sep 11, 2021

Copy link
Copy Markdown
Member

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.

@ghostghost added the area-Build-mono label Sep 11, 2021
@radical
radical marked this pull request as ready for review September 16, 2021 14:59
@radicalradical added the arch-wasm WebAssembly architecture label Sep 16, 2021
@ghost

Copy link
Copy Markdown

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 rolfbjarneSeptember 16, 2021 15:03
@radicalradical 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 precompilingSep 16, 2021
Comment threadsrc/tasks/AotCompilerTask/MonoAOTCompiler.cs Outdated
@lewing

Copy link
Copy Markdown
Member

/azp run runtime

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@lewing
lewing changed the base branch from release/6.0 to release/6.0-rc2September 17, 2021 15:54
@lewinglewing 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 precompilingSep 17, 2021
@lewing

Copy link
Copy Markdown
Member

@radical can you fill in the template now?

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

Copy link
Copy Markdown
MemberAuthor

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

@lewing

Copy link
Copy Markdown
Member

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

yes, it is on the radar. rerunning.

@Anipik

Copy link
Copy Markdown
Contributor

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

@SamMonoRT

Copy link
Copy Markdown
Member

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

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

Copy link
Copy Markdown
MemberAuthor

Approved in email.

@naricc

Copy link
Copy Markdown
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.

@Anipik

Copy link
Copy Markdown
Contributor

can we get a CR here ?

@radical

Copy link
Copy Markdown
MemberAuthor

@Anipik could you please merge this?

@Anipik
Anipik merged commit 9fd17b1 into dotnet:release/6.0-rc2Sep 24, 2021
@radical
radical deleted the aot-fast-path branch September 24, 2021 17:33
@radical

radical commented Sep 24, 2021

Copy link
Copy Markdown
MemberAuthor

/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)
@ghostghost locked as resolved and limited conversation to collaborators Nov 3, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-Build-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@radical@lewing@Anipik@SamMonoRT@naricc@jonathanpeppers@marek-safar