LLVM API Documentation

BasicAliasAnalysis.cpp File Reference

#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/Passes.h"
#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Function.h"
#include "llvm/GlobalVariable.h"
#include "llvm/Instructions.h"
#include "llvm/IntrinsicInst.h"
#include "llvm/Pass.h"
#include "llvm/Target/TargetData.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/GetElementPtrTypeIterator.h"
#include "llvm/Support/ManagedStatic.h"
#include <algorithm>

Include dependency graph for BasicAliasAnalysis.cpp:

Go to the source code of this file.

Functions

static bool AddressMightEscape (const Value *V)
static const UserisGEP (const Value *V)
static const ValueGetGEPOperands (const Value *V, SmallVector< Value *, 16 > &GEPOps)
static bool isIdentifiedObject (const Value *V)
static bool isKnownNonNull (const Value *V)
static bool isNonEscapingLocalObject (const Value *V)
static bool isObjectSmallerThan (const Value *V, unsigned Size, const TargetData &TD)
ImmutablePassllvm::createNoAAPass ()
ImmutablePassllvm::createBasicAliasAnalysisPass ()
static bool IndexOperandsEqual (Value *V1, Value *V2)

Variables

static RegisterPass< NoAA > U ("no-aa","No Alias Analysis (always returns 'may' alias)", true, true)
static RegisterAnalysisGroup
< AliasAnalysis
V (U)
static RegisterPass
< BasicAliasAnalysis > 
X ("basicaa","Basic Alias Analysis (default AA impl)", false, true)
static RegisterAnalysisGroup
< AliasAnalysis, true > 
Y (X)


Function Documentation

static bool AddressMightEscape ( const Value V  )  [static]

static const Value* GetGEPOperands ( const Value V,
SmallVector< Value *, 16 > &  GEPOps 
) [static]

static bool IndexOperandsEqual ( Value V1,
Value V2 
) [static]

static const User* isGEP ( const Value V  )  [static]

Definition at line 79 of file BasicAliasAnalysis.cpp.

References getOpcode().

Referenced by GetGEPOperands().

static bool isIdentifiedObject ( const Value V  )  [static]

isIdentifiedObject - Return true if this pointer refers to a distinct and identifiable object. This returns true for: Global Variables and Functions Allocas and Mallocs ByVal and NoAlias Arguments

Definition at line 113 of file BasicAliasAnalysis.cpp.

References A.

static bool isKnownNonNull ( const Value V  )  [static]

isKnownNonNull - Return true if we know that the specified value is never null.

Definition at line 123 of file BasicAliasAnalysis.cpp.

References A, GV, and llvm::GlobalValue::hasExternalWeakLinkage().

static bool isNonEscapingLocalObject ( const Value V  )  [static]

isNonEscapingLocalObject - Return true if the pointer is to a function-local object that never escapes from the function.

Definition at line 139 of file BasicAliasAnalysis.cpp.

References A, and AddressMightEscape().

static bool isObjectSmallerThan ( const Value V,
unsigned  Size,
const TargetData TD 
) [static]

isObjectSmallerThan - Return true if we can prove that the object specified by V is smaller than Size.

Definition at line 155 of file BasicAliasAnalysis.cpp.

References A, AI, llvm::TargetData::getABITypeSize(), llvm::SequentialType::getElementType(), llvm::AllocationInst::getType(), llvm::GlobalValue::getType(), GV, llvm::AllocationInst::isArrayAllocation(), and llvm::Type::isSized().


Variable Documentation

char ID [static]

Definition at line 185 of file BasicAliasAnalysis.cpp.

RegisterPass<NoAA> U("no-aa","No Alias Analysis (always returns 'may' alias)", true, true) [static]

Referenced by llvm::Calculate().

Referenced by llvm::TypeMap< ValType, TypeClass >::add(), llvm::ExecutionEngine::addGlobalMapping(), llvm::FoldingSetNodeID::AddString(), BuildSubAggregate(), llvm::Calculate(), llvm::CloneTrace(), llvm::Compress(), llvm::ConstantFoldCall(), llvm::IRBuilder< preserveNames, T >::CreateAggregateRet(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::Constant::destroyConstantImpl(), llvm::BitstreamWriter::Emit(), llvm::StringMap< llvm::StringPool::PooledString >::erase(), llvm::SCEVExpander::expand(), FindPHIToPartitionLoops(), llvm::BitstreamWriter::FlushToWord(), FoldCondBranchOnPHI(), llvm::TypeMap< ValType, TypeClass >::get(), llvm::CallSite::get(), llvm::BitcodeReaderValueList::getConstantFwdRef(), llvm::MemoryDependenceAnalysis::getDependency(), llvm::PseudoSourceValue::getFixedStack(), llvm::Module::getGlobalVariable(), llvm::MVT::getMVTString(), GetNegatedExpression(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getShuffleScalarElt(), llvm::SCEVUnknown::getType(), llvm::SCEVConstant::getType(), llvm::MVT::getTypeForMVT(), llvm::SrcValueSDNode::getValue(), llvm::SCEVUnknown::getValue(), llvm::SCEVConstant::getValue(), llvm::BitcodeReaderValueList::getValueFwdRef(), InstallGlobalCtors(), llvm::TargetLowering::isGAPlusOffset(), llvm::SCEVUnknown::isLoopInvariant(), isNegatibleForFree(), llvm::ISD::isScalarToVector(), llvm::Link(), LLVMGetInstructionCallConv(), LLVMSetInstructionCallConv(), LowerBUILD_VECTOR(), LowerBuildVectorv16i8(), LowerBuildVectorv8i16(), llvm::IntrinsicLowering::LowerIntrinsicCall(), LowerVAARG(), llvm::APFloat::mod(), llvm::raw_ostream::operator<<(), llvm::SCEVUnknown::print(), llvm::SCEVConstant::print(), llvm::MachineInstr::print(), llvm::BitstreamReader::Read64(), llvm::RemapInstruction(), SimplifyCondBranchToCondBranch(), StripSymtab(), llvm::SymbolTableListTraits< ValueSubClass, ItemParentClass >::transferNodesFromList(), llvm::ExecutionEngine::updateGlobalMapping(), llvm::SCEVExpander::visitAddExpr(), llvm::SCEVExpander::visitAddRecExpr(), llvm::Interpreter::visitCallSite(), llvm::SCEVExpander::visitMulExpr(), llvm::SCEVExpander::visitSignExtendExpr(), llvm::SCEVExpander::visitTruncateExpr(), llvm::SCEVExpander::visitZeroExtendExpr(), WriteConstants(), and llvm::SCEVUnknown::~SCEVUnknown().

RegisterPass<BasicAliasAnalysis> X("basicaa","Basic Alias Analysis (default AA impl)", false, true) [static]




This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.