Lines Matching defs:AliasAnalysis

1 //===- AliasAnalysis.cpp - Generic Alias Analysis Interface Implementation -==//
10 // This file implements the generic AliasAnalysis interface which is used as the
13 // This file also implements the default version of the AliasAnalysis interface
27 #include "llvm/Analysis/AliasAnalysis.h"
43 // Register the AliasAnalysis interface, providing a nice name to refer to.
44 INITIALIZE_ANALYSIS_GROUP(AliasAnalysis, "Alias Analysis", NoAA)
45 char AliasAnalysis::ID = 0;
51 AliasAnalysis::AliasResult
52 AliasAnalysis::alias(const Location &LocA, const Location &LocB) {
57 bool AliasAnalysis::pointsToConstantMemory(const Location &Loc,
63 void AliasAnalysis::deleteValue(Value *V) {
68 void AliasAnalysis::copyValue(Value *From, Value *To) {
73 void AliasAnalysis::addEscapingUse(Use &U) {
79 AliasAnalysis::ModRefResult
80 AliasAnalysis::getModRefInfo(ImmutableCallSite CS,
125 AliasAnalysis::ModRefResult
126 AliasAnalysis::getModRefInfo(ImmutableCallSite CS1, ImmutableCallSite CS2) {
140 AliasAnalysis::ModRefResult Mask = ModRef;
151 AliasAnalysis::ModRefResult R = NoModRef;
171 AliasAnalysis::ModRefResult R = NoModRef;
198 AliasAnalysis::ModRefBehavior
199 AliasAnalysis::getModRefBehavior(ImmutableCallSite CS) {
217 AliasAnalysis::ModRefBehavior
218 AliasAnalysis::getModRefBehavior(const Function *F) {
224 // AliasAnalysis non-virtual helper method implementation
227 AliasAnalysis::Location AliasAnalysis::getLocation(const LoadInst *LI) {
233 AliasAnalysis::Location AliasAnalysis::getLocation(const StoreInst *SI) {
239 AliasAnalysis::Location AliasAnalysis::getLocation(const VAArgInst *VI) {
245 AliasAnalysis::Location
246 AliasAnalysis::getLocation(const AtomicCmpXchgInst *CXI) {
252 AliasAnalysis::Location
253 AliasAnalysis::getLocation(const AtomicRMWInst *RMWI) {
259 AliasAnalysis::Location
260 AliasAnalysis::getLocationForSource(const MemTransferInst *MTI) {
272 AliasAnalysis::Location
273 AliasAnalysis::getLocationForDest(const MemIntrinsic *MTI) {
287 AliasAnalysis::ModRefResult
288 AliasAnalysis::getModRefInfo(const LoadInst *L, const Location &Loc) {
302 AliasAnalysis::ModRefResult
303 AliasAnalysis::getModRefInfo(const StoreInst *S, const Location &Loc) {
322 AliasAnalysis::ModRefResult
323 AliasAnalysis::getModRefInfo(const VAArgInst *V, const Location &Loc) {
338 AliasAnalysis::ModRefResult
339 AliasAnalysis::getModRefInfo(const AtomicCmpXchgInst *CX, const Location &Loc) {
351 AliasAnalysis::ModRefResult
352 AliasAnalysis::getModRefInfo(const AtomicRMWInst *RMW, const Location &Loc) {
415 AliasAnalysis::ModRefResult
416 AliasAnalysis::callCapturesBefore(const Instruction *I,
417 const AliasAnalysis::Location &MemLoc,
419 if (!DT || !TD) return AliasAnalysis::ModRef;
424 return AliasAnalysis::ModRef;
428 return AliasAnalysis::ModRef;
433 return AliasAnalysis::ModRef;
436 AliasAnalysis::ModRefResult R = AliasAnalysis::NoModRef;
450 if (isNoAlias(AliasAnalysis::Location(*CI),
451 AliasAnalysis::Location(Object)))
456 R = AliasAnalysis::Ref;
459 return AliasAnalysis::ModRef;
464 // AliasAnalysis destructor: DO NOT move this to the header file for
465 // AliasAnalysis or else clients of the AliasAnalysis class may not depend on
466 // the AliasAnalysis.o file in the current .a file, causing alias analysis
469 AliasAnalysis::~AliasAnalysis() {}
472 /// AliasAnalysis interface before any other methods are called.
474 void AliasAnalysis::InitializeAliasAnalysis(Pass *P) {
477 AA = &P->getAnalysis<AliasAnalysis>();
481 // directly (using AliasAnalysis::getAnalysisUsage(AU)).
482 void AliasAnalysis::getAnalysisUsage(AnalysisUsage &AU) const {
483 AU.addRequired<AliasAnalysis>(); // All AA's chain
489 uint64_t AliasAnalysis::getTypeStoreSize(Type *Ty) {
496 bool AliasAnalysis::canBasicBlockModify(const BasicBlock &BB,
506 bool AliasAnalysis::canInstructionRangeModify(const Instruction &I1,