Revision: 24918
Author:   [email protected]
Date:     Tue Oct 28 08:33:03 2014 UTC
Log:      [turbofan] Turn slow case for stack check into deferred code.

[email protected]

Review URL: https://codereview.chromium.org/687473002
https://code.google.com/p/v8/source/detail?r=24918

Modified:
 /branches/bleeding_edge/src/compiler/ast-graph-builder.cc
 /branches/bleeding_edge/src/compiler/control-builders.cc
 /branches/bleeding_edge/src/compiler/control-builders.h
 /branches/bleeding_edge/src/compiler/graph-builder.h

=======================================
--- /branches/bleeding_edge/src/compiler/ast-graph-builder.cc Mon Oct 27 12:39:20 2014 UTC +++ /branches/bleeding_edge/src/compiler/ast-graph-builder.cc Tue Oct 28 08:33:03 2014 UTC
@@ -2113,7 +2113,7 @@
               jsgraph()->ZeroConstant());
   Node* stack = NewNode(jsgraph()->machine()->LoadStackPointer());
   Node* tag = NewNode(jsgraph()->machine()->UintLessThan(), limit, stack);
-  stack_check.If(tag);
+  stack_check.If(tag, BranchHint::kTrue);
   stack_check.Then();
   stack_check.Else();
Node* guard = NewNode(javascript()->CallRuntime(Runtime::kStackGuard, 0));
=======================================
--- /branches/bleeding_edge/src/compiler/control-builders.cc Wed Jul 30 13:54:45 2014 UTC +++ /branches/bleeding_edge/src/compiler/control-builders.cc Tue Oct 28 08:33:03 2014 UTC
@@ -9,8 +9,8 @@
 namespace compiler {


-void IfBuilder::If(Node* condition) {
-  builder_->NewBranch(condition);
+void IfBuilder::If(Node* condition, BranchHint hint) {
+  builder_->NewBranch(condition, hint);
   else_environment_ = environment()->CopyForConditional();
 }

=======================================
--- /branches/bleeding_edge/src/compiler/control-builders.h Fri Oct 10 13:40:08 2014 UTC +++ /branches/bleeding_edge/src/compiler/control-builders.h Tue Oct 28 08:33:03 2014 UTC
@@ -14,7 +14,6 @@
 namespace internal {
 namespace compiler {

-
// Base class for all control builders. Also provides a common interface for // control builders to handle 'break' and 'continue' statements when they are
 // used to model breakable statements.
@@ -49,7 +48,7 @@
         else_environment_(NULL) {}

   // Primitive control commands.
-  void If(Node* condition);
+  void If(Node* condition, BranchHint hint = BranchHint::kNone);
   void Then();
   void Else();
   void End();
=======================================
--- /branches/bleeding_edge/src/compiler/graph-builder.h Mon Oct 27 10:12:16 2014 UTC +++ /branches/bleeding_edge/src/compiler/graph-builder.h Tue Oct 28 08:33:03 2014 UTC
@@ -99,8 +99,8 @@
   Node* NewIfFalse() { return NewNode(common()->IfFalse()); }
   Node* NewMerge() { return NewNode(common()->Merge(1), true); }
   Node* NewLoop() { return NewNode(common()->Loop(1), true); }
-  Node* NewBranch(Node* condition) {
-    return NewNode(common()->Branch(), condition);
+  Node* NewBranch(Node* condition, BranchHint hint = BranchHint::kNone) {
+    return NewNode(common()->Branch(hint), condition);
   }

  protected:

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to