[mlir][gpu] Change ParalellLoopMappingAttr to AttrDefIt was a StructAttr. Also adds a FieldParser for AffineMap.Depends on D127348Reviewed By: rriddleDifferential Revision: https://reviews.ll
[mlir][gpu] Change ParalellLoopMappingAttr to AttrDefIt was a StructAttr. Also adds a FieldParser for AffineMap.Depends on D127348Reviewed By: rriddleDifferential Revision: https://reviews.llvm.org/D127350
show more ...
[mlir][NFC] Update textual references of `func` to `func.func` in Conversion/ testsThe special case parsing of `func` operations is being removed.
[mlir] Move the Builtin FuncOp to the Func dialectThis commit moves FuncOp out of the builtin dialect, and into the Funcdialect. This move has been planned in some capacity from the momentwe made
[mlir] Move the Builtin FuncOp to the Func dialectThis commit moves FuncOp out of the builtin dialect, and into the Funcdialect. This move has been planned in some capacity from the momentwe made FuncOp an operation (years ago). This commit handles thefunctional aspects of the move, but various aspects are left untouchedto ease migration: func::FuncOp is re-exported into mlir to reducethe actual API churn, the assembly format still accepts the unqualified`func`. These temporary measures will remain for a little while tosimplify migration before being removed.Differential Revision: https://reviews.llvm.org/D121266
[mlir] Update FuncOp conversion passes to Pass/InterfacePass<FunctionOpInterface>These passes generally don't rely on any special aspects of FuncOp, and moving allowsfor these passes to be used in
[mlir] Update FuncOp conversion passes to Pass/InterfacePass<FunctionOpInterface>These passes generally don't rely on any special aspects of FuncOp, and moving allowsfor these passes to be used in many more situations. The passes that obviously weren'trelying on invariants guaranteed by a "function" were updated to be generic pass, therest were updated to be FunctionOpinterface InterfacePasses.The test updates are NFC switching from implicit nesting (-pass -pass2) form tothe -pass-pipeline form (generic passes do not implicitly nest as op-specific passes do).Differential Revision: https://reviews.llvm.org/D121190
[MLIR] Replace std ops with arith dialect opsPrecursor: https://reviews.llvm.org/D110200Removed redundant ops from the standard dialect that were moved to the`arith` or `math` dialects.Renamed
[MLIR] Replace std ops with arith dialect opsPrecursor: https://reviews.llvm.org/D110200Removed redundant ops from the standard dialect that were moved to the`arith` or `math` dialects.Renamed all instances of operations in the codebase and in tests.Reviewed By: rriddle, jpienaarDifferential Revision: https://reviews.llvm.org/D110797
[MLIR] Create memref dialect and move dialect-specific ops from std.Create the memref dialect and move dialect-specific opsfrom std dialect to this dialect.Moved ops:AllocOp -> MemRef_AllocOpA
[MLIR] Create memref dialect and move dialect-specific ops from std.Create the memref dialect and move dialect-specific opsfrom std dialect to this dialect.Moved ops:AllocOp -> MemRef_AllocOpAllocaOp -> MemRef_AllocaOpAssumeAlignmentOp -> MemRef_AssumeAlignmentOpDeallocOp -> MemRef_DeallocOpDimOp -> MemRef_DimOpMemRefCastOp -> MemRef_CastOpMemRefReinterpretCastOp -> MemRef_ReinterpretCastOpGetGlobalMemRefOp -> MemRef_GetGlobalOpGlobalMemRefOp -> MemRef_GlobalOpLoadOp -> MemRef_LoadOpPrefetchOp -> MemRef_PrefetchOpReshapeOp -> MemRef_ReshapeOpStoreOp -> MemRef_StoreOpSubViewOp -> MemRef_SubViewOpTransposeOp -> MemRef_TransposeOpTensorLoadOp -> MemRef_TensorLoadOpTensorStoreOp -> MemRef_TensorStoreOpTensorToMemRefOp -> MemRef_BufferCastOpViewOp -> MemRef_ViewOpThe roadmap to split the memref dialect from std is discussed here:https://llvm.discourse.group/t/rfc-split-the-memref-dialect-from-std/2667Differential Revision: https://reviews.llvm.org/D98041
Revert "[MLIR] Create memref dialect and move several dialect-specific ops from std."This commit introduced a cyclic dependency:Memref dialect depends on Standard because it used ConstantIndexOp.
Revert "[MLIR] Create memref dialect and move several dialect-specific ops from std."This commit introduced a cyclic dependency:Memref dialect depends on Standard because it used ConstantIndexOp.Std depends on the MemRef dialect in its EDSC/Intrinsics.hWorking on a fix.This reverts commit 8aa6c3765b924d86f623d452777eb76b83bf2787.
[MLIR] Create memref dialect and move several dialect-specific ops from std.Create the memref dialect and move several dialect-specific ops withoutdependencies to other ops from std dialect to thi
[MLIR] Create memref dialect and move several dialect-specific ops from std.Create the memref dialect and move several dialect-specific ops withoutdependencies to other ops from std dialect to this dialect.Moved ops:AllocOp -> MemRef_AllocOpAllocaOp -> MemRef_AllocaOpDeallocOp -> MemRef_DeallocOpMemRefCastOp -> MemRef_CastOpGetGlobalMemRefOp -> MemRef_GetGlobalOpGlobalMemRefOp -> MemRef_GlobalOpPrefetchOp -> MemRef_PrefetchOpReshapeOp -> MemRef_ReshapeOpStoreOp -> MemRef_StoreOpTransposeOp -> MemRef_TransposeOpViewOp -> MemRef_ViewOpThe roadmap to split the memref dialect from std is discussed here:https://llvm.discourse.group/t/rfc-split-the-memref-dialect-from-std/2667Differential Revision: https://reviews.llvm.org/D96425
[mlir][OpFormatGen] Format enum attribute cases as keywords when possibleIn the overwhelmingly common case, enum attribute case strings represent valid identifiers in MLIR syntax. This revision upd
[mlir][OpFormatGen] Format enum attribute cases as keywords when possibleIn the overwhelmingly common case, enum attribute case strings represent valid identifiers in MLIR syntax. This revision updates the format generator to format as a keyword in these cases, removing the need to wrap values in a string. The parser still retains the ability to parse the string form, but the printer will use the keyword form when applicable.Differential Revision: https://reviews.llvm.org/D94575
[mlir][gpu] Only transform mapped parallel loops to GPU.This exposes a hook to configure legality of operations such that only`scf.parallel` operations that have mapping attributes are marked asi
[mlir][gpu] Only transform mapped parallel loops to GPU.This exposes a hook to configure legality of operations such that only`scf.parallel` operations that have mapping attributes are marked asillegal. Consequently, the transformation can now also be applied tomixed forms.Differential Revision: https://reviews.llvm.org/D91340
[mlir] Use affine dim instead of symbol in SCFToGPU lowering.This still satisfies the constraints required by the affine dialect andgives more flexibility in what iteration bounds can be used when
[mlir] Use affine dim instead of symbol in SCFToGPU lowering.This still satisfies the constraints required by the affine dialect andgives more flexibility in what iteration bounds can be used whenloewring to the GPU dialect.Differential Revision: https://reviews.llvm.org/D89782
[mlir][SCFToGPU] LaunchOp propagate optional attributesAllow propagating optional user defined attributes during SCF to GPU conversion. Gives opportunity to use user defined attributes in the furth
[mlir][SCFToGPU] LaunchOp propagate optional attributesAllow propagating optional user defined attributes during SCF to GPU conversion. Gives opportunity to use user defined attributes in the further lowering. For example setting subgroup size, or other options for GPU dispatch. This does not break backward compatibility and does not require new attributes, just allow passing optional ones.Differential Revision: https://reviews.llvm.org/D88203
Enable FileCheck -enable-var-scope by default in MLIR testThis option avoids to accidentally reuse variable across -LABEL match,it can be explicitly opted-in by prefixing the variable name with $
Enable FileCheck -enable-var-scope by default in MLIR testThis option avoids to accidentally reuse variable across -LABEL match,it can be explicitly opted-in by prefixing the variable name with $Differential Revision: https://reviews.llvm.org/D81531
[MLIR][Standard] Make the `dim` operation index an operand.Allow for dynamic indices in the `dim` operation.Rather than an attribute, the index is now an operand of type `index`.This allows to ap
[MLIR][Standard] Make the `dim` operation index an operand.Allow for dynamic indices in the `dim` operation.Rather than an attribute, the index is now an operand of type `index`.This allows to apply the operation to dynamically ranked tensors.The correct lowering of dynamic indices remains to be implemented.Differential Revision: https://reviews.llvm.org/D81551
Change filecheck default to dump input on failureHaving the input dumped on failure seems like a betterdefault: I debugged FileCheck tests for a while without knowingabout this option, which real
Change filecheck default to dump input on failureHaving the input dumped on failure seems like a betterdefault: I debugged FileCheck tests for a while without knowingabout this option, which really helps to understand failures.Remove `-dump-input-on-failure` and the environment variableFILECHECK_DUMP_INPUT_ON_FAILURE which are now obsolete.Differential Revision: https://reviews.llvm.org/D81422
[mlir][SCFToGPU] Remove conversions from scf.for to gpu.launch.Keeping in the affine.for to gpu.launch conversions, which shouldprobably be the affine.parallel to gpu.launch conversion as well.D
[mlir][SCFToGPU] Remove conversions from scf.for to gpu.launch.Keeping in the affine.for to gpu.launch conversions, which shouldprobably be the affine.parallel to gpu.launch conversion as well.Differential Revision: https://reviews.llvm.org/D80747
[mlir] NFC: rename tests related to SCF dialect from Loops to SCFThe dialect and conversions from/to it were renamed in previous commits.Differential Revision: https://reviews.llvm.org/D80216