|
LLVM
4.0.0
|
#include "llvm/Analysis/ModuleSummaryAnalysis.h"#include "llvm/ADT/MapVector.h"#include "llvm/ADT/SetVector.h"#include "llvm/ADT/Triple.h"#include "llvm/Analysis/BlockFrequencyInfo.h"#include "llvm/Analysis/BlockFrequencyInfoImpl.h"#include "llvm/Analysis/BranchProbabilityInfo.h"#include "llvm/Analysis/IndirectCallPromotionAnalysis.h"#include "llvm/Analysis/LoopInfo.h"#include "llvm/Analysis/ProfileSummaryInfo.h"#include "llvm/Analysis/TypeMetadataUtils.h"#include "llvm/IR/CallSite.h"#include "llvm/IR/Dominators.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/ValueSymbolTable.h"#include "llvm/Object/IRObjectFile.h"#include "llvm/Pass.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "module-summary-analysis" |
Functions | |
| static void | findRefEdges (const User *CurUser, SetVector< ValueInfo > &RefEdges, SmallPtrSet< const User *, 8 > &Visited) |
| static CalleeInfo::HotnessType | getHotness (uint64_t ProfileCount, ProfileSummaryInfo *PSI) |
| static bool | isNonRenamableLocal (const GlobalValue &GV) |
| static void | computeFunctionSummary (ModuleSummaryIndex &Index, const Module &M, const Function &F, BlockFrequencyInfo *BFI, ProfileSummaryInfo *PSI, bool HasLocalsInUsed, DenseSet< GlobalValue::GUID > &CantBePromoted) |
| static void | computeVariableSummary (ModuleSummaryIndex &Index, const GlobalVariable &V, DenseSet< GlobalValue::GUID > &CantBePromoted) |
| static void | computeAliasSummary (ModuleSummaryIndex &Index, const GlobalAlias &A, DenseSet< GlobalValue::GUID > &CantBePromoted) |
| static void | setLiveRoot (ModuleSummaryIndex &Index, StringRef Name) |
| INITIALIZE_PASS_BEGIN (ModuleSummaryIndexWrapperPass,"module-summary-analysis","Module Summary Analysis", false, true) INITIALIZE_PASS_END(ModuleSummaryIndexWrapperPass | |
Variables | |
| module summary | analysis |
| module summary Module Summary | Analysis |
| module summary Module Summary | false |
| #define DEBUG_TYPE "module-summary-analysis" |
Definition at line 35 of file ModuleSummaryAnalysis.cpp.
|
static |
Definition at line 219 of file ModuleSummaryAnalysis.cpp.
References llvm::ModuleSummaryIndex::addGlobalValueSummary(), assert(), fuzzer::Flags, llvm::GlobalIndirectSymbol::getBaseObject(), llvm::ModuleSummaryIndex::getGlobalValueSummary(), llvm::GlobalValue::getGUID(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), and isNonRenamableLocal().
Referenced by llvm::buildModuleSummaryIndex().
|
static |
Definition at line 88 of file ModuleSummaryAnalysis.cpp.
References llvm::ModuleSummaryIndex::addGlobalValueSummary(), llvm::any_of(), assert(), llvm::dyn_cast(), findRefEdges(), fuzzer::Flags, llvm::BlockFrequencyInfo::getBlockProfileCount(), llvm::GlobalValue::getGUID(), getHotness(), llvm::Function::getIntrinsicID(), llvm::ICallPromotionAnalysis::getPromotionCandidatesForInstruction(), llvm::Value::hasName(), I, llvm::SetVector< T, Vector, Set >::insert(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), isNonRenamableLocal(), llvm::None, llvm::MapVector< KeyT, ValueT, MapType, VectorType >::takeVector(), llvm::SetVector< T, Vector, Set >::takeVector(), and llvm::CalleeInfo::Unknown.
Referenced by llvm::buildModuleSummaryIndex().
|
static |
Definition at line 203 of file ModuleSummaryAnalysis.cpp.
References llvm::ModuleSummaryIndex::addGlobalValueSummary(), findRefEdges(), fuzzer::Flags, llvm::GlobalValue::getGUID(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), isNonRenamableLocal(), and llvm::SetVector< T, Vector, Set >::takeVector().
Referenced by llvm::buildModuleSummaryIndex().
|
static |
Definition at line 40 of file ModuleSummaryAnalysis.cpp.
References llvm::dyn_cast(), llvm::SmallVectorBase::empty(), llvm::SetVector< T, Vector, Set >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::isCallee(), llvm::User::operands(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by computeFunctionSummary(), and computeVariableSummary().
|
static |
Definition at line 72 of file ModuleSummaryAnalysis.cpp.
References llvm::CalleeInfo::Cold, llvm::CalleeInfo::Hot, llvm::ProfileSummaryInfo::isColdCount(), llvm::ProfileSummaryInfo::isHotCount(), llvm::CalleeInfo::None, and llvm::CalleeInfo::Unknown.
Referenced by computeFunctionSummary().
| INITIALIZE_PASS_BEGIN | ( | ModuleSummaryIndexWrapperPass | , |
| "module-summary-analysis" | , | ||
| "Module Summary Analysis" | , | ||
| false | , | ||
| true | |||
| ) |
|
static |
Definition at line 83 of file ModuleSummaryAnalysis.cpp.
References llvm::GlobalValue::hasLocalLinkage(), and llvm::GlobalValue::hasSection().
Referenced by computeAliasSummary(), computeFunctionSummary(), and computeVariableSummary().
|
static |
Definition at line 235 of file ModuleSummaryAnalysis.cpp.
References llvm::ModuleSummaryIndex::end(), llvm::ModuleSummaryIndex::findGlobalValueSummaryList(), and llvm::GlobalValue::getGUID().
Referenced by llvm::buildModuleSummaryIndex().
| module summary analysis |
Definition at line 409 of file ModuleSummaryAnalysis.cpp.
| module summary Module Summary Analysis |
Definition at line 409 of file ModuleSummaryAnalysis.cpp.
| module summary Module Summary false |
Definition at line 409 of file ModuleSummaryAnalysis.cpp.
1.8.6