Title: [149900] branches/dfgFourthTier/Source/_javascript_Core
Revision
149900
Author
[email protected]
Date
2013-05-10 12:12:30 -0700 (Fri, 10 May 2013)

Log Message

fourthTier: FTL should support CompareStrictEq
https://bugs.webkit.org/show_bug.cgi?id=115927

Reviewed by Mark Hahnenberg.
        
Do the sensible thing, and make it so that for common cases, CompareEq is
implemented in terms of CompareStrictEq in the FTL backend. All of the cases
we currently support can be done this way.

* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileCompareEq):
(LowerDFGToLLVM):
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):

Modified Paths

Diff

Modified: branches/dfgFourthTier/Source/_javascript_Core/ChangeLog (149899 => 149900)


--- branches/dfgFourthTier/Source/_javascript_Core/ChangeLog	2013-05-10 19:10:01 UTC (rev 149899)
+++ branches/dfgFourthTier/Source/_javascript_Core/ChangeLog	2013-05-10 19:12:30 UTC (rev 149900)
@@ -1,5 +1,24 @@
 2013-05-10  Filip Pizlo  <[email protected]>
 
+        fourthTier: FTL should support CompareStrictEq
+        https://bugs.webkit.org/show_bug.cgi?id=115927
+
+        Reviewed by Mark Hahnenberg.
+        
+        Do the sensible thing, and make it so that for common cases, CompareEq is
+        implemented in terms of CompareStrictEq in the FTL backend. All of the cases
+        we currently support can be done this way.
+
+        * ftl/FTLCapabilities.cpp:
+        (JSC::FTL::canCompile):
+        * ftl/FTLLowerDFGToLLVM.cpp:
+        (JSC::FTL::LowerDFGToLLVM::compileNode):
+        (JSC::FTL::LowerDFGToLLVM::compileCompareEq):
+        (LowerDFGToLLVM):
+        (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
+
+2013-05-10  Filip Pizlo  <[email protected]>
+
         fourthTier: FTL should support Int32ToDouble
         https://bugs.webkit.org/show_bug.cgi?id=115926
 

Modified: branches/dfgFourthTier/Source/_javascript_Core/ftl/FTLCapabilities.cpp (149899 => 149900)


--- branches/dfgFourthTier/Source/_javascript_Core/ftl/FTLCapabilities.cpp	2013-05-10 19:10:01 UTC (rev 149899)
+++ branches/dfgFourthTier/Source/_javascript_Core/ftl/FTLCapabilities.cpp	2013-05-10 19:12:30 UTC (rev 149900)
@@ -130,6 +130,7 @@
                 }
                 break;
             case CompareEq:
+            case CompareStrictEq:
                 if (node->isBinaryUseKind(Int32Use))
                     break;
                 if (node->isBinaryUseKind(NumberUse))

Modified: branches/dfgFourthTier/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (149899 => 149900)


--- branches/dfgFourthTier/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2013-05-10 19:10:01 UTC (rev 149899)
+++ branches/dfgFourthTier/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2013-05-10 19:12:30 UTC (rev 149900)
@@ -364,6 +364,9 @@
         case CompareEq:
             compileCompareEq();
             break;
+        case CompareStrictEq:
+            compileCompareStrictEq();
+            break;
         case CompareLess:
             compileCompareLess();
             break;
@@ -952,6 +955,18 @@
     
     void compileCompareEq()
     {
+        if (m_node->isBinaryUseKind(Int32Use)
+            || m_node->isBinaryUseKind(NumberUse)
+            || m_node->isBinaryUseKind(ObjectUse)) {
+            compileCompareStrictEq();
+            return;
+        }
+        
+        RELEASE_ASSERT_NOT_REACHED();
+    }
+    
+    void compileCompareStrictEq()
+    {
         if (m_node->isBinaryUseKind(Int32Use)) {
             m_booleanValues.add(
                 m_node,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to