[llvm] [llvm-ir2vec] Adding FuncEmb API to ir2vec python bindings (PR #179908)

Nishant Sachdeva via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 5 03:35:00 PST 2026


================
@@ -76,23 +76,49 @@ class PyIR2VecTool {
     if (!ToolFuncEmbMap)
       throw nb::value_error(toString(ToolFuncEmbMap.takeError()).c_str());
 
-    nb::dict NBFuncEmbMap;
+    nb::dict NbFuncEmbMap;
 
     for (const auto &[FuncPtr, FuncEmb] : *ToolFuncEmbMap) {
       auto FuncEmbVec = FuncEmb.getData();
-      double *NBFuncEmbVec = new double[FuncEmbVec.size()];
-      std::copy(FuncEmbVec.begin(), FuncEmbVec.end(), NBFuncEmbVec);
+      double *NbFuncEmbVec = new double[FuncEmbVec.size()];
+      std::copy(FuncEmbVec.begin(), FuncEmbVec.end(), NbFuncEmbVec);
 
       auto NbArray = nb::ndarray<nb::numpy, double>(
-          NBFuncEmbVec, {FuncEmbVec.size()},
-          nb::capsule(NBFuncEmbVec, [](void *P) noexcept {
+          NbFuncEmbVec, {FuncEmbVec.size()},
+          nb::capsule(NbFuncEmbVec, [](void *P) noexcept {
             delete[] static_cast<double *>(P);
           }));
 
-      NBFuncEmbMap[nb::str(FuncPtr->getName().str().c_str())] = NbArray;
+      NbFuncEmbMap[nb::str(FuncPtr->getName().str().c_str())] = NbArray;
     }
 
-    return NBFuncEmbMap;
+    return NbFuncEmbMap;
+  }
+
+  nb::ndarray<nb::numpy, double> getFuncEmb(const std::string &FuncName) {
+    const Function *FuncPtr = M->getFunction(FuncName);
----------------
nishant-sachdeva wrote:

Accepted this

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


More information about the llvm-commits mailing list