Skip to content

Commit 09ff37c

Browse files
ausbinraviqqe
andauthored
WIP: Upgrade to LLVM 21 (#731)
Posting as a draft PR because there are are some interesting build errors when I run `cargo test` in my static-build fork (I assume they'd happen here too): ``` error: macros that expand to items must be delimited with braces or followed by a semicolon --> melior/src/dialect/ods.rs:180:1 | 180 | / melior_macro::dialect! { 181 | | name: "tosa", 182 | | files: ["mlir/Dialect/Tosa/IR/TosaOps.td"], 183 | | } | |_^ | = note: this error originates in the macro `melior_macro::dialect` (in Nightly builds, run with -Z macro-backtrace for more info) error: invalid ODS input: Included from :1: Included from /home/austin/bin/llvm21/include/mlir/Dialect/Tosa/IR/TosaOps.td:17: Included from /home/austin/bin/llvm21/include/mlir/IR/OpBase.td:18: Included from /home/austin/bin/llvm21/include/mlir/IR/Interfaces.td:16: Included from /home/austin/bin/llvm21/include/mlir/IR/AttrTypeBase.td:17: /home/austin/bin/llvm21/include/mlir/IR/CommonAttrConstraints.td:31:8: error: invalid conversion from Invalid to alloc::string::String code storageType = ?; // The backing mlir::Attribute type ^ --> melior/src/dialect/ods.rs:180:1 | 180 | / melior_macro::dialect! { 181 | | name: "tosa", 182 | | files: ["mlir/Dialect/Tosa/IR/TosaOps.td"], 183 | | } | |_^ | = note: this error originates in the macro `melior_macro::dialect` ``` However, I hope this PR still saves the maintainers a few minutes of time, particularly the updated pass names. Requires mlir-rs/mlir-sys#71 and mlir-rs/tblgen-rs#28 (or equivalent changes) Co-authored-by: Yota Toyama <[email protected]>
1 parent 6265b9c commit 09ff37c

File tree

5 files changed

+35
-36
lines changed

5 files changed

+35
-36
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,10 @@ cargo add melior
7878

7979
### Dependencies
8080

81-
[LLVM/MLIR 20](https://llvm.org/) needs to be installed on your system. On Linux and macOS, you can install it via [Homebrew](https://brew.sh).
81+
[LLVM/MLIR 21](https://llvm.org/) needs to be installed on your system. On Linux and macOS, you can install it via [Homebrew](https://brew.sh).
8282

8383
```sh
84-
brew install llvm@20
84+
brew install llvm@21
8585
```
8686

8787
## Documentation

macro/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ quote = "1"
2020
regex = "1.12.2"
2121
syn = { version = "2", features = ["full"] }
2222
tblgen = { version = "0.7.0", features = [
23-
"llvm20-0",
23+
"llvm21-0",
2424
], default-features = false }
2525
unindent = "0.2.4"
2626

macro/build.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::{env, error::Error, path::Path, process::Command, str};
22

3-
const LLVM_MAJOR_VERSION: usize = 20;
3+
const LLVM_MAJOR_VERSION: usize = 21;
44

55
fn main() -> Result<(), Box<dyn Error>> {
66
let version_variable = format!("MLIR_SYS_{LLVM_MAJOR_VERSION}0_PREFIX");

melior/src/pass/conversion.rs

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,77 +4,76 @@ melior_macro::conversion_passes!(
44
mlirCreateConversionArithToAMDGPUConversionPass,
55
mlirCreateConversionArithToArmSMEConversionPass,
66
mlirCreateConversionArithToLLVMConversionPass,
7-
mlirCreateConversionConvertAMDGPUToROCDL,
8-
mlirCreateConversionConvertAffineForToGPU,
9-
mlirCreateConversionConvertAffineToStandard,
7+
mlirCreateConversionConvertAffineForToGPUPass,
8+
mlirCreateConversionConvertAMDGPUToROCDLPass,
109
mlirCreateConversionConvertArithToEmitC,
11-
mlirCreateConversionConvertArithToSPIRV,
12-
mlirCreateConversionConvertArmNeon2dToIntr,
10+
mlirCreateConversionConvertArithToSPIRVPass,
11+
mlirCreateConversionConvertArmNeon2dToIntrPass,
1312
mlirCreateConversionConvertArmSMEToLLVM,
14-
mlirCreateConversionConvertArmSMEToSCF,
13+
mlirCreateConversionConvertArmSMEToSCFPass,
1514
mlirCreateConversionConvertAsyncToLLVMPass,
16-
mlirCreateConversionConvertBufferizationToMemRef,
17-
mlirCreateConversionConvertComplexToLLVMPass,
15+
mlirCreateConversionConvertBufferizationToMemRefPass,
1816
mlirCreateConversionConvertComplexToLibm,
17+
mlirCreateConversionConvertComplexToLLVMPass,
1918
mlirCreateConversionConvertComplexToSPIRVPass,
20-
mlirCreateConversionConvertComplexToStandard,
19+
mlirCreateConversionConvertComplexToStandardPass,
2120
mlirCreateConversionConvertControlFlowToLLVMPass,
22-
mlirCreateConversionConvertControlFlowToSPIRV,
21+
mlirCreateConversionConvertControlFlowToSPIRVPass,
2322
mlirCreateConversionConvertFuncToEmitC,
2423
mlirCreateConversionConvertFuncToLLVMPass,
25-
mlirCreateConversionConvertFuncToSPIRV,
26-
mlirCreateConversionConvertGPUToSPIRV,
24+
mlirCreateConversionConvertFuncToSPIRVPass,
2725
mlirCreateConversionConvertGpuOpsToLLVMSPVOps,
2826
mlirCreateConversionConvertGpuOpsToNVVMOps,
2927
mlirCreateConversionConvertGpuOpsToROCDLOps,
28+
mlirCreateConversionConvertGPUToSPIRV,
3029
mlirCreateConversionConvertIndexToLLVMPass,
3130
mlirCreateConversionConvertIndexToSPIRVPass,
32-
mlirCreateConversionConvertLinalgToStandard,
31+
mlirCreateConversionConvertLinalgToStandardPass,
3332
mlirCreateConversionConvertMathToEmitC,
3433
mlirCreateConversionConvertMathToFuncs,
34+
mlirCreateConversionConvertMathToLibmPass,
3535
mlirCreateConversionConvertMathToLLVMPass,
36-
mlirCreateConversionConvertMathToLibm,
3736
mlirCreateConversionConvertMathToROCDL,
38-
mlirCreateConversionConvertMathToSPIRV,
37+
mlirCreateConversionConvertMathToSPIRVPass,
3938
mlirCreateConversionConvertMemRefToEmitC,
40-
mlirCreateConversionConvertMemRefToSPIRV,
39+
mlirCreateConversionConvertMemRefToSPIRVPass,
4140
mlirCreateConversionConvertMeshToMPIPass,
4241
mlirCreateConversionConvertNVGPUToNVVMPass,
4342
mlirCreateConversionConvertNVVMToLLVMPass,
44-
mlirCreateConversionConvertOpenACCToSCF,
43+
mlirCreateConversionConvertOpenACCToSCFPass,
4544
mlirCreateConversionConvertOpenMPToLLVMPass,
46-
mlirCreateConversionConvertPDLToPDLInterp,
47-
mlirCreateConversionConvertParallelLoopToGpu,
45+
mlirCreateConversionConvertParallelLoopToGpuPass,
46+
mlirCreateConversionConvertPDLToPDLInterpPass,
4847
mlirCreateConversionConvertSCFToOpenMPPass,
48+
mlirCreateConversionConvertShapeConstraintsPass,
49+
mlirCreateConversionConvertShapeToStandardPass,
4950
mlirCreateConversionConvertSPIRVToLLVMPass,
50-
mlirCreateConversionConvertShapeConstraints,
51-
mlirCreateConversionConvertShapeToStandard,
52-
mlirCreateConversionConvertTensorToLinalg,
53-
mlirCreateConversionConvertTensorToSPIRV,
51+
mlirCreateConversionConvertTensorToLinalgPass,
52+
mlirCreateConversionConvertTensorToSPIRVPass,
5453
mlirCreateConversionConvertToLLVMPass,
55-
mlirCreateConversionConvertToSPIRVPass,
56-
mlirCreateConversionConvertVectorToArmSME,
54+
mlirCreateConversionConvertVectorToArmSMEPass,
5755
mlirCreateConversionConvertVectorToGPU,
5856
mlirCreateConversionConvertVectorToLLVMPass,
5957
mlirCreateConversionConvertVectorToSCF,
60-
mlirCreateConversionConvertVectorToSPIRV,
58+
mlirCreateConversionConvertVectorToSPIRVPass,
6159
mlirCreateConversionConvertVectorToXeGPU,
6260
mlirCreateConversionFinalizeMemRefToLLVMConversionPass,
6361
mlirCreateConversionGpuToLLVMConversionPass,
6462
mlirCreateConversionLiftControlFlowToSCFPass,
63+
mlirCreateConversionLowerAffinePass,
6564
mlirCreateConversionLowerHostCodeToLLVMPass,
6665
mlirCreateConversionMapMemRefStorageClass,
67-
mlirCreateConversionReconcileUnrealizedCasts,
68-
mlirCreateConversionSCFToControlFlow,
66+
mlirCreateConversionReconcileUnrealizedCastsPass,
67+
mlirCreateConversionSCFToControlFlowPass,
6968
mlirCreateConversionSCFToEmitC,
7069
mlirCreateConversionSCFToSPIRV,
7170
mlirCreateConversionSetLLVMModuleDataLayoutPass,
72-
mlirCreateConversionTosaToArith,
71+
mlirCreateConversionTosaToArithPass,
7372
mlirCreateConversionTosaToLinalg,
7473
mlirCreateConversionTosaToLinalgNamed,
7574
mlirCreateConversionTosaToMLProgram,
76-
mlirCreateConversionTosaToSCF,
77-
mlirCreateConversionTosaToTensor,
75+
mlirCreateConversionTosaToSCFPass,
76+
mlirCreateConversionTosaToTensorPass,
7877
mlirCreateConversionUBToLLVMConversionPass,
7978
mlirCreateConversionUBToSPIRVConversionPass,
8079
);

tools/setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set -e
44

55
[ -n "$CI" ]
66

7-
llvm_version=20
7+
llvm_version=21
88

99
if [ $(uname) = Linux ]; then
1010
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash -s

0 commit comments

Comments
 (0)