Spatial
Simple Static Analysis in LLVM
Classes | Typedefs | Enumerations | Functions
spatial Namespace Reference

Classes

class  BenchmarkRunner
 
class  GenericInstModel
 
class  Graph
 
class  InstInfo
 
class  InstModel
 
class  LFCPAInstModel
 
class  PointsToBenchmarkRunner
 
class  PTABenchmarkRunner
 
class  Token
 
class  TokenWrapper
 
class  ValueContext
 
class  Worklist
 

Typedefs

using Context = int
 

Enumerations

enum  InfoType { Call , Phi , Skip , RWMem }
 
enum  opTokenTy {
  isArray , isAlloca , isOpBitcast , isPhiGEPOpd ,
  isIcmpGEPOpd , isOneGEPIndx , isFunPtr , isFunArg ,
  isRetGEP
}
 

Functions

std::string print_args (llvm::CallInst *CI)
 
std::ostream & operator<< (std::ostream &OS, const PointsToBenchmarkRunner &B)
 
std::ostream & operator<< (std::ostream &OS, const PTABenchmarkRunner &B)
 
template TokenGenericInstModel::handleGEPUtil< llvm::GetElementPtrInst > (llvm::GetElementPtrInst *G, Token *Ptr)
 
template TokenGenericInstModel::handleGEPUtil< llvm::GEPOperator > (llvm::GEPOperator *G, Token *Ptr)
 
template TokenLFCPAInstModel::handleGEPUtil< llvm::GetElementPtrInst > (llvm::GetElementPtrInst *G, Token *Ptr)
 
template TokenLFCPAInstModel::handleGEPUtil< llvm::GEPOperator > (llvm::GEPOperator *G, Token *Ptr)
 
template bool LFCPAInstModel::isStructFieldPointerTy< llvm::GetElementPtrInst > (llvm::GetElementPtrInst *G)
 
template bool LFCPAInstModel::isStructFieldPointerTy< llvm::GEPOperator > (llvm::GEPOperator *G)
 
template bool LFCPAInstModel::isArrayType< llvm::GetElementPtrInst > (llvm::GetElementPtrInst *G)
 
template bool LFCPAInstModel::isArrayType< llvm::GEPOperator > (llvm::GEPOperator *G)
 
template bool Token::isGEPOperandArrayTy< llvm::GetElementPtrInst > (llvm::GetElementPtrInst *G, int Idx=-1)
 
template bool Token::isGEPOperandArrayTy< llvm::GEPOperator > (llvm::GEPOperator *G, int Idx=-1)
 
std::ostream & operator<< (std::ostream &OS, const Token &A)
 
template std::vector< int > Token::getGEPArrayIndex< llvm::GetElementPtrInst > (llvm::GetElementPtrInst *G)
 
template std::vector< int > Token::getGEPArrayIndex< llvm::GEPOperator > (llvm::GEPOperator *G)
 
void InstNamer (llvm::Function &F)
 InstNamer - sets name to the SSA temporaries. More...
 
bool SkipFunction (llvm::Function &F)
 
std::vector< llvm::Instruction * > GetPred (llvm::Instruction *Inst)
 
std::vector< llvm::Instruction * > GetSucc (llvm::Instruction *Inst)
 
int getPointerOperandIndex (llvm::Instruction *Inst)
 
template<typename Node >
std::ostream & operator<< (std::ostream &OS, const Graph< Node > &G)
 

Typedef Documentation

◆ Context

using spatial::Context = typedef int

Enumeration Type Documentation

◆ InfoType

Enumerator
Call 
Phi 
Skip 
RWMem 

◆ opTokenTy

Enumerator
isArray 
isAlloca 
isOpBitcast 
isPhiGEPOpd 
isIcmpGEPOpd 
isOneGEPIndx 
isFunPtr 
isFunArg 
isRetGEP 

Function Documentation

◆ GenericInstModel::handleGEPUtil< llvm::GEPOperator >()

template Token * spatial::GenericInstModel::handleGEPUtil< llvm::GEPOperator > ( llvm::GEPOperator *  G,
Token Ptr 
)

◆ GenericInstModel::handleGEPUtil< llvm::GetElementPtrInst >()

template Token * spatial::GenericInstModel::handleGEPUtil< llvm::GetElementPtrInst > ( llvm::GetElementPtrInst *  G,
Token Ptr 
)

◆ getPointerOperandIndex()

int spatial::getPointerOperandIndex ( llvm::Instruction *  Inst)

◆ GetPred()

std::vector< llvm::Instruction * > spatial::GetPred ( llvm::Instruction *  Inst)

◆ GetSucc()

std::vector< llvm::Instruction * > spatial::GetSucc ( llvm::Instruction *  Inst)

◆ InstNamer()

void spatial::InstNamer ( llvm::Function &  F)

InstNamer - sets name to the SSA temporaries.

◆ LFCPAInstModel::handleGEPUtil< llvm::GEPOperator >()

template Token * spatial::LFCPAInstModel::handleGEPUtil< llvm::GEPOperator > ( llvm::GEPOperator *  G,
Token Ptr 
)

◆ LFCPAInstModel::handleGEPUtil< llvm::GetElementPtrInst >()

template Token * spatial::LFCPAInstModel::handleGEPUtil< llvm::GetElementPtrInst > ( llvm::GetElementPtrInst *  G,
Token Ptr 
)

◆ LFCPAInstModel::isArrayType< llvm::GEPOperator >()

template bool spatial::LFCPAInstModel::isArrayType< llvm::GEPOperator > ( llvm::GEPOperator *  G)

◆ LFCPAInstModel::isArrayType< llvm::GetElementPtrInst >()

template bool spatial::LFCPAInstModel::isArrayType< llvm::GetElementPtrInst > ( llvm::GetElementPtrInst *  G)

◆ LFCPAInstModel::isStructFieldPointerTy< llvm::GEPOperator >()

template bool spatial::LFCPAInstModel::isStructFieldPointerTy< llvm::GEPOperator > ( llvm::GEPOperator *  G)

◆ LFCPAInstModel::isStructFieldPointerTy< llvm::GetElementPtrInst >()

template bool spatial::LFCPAInstModel::isStructFieldPointerTy< llvm::GetElementPtrInst > ( llvm::GetElementPtrInst *  G)

◆ operator<<() [1/4]

template<typename Node >
std::ostream & spatial::operator<< ( std::ostream &  OS,
const Graph< Node > &  G 
)

◆ operator<<() [2/4]

std::ostream & spatial::operator<< ( std::ostream &  OS,
const PointsToBenchmarkRunner B 
)

◆ operator<<() [3/4]

std::ostream & spatial::operator<< ( std::ostream &  OS,
const PTABenchmarkRunner B 
)

◆ operator<<() [4/4]

std::ostream & spatial::operator<< ( std::ostream &  OS,
const Token A 
)

◆ print_args()

std::string spatial::print_args ( llvm::CallInst *  CI)

◆ SkipFunction()

bool spatial::SkipFunction ( llvm::Function &  F)

◆ Token::getGEPArrayIndex< llvm::GEPOperator >()

template std::vector< int > spatial::Token::getGEPArrayIndex< llvm::GEPOperator > ( llvm::GEPOperator *  G)

◆ Token::getGEPArrayIndex< llvm::GetElementPtrInst >()

template std::vector< int > spatial::Token::getGEPArrayIndex< llvm::GetElementPtrInst > ( llvm::GetElementPtrInst *  G)

◆ Token::isGEPOperandArrayTy< llvm::GEPOperator >()

template bool spatial::Token::isGEPOperandArrayTy< llvm::GEPOperator > ( llvm::GEPOperator *  G,
int  Idx = -1 
)

◆ Token::isGEPOperandArrayTy< llvm::GetElementPtrInst >()

template bool spatial::Token::isGEPOperandArrayTy< llvm::GetElementPtrInst > ( llvm::GetElementPtrInst *  G,
int  Idx = -1 
)