Skip to content

Commit e262995

Browse files
authored
fix copy tds (#18)
1 parent ad3ebad commit e262995

File tree

6 files changed

+69
-14
lines changed

6 files changed

+69
-14
lines changed

.github/workflows/test.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ jobs:
6666
uses: actions/checkout@v2
6767

6868
- name: Install Ninja
69-
uses: llvm/actions/install-ninja@6a57890d0e3f9f35dfc72e7e48bc5e1e527cdd6c # Jan 17
69+
uses: seanmiddleditch/gha-setup-ninja@v6
70+
with:
71+
version: '1.12.1'
7072

7173
- name: set ENV macos
7274
if: contains(matrix.OS, 'macos')
@@ -87,7 +89,7 @@ jobs:
8789
pip install -r requirements.txt
8890
pip install cmake>=3.28 setuptools>=42 wheel
8991
pip download mlir -f https://makslevental.github.io/wheels
90-
unzip mlir-*.whl
92+
unzip -q mlir-*.whl
9193
rm -rf mlir-*.whl
9294
echo "MLIR_DIR=$PWD/mlir" >> $GITHUB_ENV
9395

include/CMakeLists.txt

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,60 @@
1-
# this is so tablegen emits stuff into this dir
2-
set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR})
3-
41
set(dialect Minimal)
52
set(dialect_namespace minimal)
63
set(LLVM_TARGET_DEFINITIONS ${dialect}Dialect.td)
74

85
mlir_tablegen(${dialect}Ops.h.inc -gen-op-decls)
6+
set(OPS_H_INC_TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT})
97
mlir_tablegen(${dialect}Ops.cpp.inc -gen-op-defs)
8+
set(OPS_CPP_INC_TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT})
109
mlir_tablegen(${dialect}Types.h.inc -gen-typedef-decls
1110
-typedefs-dialect=${dialect_namespace})
11+
set(TYPES_H_INC_TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT})
1212
mlir_tablegen(${dialect}Types.cpp.inc -gen-typedef-defs
1313
-typedefs-dialect=${dialect_namespace})
14+
set(TYPES_CPP_INC_TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT})
1415
mlir_tablegen(${dialect}Dialect.h.inc -gen-dialect-decls
1516
-dialect=${dialect_namespace})
17+
set(DIALECT_H_INC_TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT})
1618
mlir_tablegen(${dialect}Dialect.cpp.inc -gen-dialect-defs
1719
-dialect=${dialect_namespace})
20+
set(DIALECT_CPP_INC_TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT})
1821
mlir_tablegen(MinimalPasses.h.inc --gen-pass-decls)
22+
set(PASS_H_INC_TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT})
1923

2024
add_public_tablegen_target(MLIR${dialect}IncGen)
25+
26+
set(generated_files
27+
${CMAKE_CURRENT_SOURCE_DIR}/${dialect}Ops.h.inc
28+
${CMAKE_CURRENT_SOURCE_DIR}/${dialect}Ops.cpp.inc
29+
${CMAKE_CURRENT_SOURCE_DIR}/${dialect}Types.h.inc
30+
${CMAKE_CURRENT_SOURCE_DIR}/${dialect}Types.cpp.inc
31+
${CMAKE_CURRENT_SOURCE_DIR}/${dialect}Dialect.h.inc
32+
${CMAKE_CURRENT_SOURCE_DIR}/${dialect}Dialect.cpp.inc
33+
${CMAKE_CURRENT_SOURCE_DIR}/${dialect}MinimalPasses.h.inc
34+
)
35+
36+
# copy generated files from build dir to here
37+
add_custom_command(
38+
OUTPUT
39+
${generated_files}
40+
DEPENDS
41+
MLIR${dialect}IncGen
42+
COMMENT
43+
"copying generated td files from build to src include dir"
44+
COMMAND
45+
${CMAKE_COMMAND} -E copy ${OPS_H_INC_TABLEGEN_OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}
46+
COMMAND
47+
${CMAKE_COMMAND} -E copy ${OPS_CPP_INC_TABLEGEN_OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}
48+
COMMAND
49+
${CMAKE_COMMAND} -E copy ${TYPES_H_INC_TABLEGEN_OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}
50+
COMMAND
51+
${CMAKE_COMMAND} -E copy ${TYPES_CPP_INC_TABLEGEN_OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}
52+
COMMAND
53+
${CMAKE_COMMAND} -E copy ${DIALECT_H_INC_TABLEGEN_OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}
54+
COMMAND
55+
${CMAKE_COMMAND} -E copy ${DIALECT_CPP_INC_TABLEGEN_OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}
56+
COMMAND
57+
${CMAKE_COMMAND} -E copy ${PASS_H_INC_TABLEGEN_OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}
58+
)
59+
60+
add_custom_target(copy_generated_td_to_src_include DEPENDS ${generated_files})

