LLVM: lib/Analysis/MemoryProfileInfo.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
Macros
#define DEBUG_TYPE "memory-profile-info"
Functions
LLVM_ABI cl::opt< bool > llvm::MemProfKeepAllNotColdContexts ("memprof-keep-all-not-cold-contexts", cl::init(false), cl::Hidden, cl::desc("Keep all non-cold contexts (increases cloning overheads)"))
LLVM_ABI cl::opt< bool > llvm::MemProfUseAmbiguousAttributes ("memprof-ambiguous-attributes", cl::init(true), cl::Hidden, cl::desc("Apply ambiguous memprof attribute to ambiguous allocations"))
static MDNode * createMIBNode (LLVMContext &Ctx, ArrayRef< uint64_t > MIBCallStack, AllocationType AllocType, ArrayRef< ContextTotalSize > ContextSizeInfo, const uint64_t MaxColdSize, bool BuiltFromExistingMetadata, uint64_t &TotalBytes, uint64_t &ColdBytes)
static void saveFilteredNewMIBNodes (std::vector< Metadata * > &NewMIBNodes, std::vector< Metadata * > &SavedMIBNodes, unsigned CallerContextLength, uint64_t TotalBytes, uint64_t ColdBytes, bool BuiltFromExistingMetadata)
Variables
cl::opt< bool > llvm::MemProfReportHintedSizes ("memprof-report-hinted-sizes", cl::init(false), cl::Hidden, cl::desc("Report total allocation sizes of hinted allocations"))
cl::opt< unsigned > llvm::MinClonedColdBytePercent ("memprof-cloning-cold-threshold", cl::init(100), cl::Hidden, cl::desc("Min percent of cold bytes to hint alloc cold during cloning"))
cl::opt< unsigned > llvm::MinCallsiteColdBytePercent ("memprof-callsite-cold-threshold", cl::init(100), cl::Hidden, cl::desc("Min percent of cold bytes at a callsite to discard non-cold " "contexts"))
cl::opt< unsigned > llvm::MinPercentMaxColdSize ("memprof-min-percent-max-cold-size", cl::init(100), cl::Hidden, cl::desc("Min percent of max cold bytes for critical cold context"))

DEBUG_TYPE

#define DEBUG_TYPE "memory-profile-info"

createMIBNode()

Definition at line 217 of file MemoryProfileInfo.cpp.

References assert(), llvm::memprof::buildCallstackMetadata(), llvm::Cold, llvm::ArrayRef< T >::empty(), llvm::MDNode::get(), llvm::MDString::get(), llvm::ValueAsMetadata::get(), llvm::memprof::getAllocTypeAttributeString(), llvm::Type::getInt64Ty(), llvm::memprof::metadataIncludesAllContextSizeInfo(), llvm::MinCallsiteColdBytePercent, llvm::MinPercentMaxColdSize, llvm::MDTuple::push_back(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

saveFilteredNewMIBNodes()

void saveFilteredNewMIBNodes ( std::vector< Metadata * > & NewMIBNodes, std::vector< Metadata * > & SavedMIBNodes, unsigned CallerContextLength, uint64_t TotalBytes, uint64_t ColdBytes, bool BuiltFromExistingMetadata ) static

Definition at line 288 of file MemoryProfileInfo.cpp.

References llvm::append_range(), assert(), llvm::cast(), llvm::Cold, llvm::dyn_cast(), llvm::mdconst::dyn_extract(), llvm::errs(), llvm::format(), llvm::memprof::getMIBAllocType(), llvm::memprof::getMIBStackNode(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), I, llvm::make_filter_range(), llvm::MemProfKeepAllNotColdContexts(), llvm::MemProfReportHintedSizes, llvm::MinCallsiteColdBytePercent, and llvm::raw_string_ostream::str().