Title: [157293] trunk/Source/_javascript_Core
- Revision
- 157293
- Author
- [email protected]
- Date
- 2013-10-10 23:37:33 -0700 (Thu, 10 Oct 2013)
Log Message
FTL shouldn't pass i1's into llvm.webkit.stackmap's
https://bugs.webkit.org/show_bug.cgi?id=122629
<rdar://problem/15203037>
Reviewed by Sam Weinig and Nadav Rotem.
LLVM's stackmap support requires that we only pass operands with legal types (i.e. types
that are hardware-representable). i1, which the FTL previously used for Booleans, is not
legal.
We have two options: either add support in LLVM to legalize stackmap operands, or add
support to the FTL to legalize stackmap operands. It's easier to fix this in FTL, and
that's what this patch does.
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::addExitArgumentForNode):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (157292 => 157293)
--- trunk/Source/_javascript_Core/ChangeLog 2013-10-11 06:18:44 UTC (rev 157292)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-10-11 06:37:33 UTC (rev 157293)
@@ -1,3 +1,22 @@
+2013-10-10 Filip Pizlo <[email protected]>
+
+ FTL shouldn't pass i1's into llvm.webkit.stackmap's
+ https://bugs.webkit.org/show_bug.cgi?id=122629
+ <rdar://problem/15203037>
+
+ Reviewed by Sam Weinig and Nadav Rotem.
+
+ LLVM's stackmap support requires that we only pass operands with legal types (i.e. types
+ that are hardware-representable). i1, which the FTL previously used for Booleans, is not
+ legal.
+
+ We have two options: either add support in LLVM to legalize stackmap operands, or add
+ support to the FTL to legalize stackmap operands. It's easier to fix this in FTL, and
+ that's what this patch does.
+
+ * ftl/FTLLowerDFGToLLVM.cpp:
+ (JSC::FTL::LowerDFGToLLVM::addExitArgumentForNode):
+
2013-10-09 Oliver Hunt <[email protected]>
Further improve ArrayIterator performance
Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (157292 => 157293)
--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-10-11 06:18:44 UTC (rev 157292)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-10-11 06:37:33 UTC (rev 157293)
@@ -3442,7 +3442,12 @@
value = m_booleanValues.get(node);
if (isValid(value)) {
- addExitArgument(exit, arguments, index, ValueFormatBoolean, value.value());
+ LValue valueToPass;
+ if (Options::ftlOSRExitUsesStackmap())
+ valueToPass = m_out.zeroExt(value.value(), m_out.int32);
+ else
+ valueToPass = value.value();
+ addExitArgument(exit, arguments, index, ValueFormatBoolean, valueToPass);
return;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes