aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/InductionVariable.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-07-27 01:12:17 +0000
committerChris Lattner <sabre@nondot.org>2002-07-27 01:12:17 +0000
commita59cbb2043c08f3cfb8fb379f0d336e21e070be8 (patch)
tree19ace2fcd6b60628e49d6c65ca1015cbff960916 /lib/Analysis/InductionVariable.cpp
parent97f51a3024a72ef8500e95b90e6361e6783160fd (diff)
* Standardize how analysis results/passes as printed with the print() virtual
methods * Eliminate AnalysisID: Now it is just a typedef for const PassInfo* * Simplify how AnalysisID's are initialized * Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into the analyses themselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3116 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/InductionVariable.cpp')
-rw-r--r--lib/Analysis/InductionVariable.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/Analysis/InductionVariable.cpp b/lib/Analysis/InductionVariable.cpp
index f7b72e5b9c..485586a018 100644
--- a/lib/Analysis/InductionVariable.cpp
+++ b/lib/Analysis/InductionVariable.cpp
@@ -23,6 +23,7 @@
#include "llvm/InstrTypes.h"
#include "llvm/Type.h"
#include "llvm/Constants.h"
+#include "llvm/Assembly/Writer.h"
using analysis::ExprType;
@@ -154,3 +155,24 @@ InductionVariable::InductionVariable(PHINode *P, LoopInfo *LoopInfo) {
// Classify the induction variable type now...
InductionType = InductionVariable::Classify(Start, Step, L);
}
+
+void InductionVariable::print(std::ostream &o) const {
+ switch (InductionType) {
+ case InductionVariable::Cannonical: o << "Cannonical "; break;
+ case InductionVariable::SimpleLinear: o << "SimpleLinear "; break;
+ case InductionVariable::Linear: o << "Linear "; break;
+ case InductionVariable::Unknown: o << "Unrecognized "; break;
+ }
+ o << "Induction Variable";
+ if (Phi) {
+ WriteAsOperand(o, Phi);
+ o << ":\n" << Phi;
+ } else {
+ o << "\n";
+ }
+ if (InductionType == InductionVariable::Unknown) return;
+
+ o << " Start ="; WriteAsOperand(o, Start);
+ o << " Step =" ; WriteAsOperand(o, Step);
+ o << "\n";
+}