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

Commits on Feb 12, 2020

  1. [interp][wasm] Make newobj_fast not recursive, cleanup, fix EXCEPTION…

    …_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.
    jaykrell committed Feb 12, 2020
    Configuration menu
    Copy the full SHA
    949c234 View commit details
    Browse the repository at this point in the history