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

Inlining mappable indirect calls. #1129

Open
ptersilie opened this issue Apr 30, 2024 · 0 comments
Open

Inlining mappable indirect calls. #1129

ptersilie opened this issue Apr 30, 2024 · 0 comments

Comments

@ptersilie
Copy link
Contributor

At the moment we outline all indirect calls. There are two reasons for this:

  1. We don't know if the call target is mappable or not
  2. If it is mappable, we don't know if it was annotated with "yk_outline" (which forbids inlining)

At least in the hardware tracer 1) is easy to work around this by peeking ahead at the next block in the trace. If the block is mappable, the call can be inlined. Unfortunately, this doesn't currently work for the software tracer, since it doesn't report unmappable blocks (however this is a separate issue).

A solution for 2) would be to not serialise AOT IR for functions annotated with "yk_outline". This means that any function we have IR for are guaranteed to be inline safe and the trick from 1) works again.

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

No branches or pull requests

1 participant