Source/JavaScriptCore/ChangeLog

 12013-05-10 Filip Pizlo <fpizlo@apple.com>
 2
 3 fourthTier: FTL should support CompareStrictEq
 4 https://bugs.webkit.org/show_bug.cgi?id=115927
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Do the sensible thing, and make it so that for common cases, CompareEq is
 9 implemented in terms of CompareStrictEq in the FTL backend. All of the cases
 10 we currently support can be done this way.
 11
 12 * ftl/FTLCapabilities.cpp:
 13 (JSC::FTL::canCompile):
 14 * ftl/FTLLowerDFGToLLVM.cpp:
 15 (JSC::FTL::LowerDFGToLLVM::compileNode):
 16 (JSC::FTL::LowerDFGToLLVM::compileCompareEq):
 17 (LowerDFGToLLVM):
 18 (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
 19
1202013-05-10 Filip Pizlo <fpizlo@apple.com>
221
322 fourthTier: FTL should support Int32ToDouble
149898

Source/JavaScriptCore/ftl/FTLCapabilities.cpp

@@bool canCompile(Graph& graph)
130130 }
131131 break;
132132 case CompareEq:
 133 case CompareStrictEq:
133134 if (node->isBinaryUseKind(Int32Use))
134135 break;
135136 if (node->isBinaryUseKind(NumberUse))
149898

Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp

@@private:
364364 case CompareEq:
365365 compileCompareEq();
366366 break;
 367 case CompareStrictEq:
 368 compileCompareStrictEq();
 369 break;
367370 case CompareLess:
368371 compileCompareLess();
369372 break;

@@private:
952955
953956 void compileCompareEq()
954957 {
 958 if (m_node->isBinaryUseKind(Int32Use)
 959 || m_node->isBinaryUseKind(NumberUse)
 960 || m_node->isBinaryUseKind(ObjectUse)) {
 961 compileCompareStrictEq();
 962 return;
 963 }
 964
 965 RELEASE_ASSERT_NOT_REACHED();
 966 }
 967
 968 void compileCompareStrictEq()
 969 {
955970 if (m_node->isBinaryUseKind(Int32Use)) {
956971 m_booleanValues.add(
957972 m_node,
149898