-
Notifications
You must be signed in to change notification settings - Fork 397
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
WIP : Add env var to allow OSR at new opcodes #7609
base: master
Are you sure you want to change the base?
Conversation
5d89937
to
d459839
Compare
This is WIP currently because I have not understood |
@gacholio do you know the history behind the values returned by omr/compiler/compile/OMRCompilation.cpp Line 793 in 1c2b08d
As the comment/description above the routine says, it has something to do with the "destination of the OSR transition" which I thought I would check with you on, since that is expected to be decided by the VM. We take the return value from this routine and add it to the bytecode index of the OSR point (IL node) and that is what will be encoded in the JIT OSR metadata for that OSR point. fyi @tajila |
I'm not sure that the incorrect offset 0 wouldn't affect a performance experiment. In particular, I think it might prevent us from generating a pending push store for the result of the allocation It's true that we could use something like this to measure performance even if OSR transitions after allocations aren't functionally correct, but only if the benchmark never causes OSR guards to be patched. If we ever invalidate an OSR assumption, then we could attempt to transition at an allocation even if the allocation never causes invalidation itself. For example, consider this sequence:
We would transition at the OSR guard after |
Thanks for the research, Devin, I will make the change for the offset used when I get a chance, and let you know. |
Has this been explained? I personally don't know anything about the JIT OSR internals. |
Signed-off-by: Vijay Sundaresan <[email protected]>
d459839
to
114d4d5
Compare
I updated the |
Add env var to allow OSR at new (
new
,newarray
,anewarray
,multianewarray
andnewvalue
) opcodes as an experiment.