LLVM 22.0.0git
llvm::AssignGUIDPass Class Reference

Assign a GUID to functions as metadata. More...

#include "llvm/Analysis/CtxProfAnalysis.h"

Inheritance diagram for llvm::AssignGUIDPass:
[legend]

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 charGUIDMetadataName = "guid"

Detailed Description

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.

Constructor & Destructor Documentation

◆ AssignGUIDPass()

llvm::AssignGUIDPass::AssignGUIDPass ( )
explicitdefault

References LLVM_ABI, and MAM.

Member Function Documentation

◆ getGUID()

◆ 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().

Member Data Documentation

◆ GUIDMetadataName

const char * AssignGUIDPass::GUIDMetadataName = "guid"
static

Definition at line 207 of file CtxProfAnalysis.h.

Referenced by getGUID(), run(), and llvm::JumpTableToSwitchPass::run().


The documentation for this class was generated from the following files: