Induction variables must be phi nodes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1402 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2001-12-03 17:27:42 +00:00
parent f60dc88b3d
commit df89f6efbc
3 changed files with 12 additions and 14 deletions
+4 -5
View File
@@ -59,15 +59,14 @@ InductionVariable::Classify(const Value *Start, const Value *Step,
// Create an induction variable for the specified value. If it is a PHI, and
// if it's recognizable, classify it and fill in instance variables.
//
InductionVariable::InductionVariable(Instruction *V, cfg::LoopInfo *LoopInfo) {
InductionVariable::InductionVariable(PHINode *P, cfg::LoopInfo *LoopInfo) {
InductionType = Unknown; // Assume the worst
Phi = P;
// If this instruction is not a PHINode, it can't be an induction variable.
// Also, if the PHI node has more than two predecessors, we don't know how to
// If the PHI node has more than two predecessors, we don't know how to
// handle it.
//
Phi = dyn_cast<PHINode>(V);
if (!Phi || Phi->getNumIncomingValues() != 2) return;
if (Phi->getNumIncomingValues() != 2) return;
// If we have loop information, make sure that this PHI node is in the header
// of a loop...