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/Pass.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Support/GetElementPtrTypeIterator.h"
#include <algorithm>
#include "llvm/Intrinsics.gen"
Include dependency graph for BasicAliasAnalysis.cpp:
Go to the source code of this file.
Defines | |
#define | GET_MODREF_BEHAVIOR |
Functions | |
void | llvm::BasicAAStub () |
ImmutablePass * | llvm::createNoAAPass () |
ImmutablePass * | llvm::createBasicAliasAnalysisPass () |
static bool | hasUniqueAddress (const Value *V) |
static const Value * | getUnderlyingObject (const Value *V) |
static const User * | isGEP (const Value *V) |
static const Value * | GetGEPOperands (const Value *V, std::vector< Value * > &GEPOps) |
static bool | AddressMightEscape (const Value *V) |
static bool | ValuesEqual (Value *V1, Value *V2) |
Variables | |
RegisterOpt< NoAA > | U ("no-aa","No Alias Analysis (always returns 'may' alias)") |
RegisterAnalysisGroup< AliasAnalysis, NoAA > | V |
RegisterOpt< BasicAliasAnalysis > | X ("basicaa","Basic Alias Analysis (default AA impl)") |
RegisterAnalysisGroup< AliasAnalysis, BasicAliasAnalysis, true > | Y |
static const char * | DoesntAccessMemoryFns [] |
static const char * | OnlyReadsMemoryFns [] |
#define GET_MODREF_BEHAVIOR |
static bool AddressMightEscape | ( | const Value * | V | ) | [static] |
Definition at line 142 of file BasicAliasAnalysis.cpp.
References GV, hasUniqueAddress(), I, and V.
Referenced by getUnderlyingObject().
static bool hasUniqueAddress | ( | const Value * | V | ) | [inline, static] |
Definition at line 135 of file BasicAliasAnalysis.cpp.
References V.
Referenced by getUnderlyingObject().
Definition at line 162 of file BasicAliasAnalysis.cpp.
References V.
Referenced by GetGEPOperands().
const char* DoesntAccessMemoryFns[] [static] |
Definition at line 744 of file BasicAliasAnalysis.cpp.
const char* OnlyReadsMemoryFns[] [static] |
Initial value:
{ "atoi", "atol", "atof", "atoll", "atoq", "a64l", "bcmp", "memcmp", "memchr", "memrchr", "wmemcmp", "wmemchr", "strcmp", "strcasecmp", "strcoll", "strncmp", "strncasecmp", "strchr", "strcspn", "strlen", "strpbrk", "strrchr", "strspn", "strstr", "index", "rindex", "wcschr", "wcscmp", "wcscoll", "wcscspn", "wcslen", "wcsncmp", "wcspbrk", "wcsrchr", "wcsspn", "wcsstr", "alphasort", "alphasort64", "versionsort", "versionsort64", "nan", "nanf", "nand", "feof", "ferror", "fileno", "feof_unlocked", "ferror_unlocked", "fileno_unlocked" }
Definition at line 782 of file BasicAliasAnalysis.cpp.
RegisterOpt<NoAA> U("no-aa","No Alias Analysis (always returns 'may' alias)") [static] |
Referenced by llvm::Type::addAbstractTypeUser(), llvm::Value::addUse(), BlockIsSimpleEnoughToThreadThrough(), llvm::BytecodeBlock::BytecodeBlock(), CleanupConstantGlobalUsers(), llvm::PPCTargetLowering::computeMaskedBitsForTargetNode(), llvm::ConstantRange::ConstantRange(), llvm::ConvertConstantToIntType(), ConvertOperandToType(), CountInternalUses(), DecomposeSimpleLinearExpr(), llvm::DemoteRegToStack(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::emitPrologue(), FindInOperandList(), llvm::PPC::get_VSPLTI_elt(), GetConstantBuildVectorBits(), getGlobalAddr(), getNextStopPoint(), llvm::GetElementPtrInst::getPointerOperandIndex(), llvm::StoreInst::getPointerOperandIndex(), llvm::LoadInst::getPointerOperandIndex(), llvm::AsmPrinter::getPreferredAlignmentLog(), llvm::value_use_iterator< UserTy >::getUse(), llvm::Use::init(), llvm::ConstantRange::intersectWith(), isHighOnes(), LiveAtBBExit(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), magic32(), nonConstant(), OperandConvertibleToType(), llvm::value_use_iterator< UserTy >::operator *(), llvm::value_use_iterator< UserTy >::operator++(), llvm::value_use_iterator< UserTy >::operator==(), llvm::BytecodeReader::ParseConstantPoolValue(), llvm::BytecodeReader::ParseModuleGlobalInfo(), RecursiveDelete(), llvm::Type::removeAbstractTypeUser(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::ConstantArray::replaceUsesOfWithOnConstant(), llvm::ImmediatePostDominators::runOnFunction(), llvm::ImmediateDominators::runOnFunction(), llvm::GlobalDesc::setFile(), llvm::VariableDesc::setFile(), llvm::TypeDesc::setFile(), and llvm::Value::uncheckedReplaceAllUsesWith().
RegisterAnalysisGroup<AliasAnalysis, NoAA> V [static] |
Definition at line 81 of file BasicAliasAnalysis.cpp.
Referenced by llvm::MachineInstrBuilder::addCCReg(), llvm::MachineInstr::addCCRegOperand(), llvm::ExecutionEngine::addGlobalMapping(), llvm::MachineInstr::addImplicitRef(), llvm::PHINode::addIncoming(), llvm::MachineInstrBuilder::addPCDisp(), llvm::MachineInstr::addPCDispOperand(), AddPredecessorToBlock(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::addRegDef(), llvm::MachineInstr::addRegOperand(), AddressMightEscape(), llvm::DebugScope::AddVariable(), llvm::LiveVariables::addVirtualRegisterDead(), llvm::LiveVariables::addVirtualRegisterKilled(), AllUsesOfValueWillTrapIfNull(), AnalyzeGlobal(), CastConstantPacked(), CastToCStr(), llvm::SymbolTable::changeName(), CheapToScalarize(), llvm::User::classof(), llvm::ValueHandle::classof(), llvm::TmpInstruction::classof(), llvm::MemSetInst::classof(), llvm::MemMoveInst::classof(), llvm::MemCpyInst::classof(), llvm::MemIntrinsic::classof(), llvm::DbgDeclareInst::classof(), llvm::DbgRegionEndInst::classof(), llvm::DbgRegionStartInst::classof(), llvm::DbgFuncStartInst::classof(), llvm::DbgStopPointInst::classof(), llvm::DbgInfoIntrinsic::classof(), llvm::IntrinsicInst::classof(), llvm::UnreachableInst::classof(), llvm::UnwindInst::classof(), llvm::InvokeInst::classof(), llvm::SwitchInst::classof(), llvm::BranchInst::classof(), llvm::ReturnInst::classof(), llvm::PHINode::classof(), llvm::ShuffleVectorInst::classof(), llvm::InsertElementInst::classof(), llvm::ExtractElementInst::classof(), llvm::VAArgInst::classof(), llvm::SelectInst::classof(), llvm::ShiftInst::classof(), llvm::CallInst::classof(), llvm::CastInst::classof(), llvm::SetCondInst::classof(), llvm::GetElementPtrInst::classof(), llvm::StoreInst::classof(), llvm::LoadInst::classof(), llvm::FreeInst::classof(), llvm::AllocaInst::classof(), llvm::MallocInst::classof(), llvm::AllocationInst::classof(), llvm::Instruction::classof(), llvm::TerminatorInst::classof(), llvm::InlineAsm::classof(), llvm::GlobalVariable::classof(), llvm::GlobalValue::classof(), llvm::Function::classof(), llvm::UndefValue::classof(), llvm::ConstantExpr::classof(), llvm::ConstantPointerNull::classof(), llvm::ConstantPacked::classof(), llvm::ConstantStruct::classof(), llvm::ConstantArray::classof(), llvm::ConstantAggregateZero::classof(), llvm::ConstantFP::classof(), llvm::ConstantUInt::classof(), llvm::ConstantSInt::classof(), llvm::ConstantInt::classof(), llvm::ConstantBool::classof(), llvm::ConstantIntegral::classof(), llvm::Constant::classof(), llvm::BasicBlock::classof(), llvm::Argument::classof(), CleanupConstantGlobalUsers(), llvm::CloneTrace(), ComputeMaskedBits(), llvm::ConstantFoldCall(), llvm::ConstantFoldCastInstruction(), ConstantPropUsersOf(), llvm::ConvertConstantToIntType(), llvm::ConvertExpressionToType(), ConvertOperandToType(), llvm::ConvertValueToNewType(), llvm::DSScalarMap::count(), CountCodeReductionForAlloca(), CountCodeReductionForConstant(), llvm::FunctionLoweringInfo::CreateRegForValue(), createSlotMachine(), llvm::LiveVariables::dead_range(), llvm::TDDataStructures::deleteValue(), llvm::BUDataStructures::deleteValue(), llvm::AliasAnalysis::deleteValue(), llvm::DemoteRegToStack(), llvm::DIDeserializer::Deserialize(), llvm::Constant::destroyConstantImpl(), DominatesMergePoint(), dyn_castFoldableMul(), dyn_castGetElementPtr(), dyn_castNegVal(), dyn_castNotVal(), llvm::ValueSymbolTable::erase(), llvm::DSScalarMap::erase(), llvm::DSScalarMap::eraseIfExists(), EvaluateExpression(), llvm::SCEVExpander::expand(), llvm::SCEVExpander::expandInTy(), llvm::ExpressionConvertibleToType(), llvm::DSScalarMap::find(), FindScalarElement(), FindSingleUseMultiplyFactors(), FoldCondBranchOnPHI(), GatherConstantSetEQs(), GatherConstantSetNEs(), llvm::CallSite::get(), getComplexity(), getConstantEvolvingPHI(), getConstantStringLength(), llvm::MachineDebugInfo::getDescFor(), GetFactor(), getFnForValue(), GetGEPOperands(), llvm::SlotCalculator::getGlobalSlot(), llvm::Module::getGlobalVariable(), getGlobalVariable(), getGlobalVariablesUsing(), GetKnownAlignment(), getModuleFromVal(), llvm::SCEV::getNegativeSCEV(), getNextStopPoint(), llvm::DSGraph::getNodeForValue(), llvm::Module::getOrInsertFunction(), getPrintfCodeFor(), llvm::DSScalarMap::getRawEntryRef(), getReplacementOrValue(), llvm::ScalarEvolution::getSCEV(), llvm::ScalarEvolution::getSCEVAtScope(), llvm::SlotCalculator::getSlot(), llvm::SlotMachine::getSlot(), llvm::SelectionDAG::getSrcValue(), getTruncateOrZeroExtend(), llvm::StructType::getTypeAtIndex(), getUnderlyingObject(), getVal(), llvm::SrcValueSDNode::getValue(), llvm::SelectionDAGLowering::getValue(), llvm::Mangler::getValueName(), llvm::ScalarEvolution::hasSCEV(), hasUniqueAddress(), llvm::SequentialType::indexValid(), llvm::StructType::indexValid(), llvm::FunctionLoweringInfo::InitializeRegForValue(), llvm::ValueSymbolTable::insert(), llvm::SCEVExpander::InsertCastOfTo(), InsertGEPComputeCode(), InsertPrintInst(), InsertRecordInst(), InsertReleaseInst(), InsertSignExtendToPtrTy(), InsertValue(), InsertVerbosePrintInst(), InstallGlobalCtors(), llvm::LiveVariables::instructionChanged(), IsAlwaysValidPointer(), isCast(), isConstantAllOnes(), isDynamicConstant(), isGEP(), isGlobalVariable(), isIndirectCallee(), llvm::Loop::isLoopInvariant(), llvm::ConstantSInt::isMaxValue(), llvm::ConstantSInt::isMinValue(), llvm::BinaryOperator::isNeg(), llvm::BinaryOperator::isNot(), isOneBitSet(), isOnlyUse(), isReassociableOp(), isRunOfOnes(), isSafeToLoadUnconditionally(), isStringValue(), isTargetConstant(), isZero(), isZeroConst(), llvm::LiveVariables::killed_range(), LowerBSWAP(), LowerCTLZ(), LowerCTPOP(), llvm::DefaultIntrinsicLowering::LowerIntrinsicCall(), llvm::X86TargetLowering::LowerOperation(), llvm::PatternMatch::m_Value(), llvm::MapValue(), MaskedValueIsZero(), MergeSortedVectors(), llvm::MSchedGraphSB::MSchedGraphSB(), NegateValue(), OperandConvertibleToType(), llvm::Statistic< DataType >::operator *=(), llvm::Statistic< DataType >::operator+=(), llvm::Statistic< DataType >::operator-=(), llvm::Statistic< DataType >::operator/=(), llvm::ValID::operator<(), llvm::operator<<(), llvm::CachedWriter::operator<<(), llvm::DSScalarMap::operator[](), OptimizeAwayTrappingUsesOfValue(), llvm::cl::parser< const llvm::PassInfo * >::parse(), llvm::BytecodeReader::ParseCompactionTable(), llvm::BytecodeReader::ParseFunctionBody(), llvm::BytecodeReader::ParseSymbolTable(), PartialFact(), llvm::X86IntelAsmPrinter::printOp(), llvm::BytecodeReader::ValueList::push_back(), llvm::MachineDebugInfo::RecordRegionEnd(), llvm::MachineDebugInfo::RecordRegionStart(), llvm::MachineDebugInfo::RecordVariable(), llvm::RemapInstruction(), RemapOperand(), RemoveNoopCast(), llvm::LiveVariables::removeVirtualRegisterDead(), llvm::LiveVariables::removeVirtualRegisterKilled(), llvm::ValueSymbolTable::rename(), llvm::Function::renameLocalSymbols(), ReplaceCallWith(), llvm::ReplaceInstWithValue(), ReplaceUsesOfWith(), ResolveDefinitions(), llvm::ImmediatePostDominators::runOnFunction(), llvm::ImmediateDominators::runOnFunction(), llvm::Use::set(), llvm::CallSite::setCalledFunction(), llvm::SwitchInst::setCondition(), llvm::BranchInst::setCondition(), llvm::MachineInstr::setImplicitRef(), llvm::PHINode::setIncomingValue(), llvm::MachineInstr::SetMachineOperandVal(), llvm::ScalarEvolution::setSCEV(), SetValue(), setValueName(), FoldSetCCLogical::shouldApply(), llvm::SimplifyCFG(), llvm::ValueSymbolTable::strip(), llvm::SymbolTable::strip(), llvm::SymbolTableListTraits< ValueSubClass, ItemParentClass, SymTabClass, SubClass >::transferNodesFromList(), llvm::ExecutionEngine::updateGlobalMapping(), llvm::UpgradeIntrinsicCall(), llvm::Use::Use(), llvm::ValueConvertibleToType(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), ValueRequiresCast(), llvm::MachineDebugInfo::Verify(), llvm::DIVerifier::Verify(), llvm::verifyFunction(), llvm::verifyModule(), llvm::SCEVExpander::visitAddExpr(), llvm::SCEVExpander::visitAddRecExpr(), llvm::SCEVExpander::visitMulExpr(), llvm::SCEVExpander::visitTruncateExpr(), llvm::SelectionDAGLowering::visitVAArg(), llvm::SCEVExpander::visitZeroExtendExpr(), llvm::WriteAsOperand(), WriteAsOperandInternal(), and llvm::ValueHandle::~ValueHandle().
RegisterOpt<BasicAliasAnalysis> X("basicaa","Basic Alias Analysis (default AA impl)") [static] |
RegisterAnalysisGroup<AliasAnalysis, BasicAliasAnalysis, true> Y [static] |
Definition at line 126 of file BasicAliasAnalysis.cpp.