[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