diff options
author | Chris Lattner <sabre@nondot.org> | 2004-07-17 06:28:49 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-07-17 06:28:49 +0000 |
commit | 0e872cb4707cbfc260279132e290ed595e47d2cd (patch) | |
tree | f4366ed50d56682ff5801194de35167ebda27936 /lib/Analysis/AliasAnalysisEvaluator.cpp | |
parent | bc10c3b6c323e78ca470f25c48f62f4d0b0a35fb (diff) |
Cleanups: fold two loops into one
New features: -print-all-alias-modref-info option, print more info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14906 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/AliasAnalysisEvaluator.cpp')
-rw-r--r-- | lib/Analysis/AliasAnalysisEvaluator.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/Analysis/AliasAnalysisEvaluator.cpp b/lib/Analysis/AliasAnalysisEvaluator.cpp index e5ac43658b..f30ea43096 100644 --- a/lib/Analysis/AliasAnalysisEvaluator.cpp +++ b/lib/Analysis/AliasAnalysisEvaluator.cpp @@ -32,6 +32,8 @@ using namespace llvm; namespace { + cl::opt<bool> PrintAll("print-all-alias-modref-info", cl::ReallyHidden); + cl::opt<bool> PrintNoAlias("print-no-aliases", cl::ReallyHidden); cl::opt<bool> PrintMayAlias("print-may-aliases", cl::ReallyHidden); cl::opt<bool> PrintMustAlias("print-must-aliases", cl::ReallyHidden); @@ -54,6 +56,11 @@ namespace { bool doInitialization(Module &M) { NoAlias = MayAlias = MustAlias = 0; NoModRef = Mod = Ref = ModRef = 0; + + if (PrintAll) { + PrintNoAlias = PrintMayAlias = PrintMustAlias = true; + PrintNoModRef = PrintMod = PrintRef = PrintModRef = true; + } return false; } @@ -90,16 +97,15 @@ bool AAEval::runOnFunction(Function &F) { for (User::op_iterator OI = (*I).op_begin(); OI != (*I).op_end(); ++OI) if (isa<PointerType>((*OI)->getType())) Pointers.insert(*OI); - } - for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I) { CallSite CS = CallSite::get(&*I); if (CS.getInstruction()) CallSites.insert(CS); } if (PrintNoAlias || PrintMayAlias || PrintMustAlias || PrintNoModRef || PrintMod || PrintRef || PrintModRef) - std::cerr << "Function: " << F.getName() << "\n"; + std::cerr << "Function: " << F.getName() << ": " << Pointers.size() + << " pointers, " << CallSites.size() << " call sites\n"; // iterate over the worklist, and run the full (n^2)/2 disambiguations for (std::set<Value *>::iterator I1 = Pointers.begin(), E = Pointers.end(); |