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

[interp] Make newobj_fast not recursive. #31856

Merged
merged 1 commit into from
Feb 13, 2020

Conversation

monojenkins
Copy link
Contributor

!! This PR is a copy of mono/mono#18734, please do not edit or review it in this repo !!
!! Merge the PR only after the original PR is merged !!



This contributes to mono/mono#18646,
and against master might even fix it.
Much recursion remains in the interpreter/transform.
There might be a GC hole here. Expert review required.

@monojenkins monojenkins force-pushed the sync-pr-18734-from-mono branch 9 times, most recently from f342e1d to ea07fe9 Compare February 9, 2020 09:25
…_CHECKPOINT.

Make newobj_fast not recursive.
This contributes significantly to mono/mono#18646,
and against master might even fix it.
Much recursion remains in the interpreter/transform.

This also cleans up redundant code, i.e. method_entry,
and places EXCEPTION_CHECKPOINT more correctly,
i.e. when transform occurs but does not return an exception.
EXCEPTION_CHECKPOINT fix is necessary so that non-recursive newobj_fast does not break one test.

One more item, could be separate PR:
Making call_vararg added the following to all calls:
  storing is_void in a larger scoped local
  save is_void
  restore is_void
  check is_void, along with preexisting check of retval == null

Because retval must be set even for void call_varargs, because the arglist is found from it.
This removes the check of retval == null, it should be redundant with is_void.
Since there was complaint about call_vararg inefficiency, this fixes part of it.
@BrzVlad BrzVlad changed the title [interp[wasm] Make newobj_fast not recursive. [interp] Make newobj_fast not recursive. Feb 13, 2020
@BrzVlad BrzVlad merged commit 9a37b9e into dotnet:master Feb 13, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 10, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants