-
Notifications
You must be signed in to change notification settings - Fork 194
Reference unboxing #1958
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
base: master
Are you sure you want to change the base?
Reference unboxing #1958
Conversation
ad356b3
to
417dc29
Compare
rebased |
55e92ea
to
e3a93a3
Compare
42c5f9e
to
fe4b44c
Compare
Freevars.iter_last_free_var discard block.branch; | ||
match block.branch with | ||
| Pushtrap ((pc', _), _, (pc'', _)) -> | ||
traverse (depth + 1) start_pc pc'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add a comment explaining why we can't optimize across try-catch ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have updated the comment at the beginning of the file
let refs, _ = Int.Hashtbl.find relevant_vars pc' in | ||
let vars = Var.Map.filter (fun x _ -> Var.Set.mem x refs) vars in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the filtering necessary ? isn't vars always a subset of refs ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not when you jump outside the scope of a reference. refs
is the set of references which are in scope a the beginning of block pc'
; vars
maps references in scope in the current block to the variables which contain their current value.
fe4b44c
to
e0bfae3
Compare
No description provided.