diff options
author | Andreas Bolka <a@bolka.at> | 2009-07-28 19:50:13 +0000 |
---|---|---|
committer | Andreas Bolka <a@bolka.at> | 2009-07-28 19:50:13 +0000 |
commit | c3cc45aa8be036412726ccd02d8a6496652eac2b (patch) | |
tree | 6f87f6f209595349eadf58447827ce27793c3338 /lib/Analysis/LoopDependenceAnalysis.cpp | |
parent | 328fb3d2107e7480826fbb4e3b0a8dae9f996f08 (diff) |
Simplify LDA-internal interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77359 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/LoopDependenceAnalysis.cpp')
-rw-r--r-- | lib/Analysis/LoopDependenceAnalysis.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/lib/Analysis/LoopDependenceAnalysis.cpp b/lib/Analysis/LoopDependenceAnalysis.cpp index 97ac3886e2..78c3975b6d 100644 --- a/lib/Analysis/LoopDependenceAnalysis.cpp +++ b/lib/Analysis/LoopDependenceAnalysis.cpp @@ -116,18 +116,15 @@ bool LoopDependenceAnalysis::findOrInsertDependencePair(Value *A, return false; } -void LoopDependenceAnalysis::analysePair(DependencePair *P) const { +LoopDependenceAnalysis::DependenceResult +LoopDependenceAnalysis::analysePair(DependencePair *P) const { DEBUG(errs() << "Analysing:\n" << *P->A << "\n" << *P->B << "\n"); - // Our default answer: we don't know anything, i.e. we failed to analyse this - // pair to get a more specific answer (dependent, independent). - P->Result = Unknown; - // We only analyse loads and stores but no possible memory accesses by e.g. // free, call, or invoke instructions. if (!IsLoadOrStoreInst(P->A) || !IsLoadOrStoreInst(P->B)) { DEBUG(errs() << "--> [?] no load/store\n"); - return; + return Unknown; } Value *aPtr = GetPointerOperand(P->A); @@ -137,20 +134,20 @@ void LoopDependenceAnalysis::analysePair(DependencePair *P) const { case AliasAnalysis::MayAlias: // We can not analyse objects if we do not know about their aliasing. DEBUG(errs() << "---> [?] may alias\n"); - return; + return Unknown; case AliasAnalysis::NoAlias: // If the objects noalias, they are distinct, accesses are independent. DEBUG(errs() << "---> [I] no alias\n"); - P->Result = Independent; - return; + return Independent; case AliasAnalysis::MustAlias: break; // The underlying objects alias, test accesses for dependence. } + // We failed to analyse this pair to get a more specific answer. DEBUG(errs() << "---> [?] cannot analyse\n"); - return; + return Unknown; } bool LoopDependenceAnalysis::depends(Value *A, Value *B) { @@ -161,8 +158,7 @@ bool LoopDependenceAnalysis::depends(Value *A, Value *B) { if (!findOrInsertDependencePair(A, B, p)) { // The pair is not cached, so analyse it. ++NumAnalysed; - analysePair(p); - switch (p->Result) { + switch (p->Result = analysePair(p)) { case Dependent: ++NumDependent; break; case Independent: ++NumIndependent; break; case Unknown: ++NumUnknown; break; |