[llvm] [llvm-ir2vec] Place IR2Vec Python bindings in the tools/llvm-ir2vec/Bindings build directory (PR #194301)
Nishant Sachdeva via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 28 03:00:40 PDT 2026
https://github.com/nishant-sachdeva updated https://github.com/llvm/llvm-project/pull/194301
>From b552e8be9da2a98849a0e589c527aad796600a9e Mon Sep 17 00:00:00 2001
From: nishant_sachdeva <nishant.sachdeva at research.iiit.ac.in>
Date: Mon, 27 Apr 2026 12:53:34 +0530
Subject: [PATCH 1/2] Place IR2Vec Python bindings in the
tools/llvm-ir2vec/Bindings build directory
---
llvm/tools/llvm-ir2vec/Bindings/CMakeLists.txt | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/llvm/tools/llvm-ir2vec/Bindings/CMakeLists.txt b/llvm/tools/llvm-ir2vec/Bindings/CMakeLists.txt
index 582dfb3058385..5cf142cb3b599 100644
--- a/llvm/tools/llvm-ir2vec/Bindings/CMakeLists.txt
+++ b/llvm/tools/llvm-ir2vec/Bindings/CMakeLists.txt
@@ -30,6 +30,10 @@ find_package(nanobind CONFIG REQUIRED)
nanobind_add_module(ir2vec MODULE PyIR2Vec.cpp)
+set_target_properties(ir2vec PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+)
+
# Python bindings require exception handling and RTTI to convert C++ exceptions
# to Python exceptions. LLVM core is compiled with -fno-exceptions -fno-rtti,
# but Python bindings are compiled separately with these features enabled.
>From fe7c5cb211d53e9852daba81d0002b8da3e0d9c3 Mon Sep 17 00:00:00 2001
From: nishant_sachdeva <nishant.sachdeva at research.iiit.ac.in>
Date: Tue, 28 Apr 2026 15:29:58 +0530
Subject: [PATCH 2/2] Work Commit - ir2vec python bindings test were using
incorrect executable
---
llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getBBEmbMap.py | 2 +-
llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmb.py | 2 +-
llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmbMap.py | 2 +-
llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncNames.py | 2 +-
llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getInstEmbMap.py | 2 +-
llvm/test/tools/llvm-ir2vec/bindings/ir2vec-initEmbedding.py | 2 +-
llvm/test/tools/llvm-ir2vec/bindings/lit.local.cfg | 5 ++++-
7 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getBBEmbMap.py b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getBBEmbMap.py
index 963e0d0adeca5..984ed25fae76c 100644
--- a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getBBEmbMap.py
+++ b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getBBEmbMap.py
@@ -1,4 +1,4 @@
-# RUN: env PYTHONPATH=%llvm_lib_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
+# RUN: env PYTHONPATH=%ir2vec_python_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
import sys
import ir2vec
diff --git a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmb.py b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmb.py
index b7ac30f689da6..f566e4e6556cf 100644
--- a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmb.py
+++ b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmb.py
@@ -1,4 +1,4 @@
-# RUN: env PYTHONPATH=%llvm_lib_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
+# RUN: env PYTHONPATH=%ir2vec_python_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
import sys
import ir2vec
diff --git a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmbMap.py b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmbMap.py
index 6bc3adbca80ac..780baf515e07f 100644
--- a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmbMap.py
+++ b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmbMap.py
@@ -1,4 +1,4 @@
-# RUN: env PYTHONPATH=%llvm_lib_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
+# RUN: env PYTHONPATH=%ir2vec_python_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
import sys
import ir2vec
diff --git a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncNames.py b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncNames.py
index f4420bae6caac..70b611798d548 100644
--- a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncNames.py
+++ b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncNames.py
@@ -1,4 +1,4 @@
-# RUN: env PYTHONPATH=%llvm_lib_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
+# RUN: env PYTHONPATH=%ir2vec_python_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
import sys
import ir2vec
diff --git a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getInstEmbMap.py b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getInstEmbMap.py
index a76d23ed84146..5bd233e1a61a8 100644
--- a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getInstEmbMap.py
+++ b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getInstEmbMap.py
@@ -1,4 +1,4 @@
-# RUN: env PYTHONPATH=%llvm_lib_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
+# RUN: env PYTHONPATH=%ir2vec_python_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
import sys
import ir2vec
diff --git a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-initEmbedding.py b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-initEmbedding.py
index 071a9dc202dd0..e93e1b9ef18fe 100644
--- a/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-initEmbedding.py
+++ b/llvm/test/tools/llvm-ir2vec/bindings/ir2vec-initEmbedding.py
@@ -1,4 +1,4 @@
-# RUN: env PYTHONPATH=%llvm_lib_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
+# RUN: env PYTHONPATH=%ir2vec_python_dir %python %s %S/../Inputs/input.ll %ir2vec_test_vocab_dir/dummy_3D_nonzero_opc_vocab.json | FileCheck %s
import sys
import ir2vec
diff --git a/llvm/test/tools/llvm-ir2vec/bindings/lit.local.cfg b/llvm/test/tools/llvm-ir2vec/bindings/lit.local.cfg
index af02c9e434923..78679869d7e1b 100644
--- a/llvm/test/tools/llvm-ir2vec/bindings/lit.local.cfg
+++ b/llvm/test/tools/llvm-ir2vec/bindings/lit.local.cfg
@@ -1,9 +1,12 @@
import sys
+import os
# Only run if user explicitly enabled bindings
if not config.llvm_ir2vec_test_python_bindings:
config.unsupported = True
else:
+ bindings_dir = os.path.join(os.path.dirname(config.llvm_lib_dir),
+ "tools", "llvm-ir2vec", "Bindings")
config.substitutions.append(('%python', sys.executable))
- config.substitutions.append(('%llvm_lib_dir', config.llvm_lib_dir))
+ config.substitutions.append(('%ir2vec_python_dir', bindings_dir))
config.suffixes = ['.py']
More information about the llvm-commits
mailing list