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