|
LLVM
3.7.0
|
#include "StratifiedSets.h"#include "llvm/ADT/BitVector.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/None.h"#include "llvm/ADT/Optional.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/Analysis/Passes.h"#include "llvm/IR/Constants.h"#include "llvm/IR/Function.h"#include "llvm/IR/InstVisitor.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/ValueHandle.h"#include "llvm/Pass.h"#include "llvm/Support/Allocator.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/raw_ostream.h"#include <algorithm>#include <cassert>#include <forward_list>#include <memory>#include <tuple>#include "llvm/IR/Instruction.def"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "cfl-aa" |
| #define | HANDLE_INST(NUM, OPCODE, CLASS) |
Enumerations | |
| enum | Level |
| enum | EdgeType |
Functions | |
| static Optional< Function * > | parentFunctionOfValue (Value *) |
| template<typename Inst > | |
| static bool | getPossibleTargets (Inst *, SmallVectorImpl< Function * > &) |
| static Optional< Value * > | getTargetValue (Instruction *) |
| static bool | hasUsefulEdges (Instruction *) |
| INITIALIZE_AG_PASS (CFLAliasAnalysis, AliasAnalysis,"cfl-aa","CFL-Based AA implementation", false, true, false) ImmutablePass *llvm | |
| static StratifiedAttr | argNumberToAttrIndex (StratifiedAttr) |
| static Optional< StratifiedAttr > | valueToAttrIndex (Value *Val) |
| static EdgeType | flipWeight (EdgeType) |
| static void | argsToEdges (CFLAliasAnalysis &, Instruction *, SmallVectorImpl< Edge > &) |
| static void | argsToEdges (CFLAliasAnalysis &, ConstantExpr *, SmallVectorImpl< Edge > &) |
| static Level | directionOfEdgeType (EdgeType) |
| static void | buildGraphFrom (CFLAliasAnalysis &, Function *, SmallVectorImpl< Value * > &, NodeMapT &, GraphT &) |
| static void | constexprToEdges (CFLAliasAnalysis &, ConstantExpr &, SmallVectorImpl< Edge > &) |
| static void | addInstructionToGraph (CFLAliasAnalysis &, Instruction &, SmallVectorImpl< Value * > &, NodeMapT &, GraphT &) |
| static bool | canSkipAddingToSets (Value *Val) |
| static FunctionInfo | buildSetsFrom (CFLAliasAnalysis &, Function *) |
| static bool | hasUsefulEdges (ConstantExpr *CE) |
| static StratifiedAttr | argNumberToAttrIndex (unsigned ArgNum) |
| #define DEBUG_TYPE "cfl-aa" |
Definition at line 56 of file CFLAliasAnalysis.cpp.
| #define HANDLE_INST | ( | NUM, | |
| OPCODE, | |||
| CLASS | |||
| ) |
|
strong |
Definition at line 104 of file CFLAliasAnalysis.cpp.
|
strong |
Definition at line 100 of file CFLAliasAnalysis.cpp.
|
static |
Definition at line 922 of file CFLAliasAnalysis.cpp.
References argsToEdges(), constexprToEdges(), llvm::SmallVectorBase::empty(), flipWeight(), getTargetValue(), hasUsefulEdges(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by buildGraphFrom().
|
static |
Referenced by valueToAttrIndex().
|
static |
Definition at line 847 of file CFLAliasAnalysis.cpp.
|
static |
Definition at line 865 of file CFLAliasAnalysis.cpp.
References hasUsefulEdges().
Referenced by addInstructionToGraph(), and constexprToEdges().
|
static |
Definition at line 873 of file CFLAliasAnalysis.cpp.
References hasUsefulEdges().
|
static |
Definition at line 985 of file CFLAliasAnalysis.cpp.
References addInstructionToGraph(), and llvm::Function::getBasicBlockList().
Referenced by buildSetsFrom().
|
static |
Definition at line 1015 of file CFLAliasAnalysis.cpp.
References llvm::StratifiedSetsBuilder< T >::add(), llvm::StratifiedSetsBuilder< T >::addAbove(), llvm::StratifiedSetsBuilder< T >::addBelow(), llvm::StratifiedSetsBuilder< T >::addWith(), llvm::Function::args(), llvm::StratifiedSetsBuilder< T >::build(), buildGraphFrom(), canSkipAddingToSets(), llvm::SmallVectorImpl< T >::clear(), directionOfEdgeType(), llvm::SmallVectorBase::empty(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::Label, llvm::StratifiedSetsBuilder< T >::noteAttributes(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::resize(), and valueToAttrIndex().
Definition at line 993 of file CFLAliasAnalysis.cpp.
Referenced by buildSetsFrom().
|
static |
Definition at line 892 of file CFLAliasAnalysis.cpp.
References llvm::SmallVectorImpl< T >::append(), argsToEdges(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorBase::empty(), hasUsefulEdges(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by addInstructionToGraph().
Definition at line 880 of file CFLAliasAnalysis.cpp.
References llvm_unreachable.
Referenced by buildSetsFrom().
Definition at line 853 of file CFLAliasAnalysis.cpp.
References llvm_unreachable.
Referenced by addInstructionToGraph().
|
static |
Definition at line 804 of file CFLAliasAnalysis.cpp.
References llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
|
static |
Definition at line 816 of file CFLAliasAnalysis.cpp.
Referenced by addInstructionToGraph().
|
static |
Definition at line 821 of file CFLAliasAnalysis.cpp.
Referenced by addInstructionToGraph(), argsToEdges(), and constexprToEdges().
|
static |
Definition at line 827 of file CFLAliasAnalysis.cpp.
References llvm::ConstantExpr::getOpcode().
| INITIALIZE_AG_PASS | ( | CFLAliasAnalysis | , |
| AliasAnalysis | , | ||
| "cfl-aa" | , | ||
| "CFL-Based AA implementation" | , | ||
| false | , | ||
| true | , | ||
| false | |||
| ) |
Definition at line 733 of file CFLAliasAnalysis.cpp.
Definition at line 792 of file CFLAliasAnalysis.cpp.
References llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), and llvm::GlobalValue::getParent().
Definition at line 834 of file CFLAliasAnalysis.cpp.
References argNumberToAttrIndex().
Referenced by buildSetsFrom().
1.8.6