LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BasicAliasAnalysis.cpp File Reference

#include "llvm/Analysis/AliasAnalysis.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 dependency graph for BasicAliasAnalysis.cpp:

Go to the source code of this file.

Functions

void llvm::BasicAAStub ()
static bool hasUniqueAddress (const Value *V)
static const ValuegetUnderlyingObject (const Value *V)
static const UserisGEP (const Value *V)
static const ValueGetGEPOperands (const Value *V, std::vector< Value * > &GEPOps)
static bool AddressMightEscape (const Value *V)
static bool ValuesEqual (Value *V1, Value *V2)

Variables

static const char * DoesntAccessMemoryTable []
static const unsigned DAMTableSize
static const char * OnlyReadsMemoryTable []
static const unsigned ORMTableSize


Function Documentation

static bool AddressMightEscape const Value V  )  [static]
 

Definition at line 181 of file BasicAliasAnalysis.cpp.

References E, llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), I, llvm::ISD::Load, llvm::ISD::Ret, llvm::ISD::Store, llvm::Value::use_begin(), and llvm::Value::use_end().

static const Value* GetGEPOperands const Value V,
std::vector< Value * > &  GEPOps
[static]
 

Definition at line 153 of file BasicAliasAnalysis.cpp.

References G, and isGEP().

static const Value* getUnderlyingObject const Value V  )  [static]
 

Definition at line 125 of file BasicAliasAnalysis.cpp.

References llvm::Value::getType(), hasUniqueAddress(), and I.

Referenced by getUnderlyingObject().

static bool hasUniqueAddress const Value V  )  [inline, static]
 

Definition at line 118 of file BasicAliasAnalysis.cpp.

Referenced by getUnderlyingObject().

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

Definition at line 145 of file BasicAliasAnalysis.cpp.

Referenced by GetGEPOperands().

static bool ValuesEqual Value V1,
Value V2
[static]
 

Definition at line 424 of file BasicAliasAnalysis.cpp.

References llvm::Value::getType().


Variable Documentation

const unsigned DAMTableSize [static]
 

Initial value:

Definition at line 713 of file BasicAliasAnalysis.cpp.

const char* DoesntAccessMemoryTable[] [static]
 

Definition at line 674 of file BasicAliasAnalysis.cpp.

const char* OnlyReadsMemoryTable[] [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 739 of file BasicAliasAnalysis.cpp.

const unsigned ORMTableSize [static]
 

Initial value:

Definition at line 763 of file BasicAliasAnalysis.cpp.

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

Referenced by llvm::BytecodeBlock::BytecodeBlock(), CleanupConstantGlobalUsers(), llvm::ConvertConstantToIntType(), llvm::DemoteRegToStack(), llvm::AsmPrinter::emitGlobalConstant(), getGlobalAddr(), getNextStopPoint(), llvm::GetElementPtrInst::getPointerOperandIndex(), llvm::StoreInst::getPointerOperandIndex(), llvm::LoadInst::getPointerOperandIndex(), llvm::Use::getUser(), llvm::ConstantRange::intersectWith(), isHighOnes(), LiveAtBBExit(), RecursiveDelete(), llvm::ImmediateDominators::runOnFunction(), and llvm::Value::uncheckedReplaceAllUsesWith().

RegisterAnalysisGroup<AliasAnalysis, NoAA> V [static]
 

Definition at line 72 of file BasicAliasAnalysis.cpp.

Referenced by llvm::ExecutionEngine::addGlobalMapping(), AddPredecessorToBlock(), CheckVarargs(), llvm::CloneTrace(), llvm::ConstantFoldCall(), ConvertOperandToType(), llvm::DemoteRegToStack(), llvm::Constant::destroyConstantImpl(), llvm::TypeMap< ValType, TypeClass >::finishRefinement(), llvm::Module::getGlobalVariable(), llvm::Module::getOrInsertFunction(), getVal(), llvm::ConstantSInt::isMaxValue(), llvm::ConstantSInt::isMinValue(), llvm::ConstantFP::isNullValue(), llvm::DefaultIntrinsicLowering::LowerIntrinsicCall(), MergeSortedVectors(), llvm::DSGraphPrintHelper::printValuesInBitVec(), llvm::RemapInstruction(), RemapOperand(), llvm::Function::renameLocalSymbols(), ReplaceCallWith(), ResolveDefinitions(), llvm::RunVMAsmParser(), llvm::SymbolTableListTraits< ValueSubClass, ItemParentClass, SymTabClass, SubClass >::transferNodesFromList(), llvm::ExecutionEngine::updateGlobalMapping(), and llvm::ValueHandle::~ValueHandle().

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

RegisterAnalysisGroup<AliasAnalysis, BasicAliasAnalysis, true> Y [static]
 

Definition at line 113 of file BasicAliasAnalysis.cpp.