Title: [194594] trunk/Source/_javascript_Core
- Revision
- 194594
- Author
- [email protected]
- Date
- 2016-01-05 11:42:16 -0800 (Tue, 05 Jan 2016)
Log Message
Implement B3 version of FTL::Output::check()
https://bugs.webkit.org/show_bug.cgi?id=152743
Reviewed by Geoffrey Garen.
Turns out this was just like the LLVM version.
* ftl/FTLB3Output.cpp:
(JSC::FTL::Output::branch):
(JSC::FTL::Output::check):
* ftl/FTLB3Output.h:
(JSC::FTL::Output::switchInstruction):
(JSC::FTL::Output::check): Deleted.
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (194593 => 194594)
--- trunk/Source/_javascript_Core/ChangeLog 2016-01-05 19:38:13 UTC (rev 194593)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-01-05 19:42:16 UTC (rev 194594)
@@ -1,3 +1,19 @@
+2016-01-05 Filip Pizlo <[email protected]>
+
+ Implement B3 version of FTL::Output::check()
+ https://bugs.webkit.org/show_bug.cgi?id=152743
+
+ Reviewed by Geoffrey Garen.
+
+ Turns out this was just like the LLVM version.
+
+ * ftl/FTLB3Output.cpp:
+ (JSC::FTL::Output::branch):
+ (JSC::FTL::Output::check):
+ * ftl/FTLB3Output.h:
+ (JSC::FTL::Output::switchInstruction):
+ (JSC::FTL::Output::check): Deleted.
+
2016-01-05 Mark Lam <[email protected]>
Add support for aliasing JSC Options.
Modified: trunk/Source/_javascript_Core/ftl/FTLB3Output.cpp (194593 => 194594)
--- trunk/Source/_javascript_Core/ftl/FTLB3Output.cpp 2016-01-05 19:38:13 UTC (rev 194593)
+++ trunk/Source/_javascript_Core/ftl/FTLB3Output.cpp 2016-01-05 19:42:16 UTC (rev 194594)
@@ -210,6 +210,18 @@
FrequentedBlock(notTaken, notTakenWeight.frequencyClass()));
}
+void Output::check(LValue condition, WeightedTarget taken, Weight notTakenWeight)
+{
+ LBasicBlock continuation = FTL_NEW_BLOCK(*this, ("Output::check continuation"));
+ branch(condition, taken, WeightedTarget(continuation, notTakenWeight));
+ appendTo(continuation);
+}
+
+void Output::check(LValue condition, WeightedTarget taken)
+{
+ check(condition, taken, taken.weight().inverse());
+}
+
} } // namespace JSC::FTL
#endif // FTL_USES_B3
Modified: trunk/Source/_javascript_Core/ftl/FTLB3Output.h (194593 => 194594)
--- trunk/Source/_javascript_Core/ftl/FTLB3Output.h 2016-01-05 19:38:13 UTC (rev 194593)
+++ trunk/Source/_javascript_Core/ftl/FTLB3Output.h 2016-01-05 19:42:16 UTC (rev 194594)
@@ -389,11 +389,11 @@
// Branches to an already-created handler if true, "falls through" if false. Fall-through is
// simulated by creating a continuation for you.
- void check(LValue condition, WeightedTarget taken, Weight notTakenWeight) { CRASH(); }
-
+ void check(LValue condition, WeightedTarget taken, Weight notTakenWeight);
+
// Same as check(), but uses Weight::inverse() to compute the notTakenWeight.
- void check(LValue condition, WeightedTarget taken) { CRASH(); }
-
+ void check(LValue condition, WeightedTarget taken);
+
template<typename VectorType>
void switchInstruction(LValue value, const VectorType& cases, LBasicBlock fallThrough, Weight fallThroughWeight)
{
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes