-
Notifications
You must be signed in to change notification settings - Fork 48
Open
Description
Hi, I noticed that in the following example, the #llvm.linkage (pretty dialect attribute) is being parsed as a pretty dialect type (!llvm.linkage). I'm just curious— is this the expected behavior? Thanks!
This MLIR is copied from #42.
module {
func.func @test(%arg0: memref<?xi32>, %arg1: memref<?xi32>) attributes {llvm.linkage = #llvm.linkage<external>} {
%c2_i32 = arith.constant 2 : i32
%c0 = arith.constant 0 : index
%0 = memref.load %arg1 : memref<?xi32>
%1 = arith.addi %0, %c2_i32 : i32
%c0_0 = arith.constant 0 : index
memref.store %1, %arg0 : memref<?xi32>
return
}
}Reproducible code
import mlir
m = """module {
func.func @test(%arg0: memref<?xi32>, %arg1: memref<?xi32>) attributes {llvm.linkage = #llvm.linkage<external>} {
%c2_i32 = arith.constant 2 : i32
%c0 = arith.constant 0 : index
%0 = memref.load %arg1 : memref<?xi32>
%1 = arith.addi %0, %c2_i32 : i32
%c0_0 = arith.constant 0 : index
memref.store %1, %arg0 : memref<?xi32>
return
}
}"""
parser = mlir.Parser()
print(parser.parse(m).pretty())The output:
module {
func.func @test(%arg0: memref<?xi32>, %arg1: memref<?xi32>) attributes {llvm.linkage = !llvm.linkage<external>} {
%c2_i32 = arith.constant 2 : i32
%c0 = arith.constant 0 : index
%0 = memref.load %arg1 : memref<?xi32>
%1 = arith.addi %0, %c2_i32 : i32
%c0_0 = arith.constant 0 : index
memref.store %1, %arg0 : memref<?xi32>
return
}
}Metadata
Metadata
Assignees
Labels
No labels