Summary: | DFGBytecodeParser should not declare that a node won't clobberExit if DFGFixupPhase can later declare it does clobberExit | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Robin Morisset <rmorisset> | ||||||
Component: | JavaScriptCore | Assignee: | Robin Morisset <rmorisset> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | commit-queue, ews-watchlist, keith_miller, mark.lam, msaboff, saam | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | WebKit Nightly Build | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Robin Morisset
2019-02-22 11:28:18 PST
Created attachment 362738 [details]
Patch
Comment on attachment 362738 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=362738&action=review r=me > Source/JavaScriptCore/ChangeLog:14 > + Otherwise we are likely to hit validation failure after fixup. instead of "likely" I think you should describe precisely when/why this happens. > Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:7216 > + m_exitOK = false; // PutByVal and PutByValDirect must be treated as if they clobber exit state, since FixupPhase may make them generic. This one isn't actually needed since PutByVal always clobbers exit unless it's in ForceOSR exit mode. And if it's in that mode, I don't think we can ever refine it to be wider? I'm ok with keeping this here conservatively, but this isn't the right comment to have. (In reply to Saam Barati from comment #3) > Comment on attachment 362738 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=362738&action=review > > r=me > > > Source/JavaScriptCore/ChangeLog:14 > > + Otherwise we are likely to hit validation failure after fixup. > > instead of "likely" I think you should describe precisely when/why this > happens. OK, I am replacing this line by the following: "Otherwise we will hit a validation failure after fixup if the next node was marked ExitValid and exits to the same semantic origin." > > Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:7216 > > + m_exitOK = false; // PutByVal and PutByValDirect must be treated as if they clobber exit state, since FixupPhase may make them generic. > > This one isn't actually needed since PutByVal always clobbers exit unless > it's in ForceOSR exit mode. And if it's in that mode, I don't think we can > ever refine it to be wider? I'm ok with keeping this here conservatively, > but this isn't the right comment to have. I am not entirely sure whether or not we can refine it to be wider. Looking at ArrayMode::refine, it will be widened to Generic whenever "base && index && !isInt32Speculation(index)". I cannot tell if this is likely to ever happen or not, but it is not blatantly impossible. Created attachment 362758 [details]
Patch
Improved a sentence in the Changelog, per Saam's suggestion.
Comment on attachment 362758 [details] Patch Clearing flags on attachment: 362758 Committed r241968: <https://trac.webkit.org/changeset/241968> All reviewed patches have been landed. Closing bug. |