LLVM
8.0.1
|
#include "llvm/Analysis/CFLAndersAliasAnalysis.h"
#include "AliasAnalysisSummary.h"
#include "CFLGraph.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/MemoryLocation.h"
#include "llvm/IR/Argument.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/Type.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <bitset>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <utility>
#include <vector>
Go to the source code of this file.
Classes | |
struct | llvm::DenseMapInfo< OffsetValue > |
struct | llvm::DenseMapInfo< OffsetInstantiatedValue > |
class | llvm::CFLAndersAAResult::FunctionInfo |
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
Macros | |
#define | DEBUG_TYPE "cfl-anders-aa" |
Enumerations | |
enum | MatchState : uint8_t |
Functions | |
static bool | hasReadOnlyState (StateSet Set) |
static bool | hasWriteOnlyState (StateSet Set) |
static Optional< InterfaceValue > | getInterfaceValue (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 | |
#define DEBUG_TYPE "cfl-anders-aa" |
Definition at line 90 of file CFLAndersAliasAnalysis.cpp.
|
strong |
Definition at line 99 of file CFLAndersAliasAnalysis.cpp.
|
static |
Definition at line 734 of file CFLAndersAliasAnalysis.cpp.
References E, I, and llvm::cflaa::CFLGraph::value_mappings().
|
static |
Definition at line 353 of file CFLAndersAliasAnalysis.cpp.
References Arg, llvm::cflaa::InstantiatedValue::DerefLevel, llvm::is_contained(), llvm::None, and llvm::cflaa::InstantiatedValue::Val.
Referenced by populateExternalAttributes(), and populateExternalRelations().
|
static |
Definition at line 627 of file CFLAndersAliasAnalysis.cpp.
References llvm::cflaa::InstantiatedValue::DerefLevel, llvm::None, and llvm::cflaa::InstantiatedValue::Val.
Referenced by processWorkListItem().
|
static |
Definition at line 344 of file CFLAndersAliasAnalysis.cpp.
Referenced by populateExternalRelations().
|
static |
Definition at line 348 of file CFLAndersAliasAnalysis.cpp.
Referenced by populateExternalRelations().
INITIALIZE_PASS | ( | CFLAndersAAWrapperPass | , |
"cfl-anders-aa" | , | ||
"Inclusion-Based CFL Alias Analysis" | , | ||
false | , | ||
true | |||
) |
Definition at line 905 of file CFLAndersAliasAnalysis.cpp.
|
static |
Definition at line 604 of file CFLAndersAliasAnalysis.cpp.
References assert(), E, I, propagate(), and llvm::cflaa::CFLGraph::value_mappings().
|
static |
Definition at line 382 of file CFLAndersAliasAnalysis.cpp.
References llvm::sort(), and llvm::cflaa::UnknownOffset.
Referenced by llvm::CFLAndersAAResult::FunctionInfo::FunctionInfo().
|
static |
Definition at line 368 of file CFLAndersAliasAnalysis.cpp.
Referenced by llvm::CFLAndersAAResult::FunctionInfo::FunctionInfo().
|
static |
Definition at line 487 of file CFLAndersAliasAnalysis.cpp.
References llvm::cflaa::getExternallyVisibleAttrs(), getInterfaceValue(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by llvm::CFLAndersAAResult::FunctionInfo::FunctionInfo().
|
static |
Definition at line 402 of file CFLAndersAliasAnalysis.cpp.
References Arg, llvm::Function::args(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::SmallVectorImpl< T >::erase(), getInterfaceValue(), hasReadOnlyState(), hasWriteOnlyState(), llvm::is_contained(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::sort(), and llvm::cflaa::UnknownOffset.
Referenced by llvm::CFLAndersAAResult::FunctionInfo::FunctionInfo().
|
static |
Definition at line 635 of file CFLAndersAliasAnalysis.cpp.
References assert(), getNodeBelow(), and propagate().
|
static |
Definition at line 595 of file CFLAndersAliasAnalysis.cpp.
Referenced by llvm::DependenceInfo::depends(), llvm::DependenceInfo::getFunction(), llvm::DependenceInfo::getSplitIteration(), initializeWorkList(), and processWorkListItem().