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

Reply via email to