LLVM
15.0.0git
|
#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/InitializePasses.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 is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "cfl-anders-aa" |
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.
|
static |
Definition at line 735 of file CFLAndersAliasAnalysis.cpp.
References E, I, and llvm::cflaa::CFLGraph::value_mappings().
|
static |
Definition at line 355 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 628 of file CFLAndersAliasAnalysis.cpp.
References llvm::cflaa::InstantiatedValue::DerefLevel, None, and llvm::cflaa::InstantiatedValue::Val.
Referenced by processWorkListItem().
|
static |
Definition at line 346 of file CFLAndersAliasAnalysis.cpp.
Referenced by populateExternalRelations().
|
static |
Definition at line 350 of file CFLAndersAliasAnalysis.cpp.
Referenced by populateExternalRelations().
INITIALIZE_PASS | ( | CFLAndersAAWrapperPass | , |
"cfl-anders-aa" | , | ||
"Inclusion-Based CFL Alias Analysis" | , | ||
false | , | ||
true | |||
) |
Definition at line 910 of file CFLAndersAliasAnalysis.cpp.
|
static |
Definition at line 605 of file CFLAndersAliasAnalysis.cpp.
References assert(), E, I, propagate(), and llvm::cflaa::CFLGraph::value_mappings().
|
static |
Definition at line 384 of file CFLAndersAliasAnalysis.cpp.
References llvm::sort(), and llvm::cflaa::UnknownOffset.
Referenced by llvm::CFLAndersAAResult::FunctionInfo::FunctionInfo().
|
static |
Definition at line 370 of file CFLAndersAliasAnalysis.cpp.
Referenced by llvm::CFLAndersAAResult::FunctionInfo::FunctionInfo().
|
static |
Definition at line 489 of file CFLAndersAliasAnalysis.cpp.
References llvm::cflaa::getExternallyVisibleAttrs(), and getInterfaceValue().
Referenced by llvm::CFLAndersAAResult::FunctionInfo::FunctionInfo().
|
static |
Definition at line 404 of file CFLAndersAliasAnalysis.cpp.
References Arg, llvm::Function::args(), llvm::SmallVectorImpl< T >::erase(), getInterfaceValue(), hasReadOnlyState(), hasWriteOnlyState(), llvm::is_contained(), llvm::sort(), llvm::unique(), and llvm::cflaa::UnknownOffset.
Referenced by llvm::CFLAndersAAResult::FunctionInfo::FunctionInfo().
|
static |
Definition at line 636 of file CFLAndersAliasAnalysis.cpp.
References assert(), getNodeBelow(), and propagate().
|
static |
Definition at line 596 of file CFLAndersAliasAnalysis.cpp.
References From.
Referenced by initializeWorkList(), and processWorkListItem().