diff options
Diffstat (limited to 'llvm/lib/Analysis/GlobalsModRef.cpp')
-rw-r--r-- | llvm/lib/Analysis/GlobalsModRef.cpp | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/llvm/lib/Analysis/GlobalsModRef.cpp b/llvm/lib/Analysis/GlobalsModRef.cpp index 2c503609d96..b28abcadca4 100644 --- a/llvm/lib/Analysis/GlobalsModRef.cpp +++ b/llvm/lib/Analysis/GlobalsModRef.cpp @@ -255,11 +255,11 @@ FunctionModRefBehavior GlobalsAAResult::getModRefBehavior(const Function *F) { } FunctionModRefBehavior -GlobalsAAResult::getModRefBehavior(ImmutableCallSite CS) { +GlobalsAAResult::getModRefBehavior(const CallBase *Call) { FunctionModRefBehavior Min = FMRB_UnknownModRefBehavior; - if (!CS.hasOperandBundles()) - if (const Function *F = CS.getCalledFunction()) + if (!Call->hasOperandBundles()) + if (const Function *F = Call->getCalledFunction()) if (FunctionInfo *FI = getFunctionInfo(F)) { if (!isModOrRefSet(FI->getModRefInfo())) Min = FMRB_DoesNotAccessMemory; @@ -267,7 +267,7 @@ GlobalsAAResult::getModRefBehavior(ImmutableCallSite CS) { Min = FMRB_OnlyReadsMemory; } - return FunctionModRefBehavior(AAResultBase::getModRefBehavior(CS) & Min); + return FunctionModRefBehavior(AAResultBase::getModRefBehavior(Call) & Min); } /// Returns the function info for the function, or null if we don't have @@ -366,14 +366,14 @@ bool GlobalsAAResult::AnalyzeUsesOfPointer(Value *V, } else if (Operator::getOpcode(I) == Instruction::BitCast) { if (AnalyzeUsesOfPointer(I, Readers, Writers, OkayStoreDest)) return true; - } else if (auto CS = CallSite(I)) { + } else if (auto *Call = dyn_cast<CallBase>(I)) { // Make sure that this is just the function being called, not that it is // passing into the function. - if (CS.isDataOperand(&U)) { + if (Call->isDataOperand(&U)) { // Detect calls to free. - if (CS.isArgOperand(&U) && isFreeCall(I, &TLI)) { + if (Call->isArgOperand(&U) && isFreeCall(I, &TLI)) { if (Writers) - Writers->insert(CS->getParent()->getParent()); + Writers->insert(Call->getParent()->getParent()); } else { return true; // Argument of an unknown call. } @@ -576,15 +576,15 @@ void GlobalsAAResult::AnalyzeCallGraph(CallGraph &CG, Module &M) { // We handle calls specially because the graph-relevant aspects are // handled above. - if (auto CS = CallSite(&I)) { - if (isAllocationFn(&I, &TLI) || isFreeCall(&I, &TLI)) { + if (auto *Call = dyn_cast<CallBase>(&I)) { + if (isAllocationFn(Call, &TLI) || isFreeCall(Call, &TLI)) { // FIXME: It is completely unclear why this is necessary and not // handled by the above graph code. FI.addModRefInfo(ModRefInfo::ModRef); - } else if (Function *Callee = CS.getCalledFunction()) { + } else if (Function *Callee = Call->getCalledFunction()) { // The callgraph doesn't include intrinsic calls. if (Callee->isIntrinsic()) { - if (isa<DbgInfoIntrinsic>(I)) + if (isa<DbgInfoIntrinsic>(Call)) // Don't let dbg intrinsics affect alias info. continue; @@ -885,16 +885,16 @@ AliasResult GlobalsAAResult::alias(const MemoryLocation &LocA, return AAResultBase::alias(LocA, LocB); } -ModRefInfo GlobalsAAResult::getModRefInfoForArgument(ImmutableCallSite CS, +ModRefInfo GlobalsAAResult::getModRefInfoForArgument(const CallBase *Call, const GlobalValue *GV) { - if (CS.doesNotAccessMemory()) + if (Call->doesNotAccessMemory()) return ModRefInfo::NoModRef; ModRefInfo ConservativeResult = - CS.onlyReadsMemory() ? ModRefInfo::Ref : ModRefInfo::ModRef; + Call->onlyReadsMemory() ? ModRefInfo::Ref : ModRefInfo::ModRef; // Iterate through all the arguments to the called function. If any argument // is based on GV, return the conservative result. - for (auto &A : CS.args()) { + for (auto &A : Call->args()) { SmallVector<Value*, 4> Objects; GetUnderlyingObjects(A, Objects, DL); @@ -914,7 +914,7 @@ ModRefInfo GlobalsAAResult::getModRefInfoForArgument(ImmutableCallSite CS, return ModRefInfo::NoModRef; } -ModRefInfo GlobalsAAResult::getModRefInfo(ImmutableCallSite CS, +ModRefInfo GlobalsAAResult::getModRefInfo(const CallBase *Call, const MemoryLocation &Loc) { ModRefInfo Known = ModRefInfo::ModRef; @@ -923,15 +923,15 @@ ModRefInfo GlobalsAAResult::getModRefInfo(ImmutableCallSite CS, if (const GlobalValue *GV = dyn_cast<GlobalValue>(GetUnderlyingObject(Loc.Ptr, DL))) if (GV->hasLocalLinkage()) - if (const Function *F = CS.getCalledFunction()) + if (const Function *F = Call->getCalledFunction()) if (NonAddressTakenGlobals.count(GV)) if (const FunctionInfo *FI = getFunctionInfo(F)) Known = unionModRef(FI->getModRefInfoForGlobal(*GV), - getModRefInfoForArgument(CS, GV)); + getModRefInfoForArgument(Call, GV)); if (!isModOrRefSet(Known)) return ModRefInfo::NoModRef; // No need to query other mod/ref analyses - return intersectModRef(Known, AAResultBase::getModRefInfo(CS, Loc)); + return intersectModRef(Known, AAResultBase::getModRefInfo(Call, Loc)); } GlobalsAAResult::GlobalsAAResult(const DataLayout &DL, |