LLVM 22.0.0git
|
Assign a GUID to functions as metadata. More...
#include "llvm/Analysis/CtxProfAnalysis.h"
Public Member Functions | |
AssignGUIDPass ()=default | |
LLVM_ABI PreservedAnalyses | run (Module &M, ModuleAnalysisManager &MAM) |
Assign a GUID if one is not already assign, as a function metadata named GUIDMetadataName. | |
Public Member Functions inherited from llvm::PassInfoMixin< AssignGUIDPass > | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Static Public Member Functions | |
static LLVM_ABI uint64_t | getGUID (const Function &F) |
Static Public Member Functions inherited from llvm::PassInfoMixin< AssignGUIDPass > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. |
Static Public Attributes | |
static LLVM_ABI const char * | GUIDMetadataName = "guid" |
Assign a GUID to functions as metadata.
GUID calculation takes linkage into account, which may change especially through and after thinlto. By pre-computing and assigning as metadata, this mechanism is resilient to such changes (as well as name changes e.g. suffix ".llvm." additions).
Definition at line 200 of file CtxProfAnalysis.h.
|
static |
Definition at line 436 of file CtxProfAnalysis.cpp.
References assert(), llvm::cast(), F, GUIDMetadataName, and llvm::GlobalValue::isExternalLinkage().
Referenced by llvm::InlineFunction(), llvm::promoteCallWithIfThenElse(), llvm::CtxProfAnalysis::run(), llvm::JumpTableToSwitchPass::run(), and llvm::PGOCtxProfFlatteningPass::run().
PreservedAnalyses AssignGUIDPass::run | ( | Module & | M, |
ModuleAnalysisManager & | MAM ) |
Assign a GUID if one is not already assign, as a function metadata named GUIDMetadataName.
Definition at line 421 of file CtxProfAnalysis.cpp.
References F, llvm::MDNode::get(), GUIDMetadataName, MAM, and llvm::PreservedAnalyses::none().
Definition at line 207 of file CtxProfAnalysis.h.
Referenced by getGUID(), run(), and llvm::JumpTableToSwitchPass::run().