PLDB
Languages Features Calendar CSV Lists Blog About Sponsor Add Language
GitHub icon

mlir

mlir

mlir is an ir created in 2019.

#411on PLDB 3Years Old 2.5kUsers
0Books 0Papers 84Repos

"Multi-Level Intermediate Representation" Compiler Infrastructure


Example from the web:
// Syntactically similar to LLVM: func @testFunction(%arg0: i32) { %x = call @thingToCall(%arg0) : (i32) -> i32 br ^bb1 ^bb1: %y = addi %x, %x : i32 return %y : i32 }
Example from Compiler Explorer:
// Example code of an affine reduction. // MLIR example code may not always work out of the box because the textual MLIR format is not stable. // The example tries to be compatible with the latest MLIR version, which may not work on previous versions. func @affine_parallel_with_reductions_i64(%arg0: memref<3x3xi64>, %arg1: memref<3x3xi64>) -> (i64, i64) { %0:2 = affine.parallel (%kx, %ky) = (0, 0) to (2, 2) reduce ("addi", "muli") -> (i64, i64) { %1 = affine.load %arg0[%kx, %ky] : memref<3x3xi64> %2 = affine.load %arg1[%kx, %ky] : memref<3x3xi64> %3 = arith.muli %1, %2 : i64 %4 = arith.addi %1, %2 : i64 affine.yield %3, %4 : i64, i64 } return %0#0, %0#1 : i64, i64 }

Language features

Feature Supported Example Token
Comments
// A comment
Line Comments
// A comment
//
Semantic Indentation ϴ
fasta-format.html · mlir.html · renpy.html

View source

PLDB - Build the next great programming language · v2022 · Day 32 · Docs · Build · Acknowledgements · Traffic Today · Traffic Trends · Mirrors · GitHub · feedback@pldb.com