[Webkit-unassigned] [Bug 87205] DFG should keep captured variables alive until the (inline) return.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue May 22 23:58:45 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=87205





--- Comment #1 from Filip Pizlo <fpizlo at apple.com>  2012-05-22 23:57:50 PST ---
Currently a variable may appear to be dead at a basic block boundary even though it is captured. As a hack, we can peek at the first node of the successor block(s) and check what variables are captured at that node's code origin. But that's just disgusting and wrong.

The right solution is to change how captured variables are flushed. Currently we flush SetLocals by planting a Flush node right after them:

a: SetLocal(thingy)
b: Flush(@a)

But we could instead have a flush right before each SetLocal:

a: Flush(...)
b: SetLocal(thingy)

As well as a Flush for all captured variables at the return site. That will effectively keep variables alive through the whole span of code in which they are captured.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list