RESOLVED FIXED 160755
DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
https://bugs.webkit.org/show_bug.cgi?id=160755
Summary DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
Mark Lam
Reported 2016-08-10 15:12:02 PDT
If the DFG sees that an inlined function will result in an OSR exit every time, it will treat all downstream blocks as dead. However, it still needs to keep locals that are alive in the bytecode alive for the compiled function so that those locals are properly written to the stack by the OSR exit ramp. The existing code neglected to do this. Will fix.
Attachments
proposed patch. (6.09 KB, patch)
2016-08-10 15:22 PDT, Mark Lam
fpizlo: review+
Mark Lam
Comment 1 2016-08-10 15:12:57 PDT
Mark Lam
Comment 2 2016-08-10 15:22:09 PDT
Created attachment 285770 [details] proposed patch.
Filip Pizlo
Comment 3 2016-08-10 15:24:10 PDT
Comment on attachment 285770 [details] proposed patch. Nice.
Mark Lam
Comment 4 2016-08-10 16:22:09 PDT
Thanks for the review. Landed in r204360: <http://trac.webkit.org/r204360>.
Note You need to log in before you can comment on or make changes to this bug.