|
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().
1.8.13