[llvm] [llvm-ir2vec] adding inst-embedding map API to ir2vec python bindings (PR #177308)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 21 21:25:49 PST 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp,h -- llvm/include/llvm/Analysis/IR2Vec.h llvm/lib/Analysis/IR2Vec.cpp llvm/tools/llvm-ir2vec/Bindings/PyIR2Vec.cpp llvm/tools/llvm-ir2vec/lib/Utils.cpp llvm/tools/llvm-ir2vec/lib/Utils.h --diff_from_common_commit
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/tools/llvm-ir2vec/Bindings/PyIR2Vec.cpp b/llvm/tools/llvm-ir2vec/Bindings/PyIR2Vec.cpp
index 34d882505..7b5e09adc 100644
--- a/llvm/tools/llvm-ir2vec/Bindings/PyIR2Vec.cpp
+++ b/llvm/tools/llvm-ir2vec/Bindings/PyIR2Vec.cpp
@@ -135,18 +135,18 @@ public:
       llvm::raw_string_ostream RSO(inst_str);
       inst_ptr->print(RSO);
       RSO.flush();
-      
+
       auto data = embedding.getData();
-      
+
       double *data_ptr = new double[data.size()];
       std::copy(data.data(), data.data() + data.size(), data_ptr);
-      
+
       // Create nanobind numpy array with dynamic 1D shape
       auto nb_array = nb::ndarray<nb::numpy, double, nb::shape<-1>>(
           data_ptr, {data.size()}, nb::capsule(data_ptr, [](void *p) noexcept {
             delete[] static_cast<double *>(p);
           }));
-      
+
       nb_result.append(nb::make_tuple(nb::str(inst_str.c_str()), nb_array));
     }
 
@@ -172,8 +172,8 @@ NB_MODULE(ir2vec, m) {
            "Returns: list[tuple[str, ndarray[float64]]] - "
            "[{bb_name, embedding}]")
       .def("getInstEmbMap", &PyIR2VecTool::getInstEmbMap,
-          "Generate instruction embeddings for all functions\n"
-          "Returns: list[tuple[str, ndarray[float64]]]");
+           "Generate instruction embeddings for all functions\n"
+           "Returns: list[tuple[str, ndarray[float64]]]");
 
   m.def(
       "initEmbedding",
diff --git a/llvm/tools/llvm-ir2vec/lib/Utils.cpp b/llvm/tools/llvm-ir2vec/lib/Utils.cpp
index 14d60c8ee..191799c45 100644
--- a/llvm/tools/llvm-ir2vec/lib/Utils.cpp
+++ b/llvm/tools/llvm-ir2vec/lib/Utils.cpp
@@ -218,7 +218,8 @@ BBEmbeddingsMap IR2VecTool::getBBEmbeddings(IR2VecKind Kind) const {
   return Result;
 }
 
-InstEmbeddingsMap IR2VecTool::getInstEmbeddings(const Function &F, IR2VecKind Kind) const {
+InstEmbeddingsMap IR2VecTool::getInstEmbeddings(const Function &F,
+                                                IR2VecKind Kind) const {
   assert(Vocab && Vocab->isValid() && "Vocabulary not initialized");
 
   InstEmbeddingsMap Result;

``````````

</details>


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


More information about the llvm-commits mailing list