[Webkit-unassigned] [Bug 151335] B3 Patchpoint and Check opcodes should be able to specify Air::Arg::LateUse for their stackmap

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Dec 1 11:42:28 PST 2015


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

Filip Pizlo <fpizlo at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|B3::Patchpoints should be   |B3 Patchpoint and Check
                   |able to specify             |opcodes should be able to
                   |Air::Arg::LateUse           |specify Air::Arg::LateUse
                   |                            |for their stackmap

--- Comment #1 from Filip Pizlo <fpizlo at apple.com> ---
This is a bit tricky.  Currently, we have five opcodes that have stackmaps:

Patchpoint
Check
CheckAdd
CheckSub
CheckMul

CheckMul already uses LateUse for its stackmap, because the multiply cannot be undone.  Hence we need to ensure that if we want to recover any of the input values, they cannot overlap with the result.

The other opcodes currently have no way of specifying LateUse for their stackmaps.  It's tricky because currently the machinery for forcing LateUse in CheckMul relies on making the *entire* stackmap into LateUse.  Specifying LateUse on the entire stackmap is super dangerous because it also implies cold use, which is incompatible with constraints like SomeRegister.  What we really want is to specify LateUse on only some of the stackmap arguments. Ideally, there would be some way of saying LateUse in the ValueRep input constraints.  For example, we could have a ValueRep::Late, which is like Any but means LateUse.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20151201/98eda5fb/attachment.html>


More information about the webkit-unassigned mailing list