Skip to content

Conversation

@fanyang-mono
Copy link
Member

@fanyang-mono fanyang-mono commented Apr 14, 2022

Some of the microbenchmarks use generic type, where Mono full AOT would emit a generic function to handle various types, which is very slow and doesn't worth benchmarking. This is one example:
https://github.com/dotnet/performance/blob/main/src/benchmarks/micro/libraries/System.Numerics.Vectors/Perf_VectorOfT.cs

This PR will change the AOT mode to Normal LLVM AOT with LLVM JIT fallback. Because Normal AOT leaves the generic type cases for JIT to handle. That way optimized code will be emitted.

Additionally, Maui Android is using Profiled AOT with JIT fallback, which is similar to Normal AOT with JIT fallback. Ideally, they would like to leverage LLVM too at some point.

cc: @naricc

@SamMonoRT
Copy link
Member

@fanyang-mono - can you add a comment why we are switching from full to normal aot describing the limitations of these runs in the labs. That way we can discuss with @adamsitnik and Drew to see if we do something about those.

@fanyang-mono
Copy link
Member Author

@adamsitnik Please merge this PR when you get a chance. Thanks in advance.

@naricc
Copy link

naricc commented Apr 15, 2022

Looks good to me.

@adamsitnik adamsitnik merged commit 35ba9d5 into dotnet:master Apr 16, 2022
@AndreyAkinshin AndreyAkinshin added this to the v0.13.2 milestone Apr 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants