| Index: src/compiler/typer.cc
|
| diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc
|
| index a4e3c64911f08fd4b58c73b3dcd7f31cb9964feb..d864ea8bae74b5420ffb9866ba83a9051275f4c7 100644
|
| --- a/src/compiler/typer.cc
|
| +++ b/src/compiler/typer.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "src/compiler/typer.h"
|
|
|
| +#include <iomanip>
|
| +
|
| #include "src/base/flags.h"
|
| #include "src/bootstrapper.h"
|
| #include "src/compiler/common-operator.h"
|
| @@ -337,7 +339,7 @@ void Typer::Run(const NodeVector& roots,
|
| graph_reducer.ReduceGraph();
|
|
|
| if (induction_vars != nullptr) {
|
| - induction_vars->ChangeFromInductionVariablePhis();
|
| + induction_vars->ChangeToPhisAndInsertGuards();
|
| }
|
| }
|
|
|
| @@ -695,6 +697,7 @@ Type* Typer::Visitor::TypeInductionVariablePhi(Node* node) {
|
| }
|
| if (FLAG_trace_turbo_loop) {
|
| OFStream os(stdout);
|
| + os << std::setprecision(10);
|
| os << "Loop (" << NodeProperties::GetControlInput(node)->id()
|
| << ") variable bounds for phi " << node->id() << ": (" << min << ", "
|
| << max << ")\n";
|
| @@ -765,6 +768,11 @@ Type* Typer::Visitor::TypeProjection(Node* node) {
|
| return Type::Any();
|
| }
|
|
|
| +Type* Typer::Visitor::TypeTypeGuard(Node* node) {
|
| + Type* const type = Operand(node, 0);
|
| + return typer_->operation_typer()->TypeTypeGuard(node->op(), type);
|
| +}
|
| +
|
| Type* Typer::Visitor::TypeDead(Node* node) { return Type::None(); }
|
|
|
| // JS comparison operators.
|
|
|