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

Add a description to all instructions #35

Closed
ooflorent opened this issue Jan 9, 2015 · 3 comments
Closed

Add a description to all instructions #35

ooflorent opened this issue Jan 9, 2015 · 3 comments

Comments

@ooflorent
Copy link

Currently the only instructions with a description are: Change, CheckMaps and Deoptimize.
Adding a description to all instructions (or the commonest) would be a great improvement to understand the IR.

@mraleph
Copy link
Owner

mraleph commented Jan 9, 2015

There are many instructions to document and most of them have self
explanatory naming. If you have examples of unclearly named instructions
please post them here.

On Fri, Jan 9, 2015, 14:28 Florent Cailhol notifications@github.com wrote:

Currently the only instructions with a description are: Change, CheckMaps
and Deoptimize.
Adding a description to all instructions (or the commonest) would be a
great improvement to understand the IR.


Reply to this email directly or view it on GitHub
#35.

@ooflorent
Copy link
Author

Everything related to Osr:

  • UnknownOSRValue
  • OsrEntry

What is changes[*] after CallWithDescriptor?

@mraleph
Copy link
Owner

mraleph commented Jan 9, 2015

Will add. Here is explanation:

OSR stands for on stack replacement a process when a version of the code for a running function is replaced by a different version of the code (e.g. optimized) while the function is still running (is on the stack). OSR is used to optimize functions with long running loops while these loops are still running.

OsrEntry and UnknownOSRValue are HIR instructions that are used to represent OSR entry in the control flow graph (UnknownOSRValue evaluates to a value that was in the given place in the environment when OSR happens).

In general you don't need to concern yourself with semantics of these instructions - they are implementation detail of OSR mechanism.

changes[*] means changes[everything] - that is has arbitrary side effects compiler can't reason about.

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

2 participants