Index: src/compiler/typer.cc |
diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc |
index 316a4090cfc74b00b5bfbd953b283bc6c26796e4..e32c6495c0c5a5c1e3e1d0841ebde969874684f8 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" |
@@ -318,7 +320,7 @@ void Typer::Run(const NodeVector& roots, |
graph_reducer.ReduceGraph(); |
if (induction_vars != nullptr) { |
- induction_vars->ChangeFromInductionVariablePhis(); |
+ induction_vars->ChangeToPhisAndInsertSigmas(); |
} |
} |
@@ -823,6 +825,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"; |
@@ -893,6 +896,11 @@ Type* Typer::Visitor::TypeProjection(Node* node) { |
return Type::Any(); |
} |
+Type* Typer::Visitor::TypeSigma(Node* node) { |
+ Type* const type = Operand(node, 0); |
+ return typer_->operation_typer()->TypeSigma(node->op(), type); |
+} |
+ |
Type* Typer::Visitor::TypeDead(Node* node) { return Type::None(); } |
// JS comparison operators. |