[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 05:09:24 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:

I'm not sure about this return.

I find it strange that the code pushes some, but not all of the callees. Maybe I'm missing some context and the cases where we fail to extract the function are at the end.

https://github.com/llvm/llvm-project/pull/108802


More information about the llvm-commits mailing list