#include "src/compiler/loop-variable-optimizer.h"
#include "src/compiler/common-operator.h"
#include "src/compiler/graph.h"
#include "src/compiler/node-marker.h"
#include "src/compiler/node-properties.h"
#include "src/compiler/node.h"
#include "src/zone/zone-containers.h"
#include "src/zone/zone.h"
namespace v8 {
namespace internal {
namespace compiler {
#define TRACE …
LoopVariableOptimizer::LoopVariableOptimizer(Graph* graph,
CommonOperatorBuilder* common,
Zone* zone)
: … { … }
void LoopVariableOptimizer::Run() { … }
void InductionVariable::AddUpperBound(Node* bound,
InductionVariable::ConstraintKind kind) { … }
void InductionVariable::AddLowerBound(Node* bound,
InductionVariable::ConstraintKind kind) { … }
void LoopVariableOptimizer::VisitBackedge(Node* from, Node* loop) { … }
void LoopVariableOptimizer::VisitNode(Node* node) { … }
void LoopVariableOptimizer::VisitMerge(Node* node) { … }
void LoopVariableOptimizer::VisitLoop(Node* node) { … }
void LoopVariableOptimizer::VisitIf(Node* node, bool polarity) { … }
void LoopVariableOptimizer::AddCmpToLimits(
VariableLimits* limits, Node* node, InductionVariable::ConstraintKind kind,
bool polarity) { … }
void LoopVariableOptimizer::VisitStart(Node* node) { … }
void LoopVariableOptimizer::VisitLoopExit(Node* node) { … }
void LoopVariableOptimizer::VisitOtherControl(Node* node) { … }
void LoopVariableOptimizer::TakeConditionsFromFirstControl(Node* node) { … }
const InductionVariable* LoopVariableOptimizer::FindInductionVariable(
Node* node) { … }
InductionVariable* LoopVariableOptimizer::TryGetInductionVariable(Node* phi) { … }
void LoopVariableOptimizer::DetectInductionVariables(Node* loop) { … }
void LoopVariableOptimizer::ChangeToInductionVariablePhis() { … }
void LoopVariableOptimizer::ChangeToPhisAndInsertGuards() { … }
#undef TRACE
}
}
}