Fix MLIR integration test after a8308020 (`func.` prefix is required bythe parser now)
[mlir][NFC] Update textual references of `func` to `func.func` in Integration testsThe special case parsing of `func` operations is being removed.
[mlir][NFC] Rename StandardToLLVM to FuncToLLVMThe current StandardToLLVM conversion patterns only really handlethe Func dialect. The pass itself adds patterns for Arithmetic/CFToLLVM, butthose s
[mlir][NFC] Rename StandardToLLVM to FuncToLLVMThe current StandardToLLVM conversion patterns only really handlethe Func dialect. The pass itself adds patterns for Arithmetic/CFToLLVM, butthose should be/will be split out in a followup. This commit focuses solelyon being an NFC rename.Aside from the directory change, the pattern and pass creation API have been renamed: * populateStdToLLVMFuncOpConversionPattern -> populateFuncToLLVMFuncOpConversionPattern * populateStdToLLVMConversionPatterns -> populateFuncToLLVMConversionPatterns * createLowerToLLVMPass -> createConvertFuncToLLVMPassDifferential Revision: https://reviews.llvm.org/D120778
show more ...
[mlir] Split out a new ControlFlow dialect from StandardThis dialect is intended to model lower level/branch based control-flow constructs. The initial setof operations are: AssertOp, BranchOp, Co
[mlir] Split out a new ControlFlow dialect from StandardThis dialect is intended to model lower level/branch based control-flow constructs. The initial setof operations are: AssertOp, BranchOp, CondBranchOp, SwitchOp; all split out from the currentstandard dialect.See https://discourse.llvm.org/t/standard-dialect-the-final-chapter/6061Differential Revision: https://reviews.llvm.org/D118966
[mlir][bufferize] Clean up remaining references to `tensor-constant-bufferize`
[mlir][amx] add a full tile matrix mult integral example to integration testsReviewed By: dcaballeDifferential Revision: https://reviews.llvm.org/D118292
[mlir][amx] fix some whitespace issues in AMX testsReviewed By: dcaballeDifferential Revision: https://reviews.llvm.org/D118289
[mlir][amx] add a full tile matrix mult example to integration testsRationale:Demonstrates the maximum tile size allowed for the f32 <= bf16 x bf16 opReviewed By: dcaballeDifferential Revision
[mlir][amx] add a full tile matrix mult example to integration testsRationale:Demonstrates the maximum tile size allowed for the f32 <= bf16 x bf16 opReviewed By: dcaballeDifferential Revision: https://reviews.llvm.org/D118277
[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] Clean up boolean flags usage in LIT tests* Call `llvm_canonicalize_cmake_booleans` for all CMake options, which are propagated to `lit.local.cfg` files.* Use Python native boolean values
[mlir] Clean up boolean flags usage in LIT tests* Call `llvm_canonicalize_cmake_booleans` for all CMake options, which are propagated to `lit.local.cfg` files.* Use Python native boolean values instead of strings for such options.This fixes the cases, when CMake variables have values other than `ON` (like `TRUE`).This might happen due to IDE integration or due to CMake preset usage.Reviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D110073
[mlir] Factor type reconciliation out of Standard-to-LLVM conversionConversion to the LLVM dialect is being refactored to be more progressive andis now performed as a series of independent passes
[mlir] Factor type reconciliation out of Standard-to-LLVM conversionConversion to the LLVM dialect is being refactored to be more progressive andis now performed as a series of independent passes converting differentdialects. These passes may produce `unrealized_conversion_cast` operations thatrepresent pending conversions between built-in and LLVM dialect types.Historically, a more monolithic Standard-to-LLVM conversion pass did not needthese casts as all operations were converted in one shot. Previous refactoringshave led to the requirement of running the Standard-to-LLVM conversion pass toclean up `unrealized_conversion_cast`s even though the IR had no standardoperations in it. The pass must have been also run the last among all to-LLVMpasses, in contradiction with the partial conversion logic. Additionally, theway it was set up could produce invalid operations by removing casts betweenLLVM and built-in types even when the consumer did not accept the uncastedtype, or could lead to cryptic conversion errors (recursive application of therewrite pattern on `unrealized_conversion_cast` as a means to indicate failureto eliminate casts).In fact, the need to eliminate A->B->A `unrealized_conversion_cast`s is notspecific to to-LLVM conversions and can be factored out into a separate typereconciliation pass, which is achieved in this commit. While the cast operationitself has a folder pattern, it is insufficient in most conversion passes asthe folder only applies to the second cast. Without complex legality setup inthe conversion target, the conversion infra will either consider the castoperations valid and not fold them (a separate canonicalization would benecessary to trigger the folding), or consider the first cast invalid upongeneration and stop with error. The pattern provided by the reconciliation passapplies to the first cast operation instead. Furthermore, having a separatepass makes it clear when `unrealized_conversion_cast`s could not have beeneliminated since it is the only reason why this pass can fail.Reviewed By: nicolasvasilacheDifferential Revision: https://reviews.llvm.org/D109507
[mlir][memref] adjust integration tests to new lowering passesthese tests run under the emulator and thus were overlookedReviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D1058
[mlir][memref] adjust integration tests to new lowering passesthese tests run under the emulator and thus were overlookedReviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D105855
[mlir] Use default lli JIT in Integration testsNow that 9b8e7a9d ("[lli] Honor the --entry-function flag in orc andorc-lazy modes") fixed https://llvm.org/PR49906.Reviewed By: mehdi_amini, aartb
[mlir] Use default lli JIT in Integration testsNow that 9b8e7a9d ("[lli] Honor the --entry-function flag in orc andorc-lazy modes") fixed https://llvm.org/PR49906.Reviewed By: mehdi_amini, aartbikDifferential Revision: https://reviews.llvm.org/D100407
[mlir] Fix return values of AMX testsDifferential Revision: https://reviews.llvm.org/D100422
[mlir] Use MCJIT to fix integration testsSince c42c67ad ('Re-apply "[lli] Make -jit-kind=orc the default JITengine"'), ORC is the default JIT. Unfortunately, ORC seems toignore the --entry-functi
[mlir] Use MCJIT to fix integration testsSince c42c67ad ('Re-apply "[lli] Make -jit-kind=orc the default JITengine"'), ORC is the default JIT. Unfortunately, ORC seems toignore the --entry-function flag, which breaks all tests thatuse the flag, namely the AMX and X86Vector integration tests.This has been reported in PR#49906(https://bugs.llvm.org/show_bug.cgi?id=49906).Work around this by explicitly selecting MCJIT.Reviewed By: aartbikDifferential Revision: https://reviews.llvm.org/D100344
Update syntax for amx.tile_muli to use two Unit attr to mark the zext caseThis makes the annotation tied to the operand and the use of a keywordmore explicit/readable on what it means.Differenti
Update syntax for amx.tile_muli to use two Unit attr to mark the zext caseThis makes the annotation tied to the operand and the use of a keywordmore explicit/readable on what it means.Differential Revision: https://reviews.llvm.org/D99001
[mlir][amx] regression test for tile-muli (all zero/sign-extension combinations)Reviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D98742
[mlir][amx] blocked tilezero integration testThis adds a new integration test. However, it alsoadapts to a recent memref.XXX change for existing testsReviewed By: ftynseDifferential Revision:
[mlir][amx] blocked tilezero integration testThis adds a new integration test. However, it alsoadapts to a recent memref.XXX change for existing testsReviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D98680
[mlir][amx] Add Intel AMX dialect (architectural-specific vector dialect)The Intel Advanced Matrix Extensions (AMX) provides a tile matrixmultiply unit (TMUL), a tile control register (TILECFG), a
[mlir][amx] Add Intel AMX dialect (architectural-specific vector dialect)The Intel Advanced Matrix Extensions (AMX) provides a tile matrixmultiply unit (TMUL), a tile control register (TILECFG), and eighttile registers TMM0 through TMM7 (TILEDATA). This new MLIR dialectprovides a bridge between MLIR concepts like vectors and memrefsand the lower level LLVM IR details of AMX.Reviewed By: nicolasvasilacheDifferential Revision: https://reviews.llvm.org/D98470