|
LLVM
4.0.0
|
#include "llvm/Analysis/DependenceAnalysis.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/Statistic.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/Analysis/LoopInfo.h"#include "llvm/Analysis/ScalarEvolution.h"#include "llvm/Analysis/ScalarEvolutionExpressions.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/Module.h"#include "llvm/IR/Operator.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/raw_ostream.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "da" |
Functions | |
| STATISTIC (TotalArrayPairs,"Array pairs tested") | |
| STATISTIC (SeparableSubscriptPairs,"Separable subscript pairs") | |
| STATISTIC (CoupledSubscriptPairs,"Coupled subscript pairs") | |
| STATISTIC (NonlinearSubscriptPairs,"Nonlinear subscript pairs") | |
| STATISTIC (ZIVapplications,"ZIV applications") | |
| STATISTIC (ZIVindependence,"ZIV independence") | |
| STATISTIC (StrongSIVapplications,"Strong SIV applications") | |
| STATISTIC (StrongSIVsuccesses,"Strong SIV successes") | |
| STATISTIC (StrongSIVindependence,"Strong SIV independence") | |
| STATISTIC (WeakCrossingSIVapplications,"Weak-Crossing SIV applications") | |
| STATISTIC (WeakCrossingSIVsuccesses,"Weak-Crossing SIV successes") | |
| STATISTIC (WeakCrossingSIVindependence,"Weak-Crossing SIV independence") | |
| STATISTIC (ExactSIVapplications,"Exact SIV applications") | |
| STATISTIC (ExactSIVsuccesses,"Exact SIV successes") | |
| STATISTIC (ExactSIVindependence,"Exact SIV independence") | |
| STATISTIC (WeakZeroSIVapplications,"Weak-Zero SIV applications") | |
| STATISTIC (WeakZeroSIVsuccesses,"Weak-Zero SIV successes") | |
| STATISTIC (WeakZeroSIVindependence,"Weak-Zero SIV independence") | |
| STATISTIC (ExactRDIVapplications,"Exact RDIV applications") | |
| STATISTIC (ExactRDIVindependence,"Exact RDIV independence") | |
| STATISTIC (SymbolicRDIVapplications,"Symbolic RDIV applications") | |
| STATISTIC (SymbolicRDIVindependence,"Symbolic RDIV independence") | |
| STATISTIC (DeltaApplications,"Delta applications") | |
| STATISTIC (DeltaSuccesses,"Delta successes") | |
| STATISTIC (DeltaIndependence,"Delta independence") | |
| STATISTIC (DeltaPropagations,"Delta propagations") | |
| STATISTIC (GCDapplications,"GCD applications") | |
| STATISTIC (GCDsuccesses,"GCD successes") | |
| STATISTIC (GCDindependence,"GCD independence") | |
| STATISTIC (BanerjeeApplications,"Banerjee applications") | |
| STATISTIC (BanerjeeIndependence,"Banerjee independence") | |
| STATISTIC (BanerjeeSuccesses,"Banerjee successes") | |
| INITIALIZE_PASS_BEGIN (DependenceAnalysisWrapperPass,"da","Dependence Analysis", true, true) INITIALIZE_PASS_END(DependenceAnalysisWrapperPass | |
| static void | dumpExampleDependence (raw_ostream &OS, DependenceInfo *DA) |
| static AliasResult | underlyingObjectsAlias (AliasAnalysis *AA, const DataLayout &DL, const Value *A, const Value *B) |
| static bool | isLoadOrStore (const Instruction *I) |
| static Value * | getPointerOperand (Instruction *I) |
| static bool | findGCD (unsigned Bits, const APInt &AM, const APInt &BM, const APInt &Delta, APInt &G, APInt &X, APInt &Y) |
| static APInt | floorOfQuotient (const APInt &A, const APInt &B) |
| static APInt | ceilingOfQuotient (const APInt &A, const APInt &B) |
| static APInt | maxAPInt (APInt A, APInt B) |
| static APInt | minAPInt (APInt A, APInt B) |
| static bool | isRemainderZero (const SCEVConstant *Dividend, const SCEVConstant *Divisor) |
| static const SCEVConstant * | getConstantPart (const SCEV *Expr) |
| static void | dumpSmallBitVector (SmallBitVector &BV) |
Variables | |
| static cl::opt< bool > | Delinearize ("da-delinearize", cl::init(false), cl::Hidden, cl::ZeroOrMore, cl::desc("Try to delinearize array references.")) |
| da | |
| Dependence | Analysis |
| Dependence | true |
| #define DEBUG_TYPE "da" |
Definition at line 72 of file DependenceAnalysis.cpp.
Definition at line 1372 of file DependenceAnalysis.cpp.
References A, llvm::APInt::sdivrem(), llvm::APInt::sgt(), and llvm::APInt::slt().
|
static |
Definition at line 165 of file DependenceAnalysis.cpp.
References D, llvm::DependenceInfo::depends(), F, llvm::DependenceInfo::getFunction(), llvm::DependenceInfo::getSplitIteration(), llvm::inst_begin(), and llvm::inst_end().
Referenced by llvm::DependenceAnalysisWrapperPass::print().
|
static |
Definition at line 3266 of file DependenceAnalysis.cpp.
References llvm::dbgs(), llvm::SmallBitVector::find_first(), llvm::SmallBitVector::find_next(), and VI.
Referenced by llvm::DependenceInfo::depends().
|
static |
Definition at line 1329 of file DependenceAnalysis.cpp.
References llvm::APInt::abs(), llvm::dbgs(), DEBUG, llvm::APInt::sdiv(), llvm::APInt::sdivrem(), llvm::APInt::slt(), and llvm::APInt::srem().
Definition at line 1359 of file DependenceAnalysis.cpp.
References A, llvm::APInt::sdivrem(), llvm::APInt::sgt(), and llvm::APInt::slt().
|
static |
Definition at line 2221 of file DependenceAnalysis.cpp.
|
static |
Definition at line 647 of file DependenceAnalysis.cpp.
References llvm_unreachable, and SI.
Referenced by llvm::DependenceInfo::depends(), and llvm::DependenceInfo::getSplitIteration().
| INITIALIZE_PASS_BEGIN | ( | DependenceAnalysisWrapperPass | , |
| "da" | , | ||
| "Dependence Analysis" | , | ||
| true | , | ||
| true | |||
| ) |
|
static |
Definition at line 637 of file DependenceAnalysis.cpp.
References SI.
Referenced by llvm::DependenceInfo::depends(), and llvm::DependenceInfo::getSplitIteration().
|
static |
Definition at line 1583 of file DependenceAnalysis.cpp.
References llvm::SCEVConstant::getAPInt(), and llvm::APInt::srem().
Definition at line 1387 of file DependenceAnalysis.cpp.
References B, and llvm::APInt::sgt().
Definition at line 1393 of file DependenceAnalysis.cpp.
References B, and llvm::APInt::slt().
| STATISTIC | ( | TotalArrayPairs | , |
| "Array pairs tested" | |||
| ) |
| STATISTIC | ( | SeparableSubscriptPairs | , |
| "Separable subscript pairs" | |||
| ) |
| STATISTIC | ( | CoupledSubscriptPairs | , |
| "Coupled subscript pairs" | |||
| ) |
| STATISTIC | ( | NonlinearSubscriptPairs | , |
| "Nonlinear subscript pairs" | |||
| ) |
| STATISTIC | ( | ZIVapplications | , |
| "ZIV applications" | |||
| ) |
| STATISTIC | ( | ZIVindependence | , |
| "ZIV independence" | |||
| ) |
| STATISTIC | ( | StrongSIVapplications | , |
| "Strong SIV applications" | |||
| ) |
| STATISTIC | ( | StrongSIVsuccesses | , |
| "Strong SIV successes" | |||
| ) |
| STATISTIC | ( | StrongSIVindependence | , |
| "Strong SIV independence" | |||
| ) |
| STATISTIC | ( | WeakCrossingSIVapplications | , |
| "Weak-Crossing SIV applications" | |||
| ) |
| STATISTIC | ( | WeakCrossingSIVsuccesses | , |
| "Weak-Crossing SIV successes" | |||
| ) |
| STATISTIC | ( | WeakCrossingSIVindependence | , |
| "Weak-Crossing SIV independence" | |||
| ) |
| STATISTIC | ( | ExactSIVapplications | , |
| "Exact SIV applications" | |||
| ) |
| STATISTIC | ( | ExactSIVsuccesses | , |
| "Exact SIV successes" | |||
| ) |
| STATISTIC | ( | ExactSIVindependence | , |
| "Exact SIV independence" | |||
| ) |
| STATISTIC | ( | WeakZeroSIVapplications | , |
| "Weak-Zero SIV applications" | |||
| ) |
| STATISTIC | ( | WeakZeroSIVsuccesses | , |
| "Weak-Zero SIV successes" | |||
| ) |
| STATISTIC | ( | WeakZeroSIVindependence | , |
| "Weak-Zero SIV independence" | |||
| ) |
| STATISTIC | ( | ExactRDIVapplications | , |
| "Exact RDIV applications" | |||
| ) |
| STATISTIC | ( | ExactRDIVindependence | , |
| "Exact RDIV independence" | |||
| ) |
| STATISTIC | ( | SymbolicRDIVapplications | , |
| "Symbolic RDIV applications" | |||
| ) |
| STATISTIC | ( | SymbolicRDIVindependence | , |
| "Symbolic RDIV independence" | |||
| ) |
| STATISTIC | ( | DeltaApplications | , |
| "Delta applications" | |||
| ) |
| STATISTIC | ( | DeltaSuccesses | , |
| "Delta successes" | |||
| ) |
| STATISTIC | ( | DeltaIndependence | , |
| "Delta independence" | |||
| ) |
| STATISTIC | ( | DeltaPropagations | , |
| "Delta propagations" | |||
| ) |
| STATISTIC | ( | GCDapplications | , |
| "GCD applications" | |||
| ) |
| STATISTIC | ( | GCDsuccesses | , |
| "GCD successes" | |||
| ) |
| STATISTIC | ( | GCDindependence | , |
| "GCD independence" | |||
| ) |
| STATISTIC | ( | BanerjeeApplications | , |
| "Banerjee applications" | |||
| ) |
| STATISTIC | ( | BanerjeeIndependence | , |
| "Banerjee independence" | |||
| ) |
| STATISTIC | ( | BanerjeeSuccesses | , |
| "Banerjee successes" | |||
| ) |
|
static |
Definition at line 624 of file DependenceAnalysis.cpp.
References llvm::AAResults::alias(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), and llvm::GetUnderlyingObject().
Referenced by llvm::DependenceInfo::depends(), and llvm::DependenceInfo::getSplitIteration().
| Dependence Analysis |
Definition at line 132 of file DependenceAnalysis.cpp.
| da |
Definition at line 132 of file DependenceAnalysis.cpp.
|
static |
Referenced by llvm::DependenceInfo::depends(), and llvm::DependenceInfo::getSplitIteration().
| Dependence true |
Definition at line 132 of file DependenceAnalysis.cpp.
1.8.6