Skip to content

Commit 451eab8

Browse files
committed
[WIP] Expose StableHLO python bindings
1 parent be41632 commit 451eab8

File tree

5 files changed

+644
-8
lines changed

5 files changed

+644
-8
lines changed

CMakeLists.txt

+5-6
Original file line numberDiff line numberDiff line change
@@ -836,19 +836,18 @@ else()
836836
iree_llvm_add_usage_requirements(MLIRSupport IREELLVMIncludeSetup)
837837

838838
# Add external projects.
839-
840-
message(STATUS "Configuring llvm-external-projects/mlir-iree-dialects")
841-
list(APPEND CMAKE_MESSAGE_INDENT " ")
842-
iree_llvm_add_external_project(mlir-iree-dialects ${CMAKE_CURRENT_SOURCE_DIR}/llvm-external-projects/iree-dialects)
843-
list(POP_BACK CMAKE_MESSAGE_INDENT)
844-
845839
if(IREE_INPUT_STABLEHLO)
846840
message(STATUS "Configuring third_party/stablehlo")
847841
list(APPEND CMAKE_MESSAGE_INDENT " ")
848842
iree_llvm_add_external_project(stablehlo ${CMAKE_CURRENT_SOURCE_DIR}/third_party/stablehlo)
849843
list(POP_BACK CMAKE_MESSAGE_INDENT)
850844
endif()
851845

846+
message(STATUS "Configuring llvm-external-projects/mlir-iree-dialects")
847+
list(APPEND CMAKE_MESSAGE_INDENT " ")
848+
iree_llvm_add_external_project(mlir-iree-dialects ${CMAKE_CURRENT_SOURCE_DIR}/llvm-external-projects/iree-dialects)
849+
list(POP_BACK CMAKE_MESSAGE_INDENT)
850+
852851
# Ensure that LLVM-based dependencies needed for testing are included.
853852
add_dependencies(iree-test-deps FileCheck)
854853
if(IREE_LLD_TARGET)

compiler/bindings/python/CMakeLists.txt

+101
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,107 @@ declare_mlir_python_extension(IREECompilerPythonExtensions.CompilerDialects
185185
LLVMSupport
186186
)
187187

188+
if (IREE_INPUT_STABLEHLO)
189+
set(STABLEHLO_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/stablehlo")
190+
set(STABLEHLO_PYTHON_SOURCE_DIR "${STABLEHLO_SOURCE_DIR}/stablehlo/integrations/python")
191+
include_directories(${STABLEHLO_SOURCE_DIR})
192+
193+
declare_mlir_python_sources(CheckPythonSources.Dialects
194+
ADD_TO_PARENT IREEPythonSources
195+
)
196+
197+
declare_mlir_dialect_python_bindings(
198+
ADD_TO_PARENT CheckPythonSources.Dialects
199+
ROOT_DIR "${STABLEHLO_PYTHON_SOURCE_DIR}/mlir"
200+
TD_FILE dialects/CheckOps.td
201+
SOURCES dialects/check.py
202+
DIALECT_NAME check)
203+
204+
declare_mlir_python_sources(ChloPythonSources.Dialects
205+
ADD_TO_PARENT IREEPythonSources
206+
)
207+
208+
declare_mlir_dialect_python_bindings(
209+
ADD_TO_PARENT ChloPythonSources.Dialects
210+
ROOT_DIR "${STABLEHLO_PYTHON_SOURCE_DIR}/mlir"
211+
TD_FILE dialects/ChloOps.td
212+
SOURCES dialects/chlo.py
213+
DIALECT_NAME chlo)
214+
215+
declare_mlir_python_sources(StablehloPythonSources.Dialects
216+
ADD_TO_PARENT IREEPythonSources
217+
)
218+
219+
declare_mlir_dialect_python_bindings(
220+
ADD_TO_PARENT StablehloPythonSources.Dialects
221+
ROOT_DIR "${STABLEHLO_PYTHON_SOURCE_DIR}/mlir"
222+
TD_FILE dialects/StablehloOps.td
223+
SOURCES dialects/stablehlo.py
224+
DIALECT_NAME stablehlo)
225+
226+
declare_mlir_python_sources(VhloPythonSources.Dialects
227+
ADD_TO_PARENT IREEPythonSources
228+
)
229+
230+
declare_mlir_dialect_python_bindings(
231+
ADD_TO_PARENT VhloPythonSources.Dialects
232+
ROOT_DIR "${STABLEHLO_PYTHON_SOURCE_DIR}/mlir"
233+
TD_FILE dialects/VhloOps.td
234+
SOURCES dialects/vhlo.py
235+
DIALECT_NAME vhlo)
236+
237+
################################################################################
238+
# Extensions
239+
################################################################################
240+
241+
set(STABLEHLO_PYTHON_SOURCE_DIR "/../../../third_party/stablehlo/stablehlo/integrations/python")
242+
243+
declare_mlir_python_extension(CheckPythonExtensions.Main
244+
MODULE_NAME _check
245+
ADD_TO_PARENT IREECompilerPythonExtensions.CompilerDialects
246+
SOURCES
247+
"${STABLEHLO_PYTHON_SOURCE_DIR}/CheckModule.cpp"
248+
EMBED_CAPI_LINK_LIBS
249+
CheckCAPI
250+
PRIVATE_LINK_LIBS
251+
LLVMSupport
252+
)
253+
254+
declare_mlir_python_extension(ChloPythonExtensions.Main
255+
MODULE_NAME _chlo
256+
ADD_TO_PARENT IREECompilerPythonExtensions.CompilerDialects
257+
SOURCES
258+
"${STABLEHLO_PYTHON_SOURCE_DIR}/ChloModule.cpp"
259+
EMBED_CAPI_LINK_LIBS
260+
ChloCAPI
261+
PRIVATE_LINK_LIBS
262+
LLVMSupport
263+
)
264+
265+
declare_mlir_python_extension(StablehloPythonExtensions.Main
266+
MODULE_NAME _stablehlo
267+
ADD_TO_PARENT IREECompilerPythonExtensions.CompilerDialects
268+
SOURCES
269+
"${STABLEHLO_PYTHON_SOURCE_DIR}/StablehloApi.cpp"
270+
"${STABLEHLO_PYTHON_SOURCE_DIR}/StablehloModule.cpp"
271+
EMBED_CAPI_LINK_LIBS
272+
StablehloCAPI
273+
PRIVATE_LINK_LIBS
274+
LLVMSupport
275+
)
276+
277+
declare_mlir_python_extension(VhloPythonExtensions.Main
278+
MODULE_NAME _vhlo
279+
ADD_TO_PARENT IREECompilerPythonExtensions.CompilerDialects
280+
SOURCES
281+
"${STABLEHLO_PYTHON_SOURCE_DIR}/VhloModule.cpp"
282+
EMBED_CAPI_LINK_LIBS
283+
VhloCAPI
284+
PRIVATE_LINK_LIBS
285+
LLVMSupport
286+
)
287+
endif()
288+
188289
################################################################################
189290
# Generate packages and shared library
190291
################################################################################

0 commit comments

Comments
 (0)