Title: [278476] trunk/Source/_javascript_Core
Revision
278476
Author
fpi...@apple.com
Date
2021-06-04 11:14:46 -0700 (Fri, 04 Jun 2021)

Log Message

Don't emit the NotDouble checks if we're already NotDouble.

Rubber stamped by Saam Barati.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::speculateNotDouble):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::speculateNotDouble):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (278475 => 278476)


--- trunk/Source/_javascript_Core/ChangeLog	2021-06-04 18:02:04 UTC (rev 278475)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-06-04 18:14:46 UTC (rev 278476)
@@ -1,3 +1,14 @@
+2021-06-04  Filip Pizlo  <fpi...@apple.com>
+
+        Don't emit the NotDouble checks if we're already NotDouble.
+
+        Rubber stamped by Saam Barati.
+
+        * dfg/DFGSpeculativeJIT.cpp:
+        (JSC::DFG::SpeculativeJIT::speculateNotDouble):
+        * ftl/FTLLowerDFGToB3.cpp:
+        (JSC::FTL::DFG::LowerDFGToB3::speculateNotDouble):
+
 2021-06-04  Mark Lam  <mark....@apple.com>
 
         Placate exception checker validation in objectPrototypeHasOwnProperty.

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (278475 => 278476)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2021-06-04 18:02:04 UTC (rev 278475)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2021-06-04 18:14:46 UTC (rev 278476)
@@ -11434,6 +11434,9 @@
 
 void SpeculativeJIT::speculateNotDouble(Edge edge)
 {
+    if (!needsTypeCheck(edge, ~SpecFullDouble))
+        return;
+    
     JSValueOperand operand(this, edge, ManualOperandSpeculation);
     GPRTemporary temp(this);
     JSValueRegs regs = operand.jsValueRegs();

Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp (278475 => 278476)


--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp	2021-06-04 18:02:04 UTC (rev 278475)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp	2021-06-04 18:14:46 UTC (rev 278476)
@@ -18453,6 +18453,9 @@
 
     void speculateNotDouble(Edge edge)
     {
+        if (!m_interpreter.needsTypeCheck(edge))
+            return;
+    
         LValue value = lowJSValue(edge, ManualOperandSpeculation);
         
         LBasicBlock isNotInt32 = m_out.newBlock();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to