[llvm] [ctx_prof] CtxProfAnalysis: populate module data (PR #102930)
Snehasish Kumar via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 12 14:35:14 PDT 2024
================
@@ -349,3 +350,34 @@ bool CtxInstrumentationLowerer::lowerFunction(Function &F) {
F.getName());
return true;
}
+
+const char *AssignUniqueIDPass::GUIDMetadataName = "unique_id";
+
+PreservedAnalyses AssignUniqueIDPass::run(Module &M,
+ ModuleAnalysisManager &MAM) {
+ for (auto &F : M.functions()) {
+ if (F.isDeclaration())
+ continue;
+ const GlobalValue::GUID GUID = F.getGUID();
+ assert(!F.getMetadata(GUIDMetadataName) ||
+ GUID == AssignUniqueIDPass::getGUID(F));
+ F.setMetadata(GUIDMetadataName,
+ MDNode::get(M.getContext(),
+ {ConstantAsMetadata::get(ConstantInt::get(
+ Type::getInt64Ty(M.getContext()), GUID))}));
+ }
+ return PreservedAnalyses::none();
+}
+
+GlobalValue::GUID AssignUniqueIDPass::getGUID(const Function &F) {
+ if (F.isDeclaration()) {
+ assert(GlobalValue::isExternalLinkage(F.getLinkage()));
+ return GlobalValue::getGUID(F.getGlobalIdentifier());
+ }
+ auto *MD = F.getMetadata(GUIDMetadataName);
+ assert(MD);
----------------
snehasish wrote:
assert(MD && "missing guid metadata");
https://github.com/llvm/llvm-project/pull/102930
More information about the llvm-commits
mailing list