LLVM  4.0.0
Classes | Namespaces | Macros | Enumerations | Functions
CFLAndersAliasAnalysis.cpp File Reference
#include "llvm/Analysis/CFLAndersAliasAnalysis.h"
#include "CFLGraph.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/Pass.h"
Include dependency graph for CFLAndersAliasAnalysis.cpp:

Go to the source code of this file.

Classes

struct  llvm::DenseMapInfo< OffsetValue >
 
struct  llvm::DenseMapInfo< OffsetInstantiatedValue >
 
class  llvm::CFLAndersAAResult::FunctionInfo
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define DEBUG_TYPE   "cfl-anders-aa"
 

Enumerations

enum  MatchState : uint8_t
 

Functions

static const FunctionparentFunctionOfValue (const Value *Val)
 
static bool hasReadOnlyState (StateSet Set)
 
static bool hasWriteOnlyState (StateSet Set)
 
static Optional< InterfaceValuegetInterfaceValue (InstantiatedValue IValue, const SmallVectorImpl< Value * > &RetVals)
 
static void populateAttrMap (DenseMap< const Value *, AliasAttrs > &AttrMap, const AliasAttrMap &AMap)
 
static void populateAliasMap (DenseMap< const Value *, std::vector< OffsetValue >> &AliasMap, const ReachabilitySet &ReachSet)
 
static void populateExternalRelations (SmallVectorImpl< ExternalRelation > &ExtRelations, const Function &Fn, const SmallVectorImpl< Value * > &RetVals, const ReachabilitySet &ReachSet)
 
static void populateExternalAttributes (SmallVectorImpl< ExternalAttribute > &ExtAttributes, const Function &Fn, const SmallVectorImpl< Value * > &RetVals, const AliasAttrMap &AMap)
 
static void propagate (InstantiatedValue From, InstantiatedValue To, MatchState State, ReachabilitySet &ReachSet, std::vector< WorkListItem > &WorkList)
 
static void initializeWorkList (std::vector< WorkListItem > &WorkList, ReachabilitySet &ReachSet, const CFLGraph &Graph)
 
static Optional
< InstantiatedValue
getNodeBelow (const CFLGraph &Graph, InstantiatedValue V)
 
static void processWorkListItem (const WorkListItem &Item, const CFLGraph &Graph, ReachabilitySet &ReachSet, AliasMemSet &MemSet, std::vector< WorkListItem > &WorkList)
 
static AliasAttrMap buildAttrMap (const CFLGraph &Graph, const ReachabilitySet &ReachSet)
 
 INITIALIZE_PASS (CFLAndersAAWrapperPass,"cfl-anders-aa","Inclusion-Based CFL Alias Analysis", false, true) ImmutablePass *llvm
 

Macro Definition Documentation

#define DEBUG_TYPE   "cfl-anders-aa"

Definition at line 64 of file CFLAndersAliasAnalysis.cpp.

Enumeration Type Documentation

enum MatchState : uint8_t
strong

Definition at line 84 of file CFLAndersAliasAnalysis.cpp.

Function Documentation

static AliasAttrMap buildAttrMap ( const CFLGraph Graph,
const ReachabilitySet &  ReachSet 
)
static
static Optional<InterfaceValue> getInterfaceValue ( InstantiatedValue  IValue,
const SmallVectorImpl< Value * > &  RetVals 
)
static
static Optional<InstantiatedValue> getNodeBelow ( const CFLGraph Graph,
InstantiatedValue  V 
)
static
static bool hasReadOnlyState ( StateSet  Set)
static

Definition at line 316 of file CFLAndersAliasAnalysis.cpp.

Referenced by populateExternalRelations().

static bool hasWriteOnlyState ( StateSet  Set)
static

Definition at line 320 of file CFLAndersAliasAnalysis.cpp.

Referenced by populateExternalRelations().

INITIALIZE_PASS ( CFLAndersAAWrapperPass  ,
"cfl-anders-aa ,
"Inclusion-Based CFL Alias Analysis ,
false  ,
true   
)

Definition at line 875 of file CFLAndersAliasAnalysis.cpp.

static void initializeWorkList ( std::vector< WorkListItem > &  WorkList,
ReachabilitySet &  ReachSet,
const CFLGraph Graph 
)
static
static const Function* parentFunctionOfValue ( const Value Val)
static

Definition at line 71 of file CFLAndersAliasAnalysis.cpp.

References llvm::GlobalValue::getParent().

Referenced by llvm::CFLAndersAAResult::query().

static void populateAliasMap ( DenseMap< const Value *, std::vector< OffsetValue >> &  AliasMap,
const ReachabilitySet &  ReachSet 
)
static
static void populateAttrMap ( DenseMap< const Value *, AliasAttrs > &  AttrMap,
const AliasAttrMap &  AMap 
)
static
static void populateExternalAttributes ( SmallVectorImpl< ExternalAttribute > &  ExtAttributes,
const Function Fn,
const SmallVectorImpl< Value * > &  RetVals,
const AliasAttrMap &  AMap 
)
static
static void populateExternalRelations ( SmallVectorImpl< ExternalRelation > &  ExtRelations,
const Function Fn,
const SmallVectorImpl< Value * > &  RetVals,
const ReachabilitySet &  ReachSet 
)
static
static void processWorkListItem ( const WorkListItem &  Item,
const CFLGraph Graph,
ReachabilitySet &  ReachSet,
AliasMemSet &  MemSet,
std::vector< WorkListItem > &  WorkList 
)
static

Definition at line 605 of file CFLAndersAliasAnalysis.cpp.

References assert(), getNodeBelow(), and propagate().

static void propagate ( InstantiatedValue  From,
InstantiatedValue  To,
MatchState  State,
ReachabilitySet &  ReachSet,
std::vector< WorkListItem > &  WorkList 
)
static

Definition at line 565 of file CFLAndersAliasAnalysis.cpp.

Referenced by initializeWorkList(), and processWorkListItem().