Summary: | When BytecodeParser inserts Unreachable after ForceOSRExit it needs to update ArgumentPositions for Flushes it inserts | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Saam Barati <saam> | ||||||||||
Component: | JavaScriptCore | Assignee: | Saam Barati <saam> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | benjamin, commit-queue, fpizlo, ggaren, gskachkov, jfbastien, keith_miller, mark.lam, msaboff, rmorisset, ticaiolima, webkit-bug-importer, ysuzuki | ||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||
Version: | WebKit Nightly Build | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Attachments: |
|
Description
Saam Barati
2018-01-31 18:20:15 PST
Created attachment 332833 [details]
patch
Created attachment 332835 [details]
patch
Created attachment 332839 [details]
patch
Created attachment 332895 [details]
patch
Comment on attachment 332895 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=332895&action=review r=me with a suggestion. > Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:6679 > + VirtualRegister argument = operand - (inlineCallFrame ? inlineCallFrame->stackOffset : 0); > + if (argument.isArgument() && !argument.isHeader()) { > + const Vector<ArgumentPosition*>& arguments = m_inlineCallFrameToArgumentPositions.get(inlineCallFrame); > + arguments[argument.toArgument()]->addVariable(variable); > + } If this is only needed when we create a new VAD, maybe you can move this into the body of the if statement above. Comment on attachment 332895 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=332895&action=review >> Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:6679 >> + } > > If this is only needed when we create a new VAD, maybe you can move this into the body of the if statement above. Spoke to Mark offline about this: We want to tell this ArgumentPosition about this VAD regardless of whether we added it or not. From reading other code in the bytecode parser, I believe it's possible that this VAD is from GetLocal only, and the ArgumentPosition would not know about it. Comment on attachment 332895 [details] patch Clearing flags on attachment: 332895 Committed r228031: <https://trac.webkit.org/changeset/228031> All reviewed patches have been landed. Closing bug. |