LLVM API Documentation
#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>

Go to the source code of this file.
Functions | |
| static bool | AddressMightEscape (const Value *V) |
| static const User * | isGEP (const Value *V) |
| static const Value * | GetGEPOperands (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) |
| ImmutablePass * | llvm::createNoAAPass () |
| ImmutablePass * | llvm::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) |
| static bool AddressMightEscape | ( | const Value * | V | ) | [static] |
Definition at line 42 of file BasicAliasAnalysis.cpp.
References BitCast, Call, E, llvm::Instruction::getOpcode(), llvm::User::getOperand(), I, Load, llvm::MipsISD::Ret, llvm::SPII::Store, llvm::Value::use_begin(), and llvm::Value::use_end().
Referenced by isNonEscapingLocalObject().
| static const Value* GetGEPOperands | ( | const Value * | V, | |
| SmallVector< Value *, 16 > & | GEPOps | |||
| ) | [static] |
Definition at line 87 of file BasicAliasAnalysis.cpp.
References llvm::SmallVectorImpl< T >::begin(), llvm::SmallVectorImpl< T >::empty(), llvm::SmallVectorImpl< T >::end(), llvm::SmallVectorImpl< T >::erase(), G, llvm::SmallVectorImpl< T >::insert(), and isGEP().
Definition at line 521 of file BasicAliasAnalysis.cpp.
References C2, llvm::ConstantExpr::getSExt(), llvm::Value::getType(), and llvm::Type::Int64Ty.
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().
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().
RegisterAnalysisGroup<AliasAnalysis> V(U) [static] |
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] |
RegisterAnalysisGroup<AliasAnalysis, true> Y(X) [static] |