[Webkit-unassigned] [Bug 152367] New: BitXor(Comparison, 1) where canBeInternal(Comparison) should be generated as an inverted comparison

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Dec 16 16:23:33 PST 2015


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

            Bug ID: 152367
           Summary: BitXor(Comparison, 1) where canBeInternal(Comparison)
                    should be generated as an inverted comparison
    Classification: Unclassified
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: All
                OS: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: fpizlo at apple.com

This is relevant for float comparisons. Some of them will start as something like:

Equal(EqualOrUnordered(left, right), 0)

Then we will canonicalize this to:

BitXor(EqualOrUnordered(left, right), 1)

But then the code generator will emit the BitXor separately, so we'll have some nasty code to perform the comparison followed by a xor.  That's goofy.

Note that this problem goes away if we also do branch fusion. For example both of these are fine:

Branch(BitXor(EqualOrUnordered(left, right), 1))
Check(BitXor(EqualOrUnordered(left, right), 1))

We won't see the Branch case because of strength reduction, but we will see the Check case, and that's OK - we'll chew through the BitXor.

-- 
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/20151217/fff2ceaf/attachment.html>


More information about the webkit-unassigned mailing list