summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-07-17 06:43:20 +0000
committerChris Lattner <sabre@nondot.org>2004-07-17 06:43:20 +0000
commit2e8690bf571bb393ebe9cf3587e45516b4efb87f (patch)
tree23a49efca4215757b85a041180445ae76aaf2d8e /llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
parenteed1a6f3dc3b419044dc0b5abc108164639b95ad (diff)
downloadbcm5719-llvm-2e8690bf571bb393ebe9cf3587e45516b4efb87f.tar.gz
bcm5719-llvm-2e8690bf571bb393ebe9cf3587e45516b4efb87f.zip
Print modref information in a useful way.
llvm-svn: 14907
Diffstat (limited to 'llvm/lib/Analysis/AliasAnalysisEvaluator.cpp')
-rw-r--r--llvm/lib/Analysis/AliasAnalysisEvaluator.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp b/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
index f30ea43096d..f3b4ebae9c5 100644
--- a/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
+++ b/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
@@ -81,6 +81,16 @@ static inline void PrintResults(const char *Msg, bool P, Value *V1, Value *V2,
}
}
+static inline void
+PrintModRefResults(const char *Msg, bool P, Instruction *I, Value *Ptr,
+ Module *M) {
+ if (P) {
+ std::cerr << " " << Msg << ": Ptr: ";
+ WriteAsOperand(std::cerr, Ptr, true, true, M);
+ std::cerr << "\t<->" << *I;
+ }
+}
+
bool AAEval::runOnFunction(Function &F) {
AliasAnalysis &AA = getAnalysis<AliasAnalysis>();
@@ -133,16 +143,16 @@ bool AAEval::runOnFunction(Function &F) {
Instruction *I = C->getInstruction();
switch (AA.getModRefInfo(*C, *V, (*V)->getType()->getPrimitiveSize())) {
case AliasAnalysis::NoModRef:
- PrintResults("NoModRef", PrintNoModRef, I, *V, F.getParent());
+ PrintModRefResults("NoModRef", PrintNoModRef, I, *V, F.getParent());
++NoModRef; break;
case AliasAnalysis::Mod:
- PrintResults("Mod", PrintMod, I, *V, F.getParent());
+ PrintModRefResults(" Mod", PrintMod, I, *V, F.getParent());
++Mod; break;
case AliasAnalysis::Ref:
- PrintResults("Ref", PrintRef, I, *V, F.getParent());
+ PrintModRefResults(" Ref", PrintRef, I, *V, F.getParent());
++Ref; break;
case AliasAnalysis::ModRef:
- PrintResults("ModRef", PrintModRef, I, *V, F.getParent());
+ PrintModRefResults(" ModRef", PrintModRef, I, *V, F.getParent());
++ModRef; break;
default:
std::cerr << "Unknown alias query result!\n";
OpenPOWER on IntegriCloud