-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
[mono][wasm] Avoid AOTing methods with clauses, use the interpreter instead. #52883
Conversation
Tagging subscribers to this area: @BrzVlad Issue Details
|
Tried to run the browser-bench sample on chrome/amd64 to compare it to #52846. It crashes in the So I used firefox instead and remeasured the #52846 and this PR. firefox/amd64/AOT:
It also looks like the JS rountrip overhead is lower on firefox compared to chrome. |
I will also try to use it with the test case from #52394 |
ad8b3cb
to
fd9cd71
Compare
Could we emit a log message in the AOT compiler when we hit such methods to make it easier to extract them? |
Nice, the recent changes fix the crashes in chrome and also in the disabled measurements. The times look like this now:
|
If looks like maybe the ascii json deserialize path does a lot of work in a method with a clause? |
@vargaz is the gc fix more general than this pr? |
Yes. |
Most of the failures are resolved but there are still a few kinds
|
@vargaz any idea what is going on with the remaining failures? |
The Microsoft.VisualBasic failures seem to be related to calls made to Assembly.GetCallingAssembly () which is not supported in wasm+aot, not sure why this worked previously. |
Testcase for the System.Net.Http failures:
|
The only failures left are the ones in Microsoft.VisualBasic.Core.Tests. I think those tests should be disabled because of their usage of Assembly.GetCallingAssembly (). |
@radekdoulik can we get updated timings now? |
@vargaz are you in favor of taking the change? |
Tagging subscribers to 'arch-wasm': @lewing Issue Details
|
Still some relevant failures. |
d9ad62b
to
db1eb89
Compare
…nstead. This will hopefully fix semantical problems with filter clauses.
… cannot be handled in the frames below the interp_entry () call.
Stack walks are not supported on wasm, and the workarounds depend on inserting code into the caller, i.e. callers of GetExecutingAssembly (), so if the caller is interpreted, the workaround is not generated.
Nice to see it in green, great work @vargaz. Fresh measurements on Chrome/AOT against main with the same hash this was rebased at:
|
AOT runtime-staging failures:
|
for the visualbasic failure, see: |
No description provided.