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.