pyproject.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ requires = [
33
"cmake>=3.28",
44
"setuptools>=42",
55
"wheel",
6+
"ninja>=1.12.1"
67
]
78
build-backend = "setuptools.build_meta"
89

@@ -23,18 +24,18 @@ environment-pass = [
2324
"PIP_NO_BUILD_ISOLATION",
2425
]
2526
before-all = [
26-
"yum install -y epel-release && yum install -y ninja-build cmake gcc"
27+
"yum install -y epel-release && yum install -y cmake gcc"
2728
]
2829
before-build = [
2930
"pip install -r requirements.txt",
30-
"pip install cmake>=3.28 setuptools>=42 wheel"
31+
"pip install cmake>=3.28 setuptools>=42 wheel ninja>=1.12.1"
3132
]
3233

3334
[tool.cibuildwheel.macos]
3435
build = "cp310-* cp311-* cp312-*"
3536
before-build = [
3637
"pip install -r requirements.txt",
37-
"pip install cmake>=3.28 setuptools>=42 wheel"
38+
"pip install cmake>=3.28 setuptools>=42 wheel ninja>=1.12.1"
3839
]
3940
repair-wheel-command = []
4041

@@ -43,5 +44,5 @@ build = "cp38-* cp39-* cp310-* cp311-* cp312-*"
4344
skip = ["*-win32"]
4445
before-build = [
4546
"pip install -r requirements.txt",
46-
"pip install cmake>=3.28 setuptools>=42 wheel"
47+
"pip install cmake>=3.28 setuptools>=42 wheel ninja>=1.12.1"
4748
]

python/CMakeLists.txt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,25 @@ add_compile_definitions("MLIR_PYTHON_PACKAGE_PREFIX=mmlir.")
99

1010
declare_mlir_python_sources(MinimalPythonSources)
1111

12-
# this is so tablegen emits stuff into this dir
13-
set(SAVED_CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
14-
set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/mmlir/dialects)
1512
set(LLVM_TARGET_DEFINITIONS Minimal.td)
1613
mlir_tablegen(_minimal_ops_gen.py
1714
-gen-python-op-bindings -bind-dialect=minimal
1815
)
16+
set(MINIMAL_OPS_GEN_TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT})
1917
add_public_tablegen_target(MinimalPythonSources.minimal.tablegen)
20-
set(CMAKE_CURRENT_BINARY_DIR ${SAVED_CMAKE_CURRENT_BINARY_DIR})
18+
# copy generated files from build dir to here
19+
add_custom_command(
20+
OUTPUT
21+
${CMAKE_CURRENT_SOURCE_DIR}/mmlir/dialects/_minimal_ops_gen.py
22+
DEPENDS
23+
MinimalPythonSources.minimal.tablegen
24+
COMMENT
25+
"copying generated py files from build to src include dir"
26+
COMMAND
27+
${CMAKE_COMMAND} -E copy ${MINIMAL_OPS_GEN_TABLEGEN_OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}/mmlir/dialects
28+
)
29+
30+
add_custom_target(copy_generated_py_to_src_include DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/mmlir/dialects/_minimal_ops_gen.py)
2131

2232
declare_mlir_python_sources(MinimalPythonSources.minimal
2333
ADD_TO_PARENT MinimalPythonSources
@@ -72,3 +82,4 @@ add_mlir_python_modules(MinimalPythonModules
7282
COMMON_CAPI_LINK_LIBS
7383
MinimalPythonCAPI
7484
)
85+
add_dependencies(MinimalPythonModules copy_generated_py_to_src_include)

src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ add_mlir_dialect_library(
1010

1111
DEPENDS
1212
MLIRMinimalIncGen
13+
copy_generated_td_to_src_include
1314

1415
LINK_LIBS PUBLIC
1516
MLIRIR

src/MinimalDialect.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class MinimalSwitchBarFoo
7373
RewritePatternSet patterns(&getContext());
7474
patterns.add<MinimalSwitchBarFooRewriter>(&getContext());
7575
FrozenRewritePatternSet patternSet(std::move(patterns));
76-
if (failed(applyPatternsAndFoldGreedily(getOperation(), patternSet)))
76+
if (failed(applyPatternsGreedily(getOperation(), patternSet)))
7777
signalPassFailure();
7878
}
7979
};

0 commit comments

Comments
 (0)