Title: [205166] trunk/Source/_javascript_Core
- Revision
- 205166
- Author
- commit-qu...@webkit.org
- Date
- 2016-08-29 18:48:10 -0700 (Mon, 29 Aug 2016)
Log Message
[JSC] Clean up FTL Capabilities for CompareEq
https://bugs.webkit.org/show_bug.cgi?id=161353
Patch by Benjamin Poulain <bpoul...@apple.com> on 2016-08-29
Reviewed by Geoffrey Garen.
It looks like we already have code for every case.
This patch removes the tests from FTLCapabilities
and move the generic case last as usual.
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareEq):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (205165 => 205166)
--- trunk/Source/_javascript_Core/ChangeLog 2016-08-30 01:16:42 UTC (rev 205165)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-08-30 01:48:10 UTC (rev 205166)
@@ -1,3 +1,19 @@
+2016-08-29 Benjamin Poulain <bpoul...@apple.com>
+
+ [JSC] Clean up FTL Capabilities for CompareEq
+ https://bugs.webkit.org/show_bug.cgi?id=161353
+
+ Reviewed by Geoffrey Garen.
+
+ It looks like we already have code for every case.
+ This patch removes the tests from FTLCapabilities
+ and move the generic case last as usual.
+
+ * ftl/FTLCapabilities.cpp:
+ (JSC::FTL::canCompile):
+ * ftl/FTLLowerDFGToB3.cpp:
+ (JSC::FTL::DFG::LowerDFGToB3::compileCompareEq):
+
2016-08-29 Keith Miller <keith_mil...@apple.com>
Fix toStringName for Proxies and add support for normal instances
Modified: trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp (205165 => 205166)
--- trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2016-08-30 01:16:42 UTC (rev 205165)
+++ trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2016-08-30 01:48:10 UTC (rev 205166)
@@ -245,6 +245,7 @@
case ResolveScope:
case GetDynamicVar:
case PutDynamicVar:
+ case CompareEq:
case CompareEqPtr:
case CompareStrictEq:
// These are OK.
@@ -363,32 +364,6 @@
return CannotCompile;
}
break;
- case CompareEq:
- if (node->isBinaryUseKind(Int32Use))
- break;
- if (node->isBinaryUseKind(Int52RepUse))
- break;
- if (node->isBinaryUseKind(DoubleRepUse))
- break;
- if (node->isBinaryUseKind(StringIdentUse))
- break;
- if (node->isBinaryUseKind(StringUse))
- break;
- if (node->isBinaryUseKind(SymbolUse))
- break;
- if (node->isBinaryUseKind(ObjectUse))
- break;
- if (node->isBinaryUseKind(UntypedUse))
- break;
- if (node->isBinaryUseKind(BooleanUse))
- break;
- if (node->isBinaryUseKind(ObjectUse, ObjectOrOtherUse))
- break;
- if (node->isBinaryUseKind(ObjectOrOtherUse, ObjectUse))
- break;
- if (node->child1().useKind() == OtherUse || node->child2().useKind() == OtherUse)
- break;
- return CannotCompile;
case CompareLess:
case CompareLessEq:
case CompareGreater:
Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp (205165 => 205166)
--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp 2016-08-30 01:16:42 UTC (rev 205165)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp 2016-08-30 01:48:10 UTC (rev 205166)
@@ -4998,15 +4998,6 @@
compareEqObjectOrOtherToObject(m_node->child1(), m_node->child2());
return;
}
-
- if (m_node->isBinaryUseKind(UntypedUse)) {
- nonSpeculativeCompare(
- [&] (LValue left, LValue right) {
- return m_out.equal(left, right);
- },
- operationCompareEq);
- return;
- }
if (m_node->child1().useKind() == OtherUse) {
ASSERT(!m_interpreter.needsTypeCheck(m_node->child1(), SpecOther));
@@ -5020,7 +5011,12 @@
return;
}
- DFG_CRASH(m_graph, m_node, "Bad use kinds");
+ DFG_ASSERT(m_graph, m_node, m_node->isBinaryUseKind(UntypedUse));
+ nonSpeculativeCompare(
+ [&] (LValue left, LValue right) {
+ return m_out.equal(left, right);
+ },
+ operationCompareEq);
}
void compileCompareStrictEq()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes