[llvm] [AMDGPU][SplitModule] Handle !callees metadata (PR #108802)
Juan Manuel Martinez CaamaƱo via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 16 08:10:26 PDT 2024
================
@@ -476,12 +486,36 @@ void SplitGraph::Node::visitAllDependencies(
}
}
+/// Checks if \p I has MD_callees and if it does, parse it and put the function
+/// in \p Callees.
+///
+/// \returns true if there was metadata and it was parsed correctly. false if
+/// there was no MD or if it contained unknown entries.
+static bool handleCalleesMD(const Instruction &I,
+ SmallVector<Function *> &Callees) {
+ auto *MD = I.getMetadata(LLVMContext::MD_callees);
+ if (!MD)
+ return false;
+
+ for (const auto &Op : MD->operands()) {
+ Function *Callee = mdconst::extract_or_null<Function>(Op);
+ if (!Callee)
+ return false;
----------------
jmmartinez wrote:
It is not discarded. The for-loop continues iterating over the instructions and if it finds another indirect call with well-formed metadata it may push the callees before the ill-formed one in the set.
https://github.com/llvm/llvm-project/pull/108802
More information about the llvm-commits
mailing list