Bug 160755

Summary: DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
Product: WebKit Reporter: Mark Lam <mark.lam>
Component: JavaScriptCoreAssignee: Mark Lam <mark.lam>
Status: RESOLVED FIXED    
Severity: Normal CC: benjamin, fpizlo, ggaren, keith_miller, msaboff, saam, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
proposed patch. fpizlo: review+

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.