class ObjCARCAAResult

Declaration

class ObjCARCAAResult : public AAResultBase { /* full declaration omitted */ };

Description

This is a simple alias analysis implementation that uses knowledge of ARC constructs to answer queries. TODO: This class could be generalized to know about other ObjC-specific tricks. Such as knowing that ivars in the non-fragile ABI are non-aliasing even though their offsets are dynamic.

Declared at: llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h:37

Inherits from: AAResultBase

Member Variables

private const llvm::DataLayout& DL

Method Overview

  • public ObjCARCAAResult(const llvm::DataLayout & DL)
  • public ObjCARCAAResult(llvm::objcarc::ObjCARCAAResult && Arg)
  • public llvm::AliasResult alias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB, llvm::AAQueryInfo & AAQI)
  • public llvm::FunctionModRefBehavior getModRefBehavior(const llvm::Function * F)
  • public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
  • public bool invalidate(llvm::Function &, const llvm::PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
  • public bool pointsToConstantMemory(const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI, bool OrLocal)

Methods

ObjCARCAAResult(const llvm::DataLayout& DL)

Declared at: llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h:43

Parameters

const llvm::DataLayout& DL

ObjCARCAAResult(
    llvm::objcarc::ObjCARCAAResult&& Arg)

Declared at: llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h:44

Parameters

llvm::objcarc::ObjCARCAAResult&& Arg

llvm::AliasResult alias(
    const llvm::MemoryLocation& LocA,
    const llvm::MemoryLocation& LocB,
    llvm::AAQueryInfo& AAQI)

Declared at: llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h:55

Parameters

const llvm::MemoryLocation& LocA
const llvm::MemoryLocation& LocB
llvm::AAQueryInfo& AAQI

llvm::FunctionModRefBehavior getModRefBehavior(
    const llvm::Function* F)

Declared at: llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h:61

Parameters

const llvm::Function* F

llvm::ModRefInfo getModRefInfo(
    const llvm::CallBase* Call,
    const llvm::MemoryLocation& Loc,
    llvm::AAQueryInfo& AAQI)

Declared at: llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h:64

Parameters

const llvm::CallBase* Call
const llvm::MemoryLocation& Loc
llvm::AAQueryInfo& AAQI

bool invalidate(
    llvm::Function&,
    const llvm::PreservedAnalyses&,
    FunctionAnalysisManager::Invalidator&)

Description

Handle invalidation events from the new pass manager. By definition, this result is stateless and so remains valid.

Declared at: llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h:50

Parameters

llvm::Function&
const llvm::PreservedAnalyses&
FunctionAnalysisManager::Invalidator&

bool pointsToConstantMemory(
    const llvm::MemoryLocation& Loc,
    llvm::AAQueryInfo& AAQI,
    bool OrLocal)

Declared at: llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h:57

Parameters

const llvm::MemoryLocation& Loc
llvm::AAQueryInfo& AAQI
bool OrLocal