| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][amdgpu] Sink op creation in scaled conversion intrinsics (NFC) (#168542) Where possible: * notifyMatchFailure happen first * then op.emitOpError * finally assertions / op creation. --------- Co-authored-by: Jakub Kuderski <kubakuderski@gmail.com> | 9 个月前 | |
[mlir][NFC] update Conversion create APIs (4/n) (#149879) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][llvm] Port overflowFlags to a native operation property (RELAND) (#89410) This PR changes the LLVM dialect's IntegerOverflowFlags to be stored on operations as native properties. Reland to fix flang | 2 年前 | |
[mlir] Simplify Default cases in type switches. NFC. (#165767) Use default values instead of lambdas when possible. std::nullopt and nullptr can be used now because of https://github.com/llvm/llvm-project/pull/165724. | 9 个月前 | |
[mlir][arith] Add support for sitofp, uitofp to ArithToAPFloat (#169284) Add support for arith.sitofp and arith.uitofp. | 8 个月前 | |
[mlir][arith] Simplify inheriting constructors declarations. NFC. (#159682) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][arith] Simplify inheriting constructors declarations. NFC. (#159682) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
Add 'exact' flag to arith.shrui/shrsi/divsi/divui operations (#165923) This MR adds support for the exact flag to the arith.shrui/shrsi/divsi/divui operations. The semantics are identical to those of the LLVM dialect and the LLVM language reference. This MR also modifies the mechanism for converting arith dialect **attributes** to corresponding **properties** in the LLVM dialect. (As a specific example, the integer overflow flags nsw/nuw are **properties** in the LLVM dialect, as opposed to attributes.) Previously, attribute converter classes were required to have a specific method to support integer overflow flags: C++ template <typename SourceOp, typename TargetOp> class AttrConvertPassThrough { public: ... LLVM::IntegerOverflowFlags getOverflowFlags() const { return LLVM::IntegerOverflowFlags::none; } }; This method was required, even for arith source operations that did not use integer overflow flags (e.g. AttrConvertFastMathToLLVM). This MR modifies the interface required by arith dialect attribute converters to instead provide a (possibly NULL) properties attribute: C++ template <typename SourceOp, typename TargetOp> class AttrConvertPassThrough { public: ... Attribute getPropAttr() const { return {}; } }; For arith operations with attributes that map to LLVM dialect **properties**, the attribute converter can create a DictionaryAttr containing target properties and return that attribute from the attribute converter's getPropAttr() method. The arith attribute conversion framework will set the propertiesAttr of an OperationState, and the target operation's setPropertiesFromAttr() method will be invoked to set the properties when the target operation is created. The AttrConvertOverflowToLLVM class in this MR uses the new approach. | 9 个月前 | |
[mlir][spirv] Simplify inheriting constructor declarations. NFC. (#159681) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir] Remove unused includes (NFC) (#150476) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[AArch64][SME] Improve codegen for aarch64.sme.cnts* when not in streaming mode (#154761) Builtins for reading the streaming vector length are canonicalised to use the aarch64.sme.cntsd intrinisic and a multiply, i.e. - cntsb -> cntsd * 8 - cntsh -> cntsd * 4 - cntsw -> cntsd * 2 This patch also removes the LLVM intrinsics for cnts[b,h,w], and adds patterns to improve codegen when cntsd is multiplied by a constant. | 11 个月前 | |
[MLIR][Vector] Remove vector.splat (#162167) vector.splat has been deprecated (user: please use the very similar vector.broadcast instead) with the last PR landing about 6 weeks ago. The discourse discussion is at https://discourse.llvm.org/t/rfc-mlir-vector-deprecate-then-remove-vector-splat/87143/1 The last PR was #152230 This PR completely removes vector.splat. In addition to removing vector.splat from VectorOps.td, it - Updates the few remaining places where vector::SplatOp is created (now vector::BroadcastOp is created) - Removes temporary patterns where vector.splat is replaced by vector.broadcast The only place 'vector.splat' appears is now the files https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/test/corpus/op.txt and https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/dialect/vector.js --------- Signed-off-by: James Newling <james.newling@gmail.com> | 10 个月前 | |
[mlir] Remove unused includes (NFC) (#150476) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[mlir][NFC] update mlir create APIs (34/n) (#150660) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][NFC] update Conversion create APIs (5/n) (#149887) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
Add 'exact' flag to arith.shrui/shrsi/divsi/divui operations (#165923) This MR adds support for the exact flag to the arith.shrui/shrsi/divsi/divui operations. The semantics are identical to those of the LLVM dialect and the LLVM language reference. This MR also modifies the mechanism for converting arith dialect **attributes** to corresponding **properties** in the LLVM dialect. (As a specific example, the integer overflow flags nsw/nuw are **properties** in the LLVM dialect, as opposed to attributes.) Previously, attribute converter classes were required to have a specific method to support integer overflow flags: C++ template <typename SourceOp, typename TargetOp> class AttrConvertPassThrough { public: ... LLVM::IntegerOverflowFlags getOverflowFlags() const { return LLVM::IntegerOverflowFlags::none; } }; This method was required, even for arith source operations that did not use integer overflow flags (e.g. AttrConvertFastMathToLLVM). This MR modifies the interface required by arith dialect attribute converters to instead provide a (possibly NULL) properties attribute: C++ template <typename SourceOp, typename TargetOp> class AttrConvertPassThrough { public: ... Attribute getPropAttr() const { return {}; } }; For arith operations with attributes that map to LLVM dialect **properties**, the attribute converter can create a DictionaryAttr containing target properties and return that attribute from the attribute converter's getPropAttr() method. The arith attribute conversion framework will set the propertiesAttr of an OperationState, and the target operation's setPropertiesFromAttr() method will be invoked to set the properties when the target operation is created. The AttrConvertOverflowToLLVM class in this MR uses the new approach. | 9 个月前 | |
[mlir][NFC] update Conversion create APIs (5/n) (#149887) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir] Switch uses of deprecated .create methods to free function. NFC. (#164635) See https://discourse.llvm.org/t/psa-opty-create-now-with-100-more-tab-complete/87339. | 9 个月前 | |
[mlir][spirv] Simplify inheriting constructor declarations. NFC. (#159681) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
| 9 个月前 | ||
[mlir] Remove redundant typename (NFC) (#166108) Identified with readability-redundant-typename. | 9 个月前 | |
[mlir][NFC] update mlir create APIs (34/n) (#150660) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][spirv] Simplify inheriting constructor declarations. NFC. (#159681) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir] Remove unused includes (NFC) (#150476) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[mlir][ToLLVM] Fix the index bitwidth handling for the dynamic case of convert-to-llvm (#156557) This patch changes the behavior of convert-to-llvm{dynamic=true} so that the nearest DataLayout is used to configure LowerToLLVMOptions and LLVMTypeConverter. Example: mlir module attributes {dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<index, 16>>} { func.func private @test_16bit_index(%arg0: index) -> index } // mlir-opt --convert-to-llvm="dynamic=true" module attributes {dlti.dl_spec = #dlti.dl_spec<index = 16 : i64>} { llvm.func @test_16bit_index(i16) -> i16 attributes {sym_visibility = "private"} } | 11 个月前 | |
[mlir][NFC] update Conversion create APIs (5/n) (#149887) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][LLVM] Resync memory effect attribute with LLVM IR (#168568) - Add missing locations, namely 'ErrnoMem', 'TargetMem0', and 'TargetMem1'. | 8 个月前 | |
[mlir][spirv] Simplify inheriting constructor declarations. NFC. (#159681) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[MLIR][GPU] Generalize gpu.printf op lowering to LLVM call pattern. (#164297) Existing pattern for lowering gpu.printf op to LLVM call uses fixed function name and calling convention. Those two should be exposed as pass option to allow supporting Intel Compute Runtime for GPU. Also adds gpu.printf op pattern to GPU to LLVMSPV pass. It may appear out of place, but integration test is added to XeVM integration test as that is the current best folder for testing with Intel Compute Runtime. Test should be moved in the future if a better test folder is added. | 9 个月前 | |
[mlir][LLVM] Resync memory effect attribute with LLVM IR (#168568) - Add missing locations, namely 'ErrnoMem', 'TargetMem0', and 'TargetMem1'. | 8 个月前 | |
| 8 个月前 | ||
[MLIR][ROCDL] Add math.clampf -> rocdl.fmed3 conversion (#163520) Added Pattern for lowering Math::ClampFOp to ROCDL::FMED3. Also added chipet option to MathToRocdl pass to check for arch support ISA instructions Solves [#15072](https://github.com/llvm/llvm-project/issues/157052) Reapplies https://github.com/llvm/llvm-project/pull/160100 Un-reverts the merged https://github.com/llvm/llvm-project/pull/163259, and fixes the error. --------- Signed-off-by: Keshav Vinayak Jha <keshavvinayakjha@gmail.com> | 10 个月前 | |
[mlir][spirv] Simplify inheriting constructor declarations. NFC. (#159681) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir][NFC] update Conversion create APIs (6/n) (#149888) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][spirv] Simplify inheriting constructor declarations. NFC. (#159681) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
Add 'exact' flag to arith.shrui/shrsi/divsi/divui operations (#165923) This MR adds support for the exact flag to the arith.shrui/shrsi/divsi/divui operations. The semantics are identical to those of the LLVM dialect and the LLVM language reference. This MR also modifies the mechanism for converting arith dialect **attributes** to corresponding **properties** in the LLVM dialect. (As a specific example, the integer overflow flags nsw/nuw are **properties** in the LLVM dialect, as opposed to attributes.) Previously, attribute converter classes were required to have a specific method to support integer overflow flags: C++ template <typename SourceOp, typename TargetOp> class AttrConvertPassThrough { public: ... LLVM::IntegerOverflowFlags getOverflowFlags() const { return LLVM::IntegerOverflowFlags::none; } }; This method was required, even for arith source operations that did not use integer overflow flags (e.g. AttrConvertFastMathToLLVM). This MR modifies the interface required by arith dialect attribute converters to instead provide a (possibly NULL) properties attribute: C++ template <typename SourceOp, typename TargetOp> class AttrConvertPassThrough { public: ... Attribute getPropAttr() const { return {}; } }; For arith operations with attributes that map to LLVM dialect **properties**, the attribute converter can create a DictionaryAttr containing target properties and return that attribute from the attribute converter's getPropAttr() method. The arith attribute conversion framework will set the propertiesAttr of an OperationState, and the target operation's setPropertiesFromAttr() method will be invoked to set the properties when the target operation is created. The AttrConvertOverflowToLLVM class in this MR uses the new approach. | 9 个月前 | |
[mlir][NFC] update Conversion create APIs (6/n) (#149888) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in MPIToLLVM.cpp (NFC) | 11 个月前 | |
[mlir][EmitC] Add MathToEmitC pass for math function lowering to EmitC (#113799) This commit introduces a new MathToEmitC conversion pass that lowers selected math operations from the Math dialect to the emitc.call_opaque operation in the EmitC dialect. **Supported Math Operations:** The following operations are converted: - math.floor -> emitc.call_opaque<"floor"> - math.round -> emitc.call_opaque<"round"> - math.exp -> emitc.call_opaque<"exp"> - math.cos -> emitc.call_opaque<"cos"> - math.sin -> emitc.call_opaque<"sin"> - math.acos -> emitc.call_opaque<"acos"> - math.asin -> emitc.call_opaque<"asin"> - math.atan2 -> emitc.call_opaque<"atan2"> - math.ceil -> emitc.call_opaque<"ceil"> - math.absf -> emitc.call_opaque<"fabs"> - math.powf -> emitc.call_opaque<"pow"> **Target Language Standards:** The pass supports targeting different language standards: - C99: Generates calls with suffixes (e.g., floorf, fabsf) for single-precision floats. - CPP11: Prepends std:: to functions (e.g., std::floor, std::fabs). **Design Decisions:** The pass uses emitc.call_opaque instead of emitc.call to better emulate C-style function overloading. emitc.call_opaque does not require a unique type signature, making it more suitable for operations like <math.h> functions that may be overloaded for different types. This design choice ensures compatibility with C/C++ conventions. | 1 年前 | |
[MLIR] Migrate some conversion passes and dialects to LDBG() macro (NFC) (#151349) | 1 年前 | |
[mlir] Switch uses of deprecated .create methods to free function. NFC. (#164635) See https://discourse.llvm.org/t/psa-opty-create-now-with-100-more-tab-complete/87339. | 9 个月前 | |
[mlir][NFC] update Conversion create APIs (6/n) (#149888) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir] Remove redundant typename (NFC) (#166108) Identified with readability-redundant-typename. | 9 个月前 | |
[MLIR] Apply clang-tidy fixes for readability-identifier-naming in MathToSPIRV.cpp (NFC) | 10 个月前 | |
[MLIR][Math][XeVM] Reintroduce MathToXeVM (math-to-xevm) pass (#162934) This PR is a fix for https://github.com/llvm/llvm-project/pull/159878, which failed in postcommit testing due to linker errors that were not caught in precommit. Original PR: --- This PR introduces a MathToXeVM pass, which implements support for the afn fastmath flag for SPIRV/XeVM targets - It takes supported Math Ops with the afn flag, and converts them to function calls to OpenCL native_ intrinsics. These intrinsic functions are supported by the SPIRV backend, and are automatically converted to OpExtInst calls to native_ ops from the OpenCL SPIRV ext. inst. set when outputting to SPIRV/XeVM. Note: - This pass also supports converting arith.divf to native equivalents. There is an option provided in the pass to turn this behavior off. - This pass preserves fastmath flags, but these flags are currently ignored by the SPIRV backend. Thus, in order to generate SPIRV that truly preserves fastmath flags, support needs to be added to the SPIRV backend. | 10 个月前 | |
[mlir] Use llvm accumulate wrappers. NFCI. (#162957) Use wrappers around std::accumulate to make the code more concise and less bug-prone: https://github.com/llvm/llvm-project/pull/162129. With std::accumulate, it's the initial value that determines the accumulator type. llvm::sum_of and llvm::product_of pick the right accumulator type based on the range element type. Found some funny bugs like a local accumulate helper that calculated a sum with initial value of 1 -- we didn't hit the bug because the code was actually dead... | 10 个月前 | |
[mlir][memref] Introduce memref.distinct_objects op (#156913) The distinct_objects operation takes a list of memrefs and returns a list of memrefs of the same types, with the additional assumption that accesses to these memrefs will never alias with each other. This means that loads and stores to different memrefs in the list can be safely reordered. The discussion https://discourse.llvm.org/t/rfc-introducing-memref-aliasing-attributes/88049 | 10 个月前 | |
[mlir][memref-to-spirv]: Remap Image Load Coordinates (#160495) When converting a memref.load from the image address space to a spirv.ImageFetch ensure that we correctly map the load indices to width, height and depth. The lowering currently assumes a linear image tiling, that is row-major memory layout. This allows us to support any memref layout that is a permutation of the dimensions, more complex layouts are not currently supported. Because the ordering of the dimensions in the vector passed to image fetch is the opposite to that in the memref directions a final reversal of the mapped dimensions is always required. --------- Signed-off-by: Jack Frankland <jack.frankland@arm.com> | 10 个月前 | |
[MLIR][NVVM] Update mbarrier Ops to use AnyTypeOf[] (3/3) (#167567) This is a follow-up of PR #165558 and #165993. This patch updates the remaining two Ops to use the AnyTypeOf[] construct, completing the migration for the mbarrier family of Ops. mbarrier.arrive.expect_tx mbarrier.try_wait.parity Signed-off-by: Durgadoss R <durgadossr@nvidia.com> | 9 个月前 | |
[MLIR][NVVM] Support packed registers in inline_ptx (#154904) Add support for packed registers with vectors. Example: %wo0 = nvvm.inline_ptx "dp4a.s32.s32 {$w0}, {$r0}, {$r1}, {$r2};" ro(%src, %mask, %zero : vector<4xi8>, i32, i32) -> i32 Here, vector<4xi8> is lowered to an i32 register (i.e., an r in PTX). | 11 个月前 | |
[mlir][NFC] update Conversion create APIs (6/n) (#149888) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir][NFC] update Conversion create APIs (6/n) (#149888) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[MLIR] Apply clang-tidy fixes for bugprone-argument-comment in PDLToPDLInterp.cpp (NFC) | 9 个月前 | |
[MLIR] fix LLVM::InsertValueOp::create | 11 个月前 | |
[MLIR][NFC] Retire let constructor for passes in Conversion directory (part1) (#127403) let constructor is deprecated since the table gen backend emits most of the glue logic to build a pass. This PR retires the td method for most (I need another pass) passes in the Conversion directory. | 1 年前 | |
[mlir][SCF] Add pass option to deactivate pattern rollback (#168481) Add a pass option to convert-scf-to-cf to deactivate pattern rollback for better performance. The lowering patterns from SCF->CF to benefit a lot from this feature because splitBlock is expensive in the rollback driver. | 9 个月前 | |
[mlir] Switch uses of deprecated .create methods to free function. NFC. (#164635) See https://discourse.llvm.org/t/psa-opty-create-now-with-100-more-tab-complete/87339. | 9 个月前 | |
[MLIR][SCFToGPU] Guard operands before AffineApplyOp::create to avoid crash (#167959) This fixes a crash in SCF→GPU when building the per‑dim index for mapped scf.parallel. **Change**: - Map step/lb through cloningMap, then run ensureLaunchIndependent. - If either is still unavailable at launch scope, emit a match‑failure; otherwise build the affine.apply. **Why this is correct:** - Matches how the pass already handles launch bounds; avoids creating an op with invalid operands and replaces a segfault with a clear diagnostic. **Tests**: - Added two small regressions that lower to gpu.launch and exercise the affine.apply path. Fixes : #167654 Signed-off-by: Shashi Shankar <shashishankar1687@gmail.com> | 8 个月前 | |
[flang][OpenMP] Enable tiling (#143715) This patch enables tiling in flang. In MLIR tiling is handled by changing the the omp.loop_nest op to be able to represent both collapse and tiling, so the flang front-end will combine the nested constructs into a single MLIR op. The MLIR->LLVM-IR lowering of the LoopNestOp is enhanced to first do the tiling if present, then collapse. | 11 个月前 | |
[mlir][SCF] scf.for: Add support for unsigned integer comparison (#153379) Add a new unit attribute to allow for unsigned integer comparison. Example: mlir scf.for unsigned %iv_32 = %lb_32 to %ub_32 step %step_32 : i32 { // body } Discussion: https://discourse.llvm.org/t/scf-should-scf-for-support-unsigned-comparison/84655 | 1 年前 | |
[MLIR][GPU-LLVM] Convert gpu.func to llvm.func (#101664) Add support in -convert-gpu-to-llvm-spv to convert gpu.func to llvm.func operations. - spir_kernel/spir_func calling conventions used for kernels/functions. - workgroup attributions encoded as additional llvm.ptr<3> arguments. - No attribute used to annotate kernels - reqd_work_group_size attribute using to encode gpu.known_block_size. - llvm.mlir.workgroup_attrib_size used to encode workgroup attribution sizes. This will be attached to the pointer argument workgroup attributions lower to. **Note**: A notable missing feature that will be addressed in a follow-up PR is a -use-bare-ptr-memref-call-conv option to replace MemRef arguments with bare pointers to the MemRef element types instead of the current MemRef descriptor approach. --------- Signed-off-by: Victor Perez <victor.perez@codeplay.com> | 2 年前 | |
| 9 个月前 | ||
[mlir] Remove unused includes (NFC) (#150476) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in ShardToMPI.cpp (NFC) | 11 个月前 | |
[mlir] Remove unused includes (NFC) (#147101) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[mlir][spirv] Add 8-bit float type emulation (#148811) 8-bit floats are not supported in SPIR-V. They are emulated as 8-bit integer during conversion. | 1 年前 | |
[mlir][arith] Simplify inheriting constructors declarations. NFC. (#159682) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir] Switch uses of deprecated .create methods to free function. NFC. (#164635) See https://discourse.llvm.org/t/psa-opty-create-now-with-100-more-tab-complete/87339. | 9 个月前 | |
[mlir] Remove unused includes (NFC) (#150476) These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures. | 1 年前 | |
[mlir][NFC] update Conversion create APIs (7/n) (#149889) See https://github.com/llvm/llvm-project/pull/147168 for more info. | 1 年前 | |
[mlir] Use llvm accumulate wrappers. NFCI. (#162957) Use wrappers around std::accumulate to make the code more concise and less bug-prone: https://github.com/llvm/llvm-project/pull/162129. With std::accumulate, it's the initial value that determines the accumulator type. llvm::sum_of and llvm::product_of pick the right accumulator type based on the range element type. Found some funny bugs like a local accumulate helper that calculated a sum with initial value of 1 -- we didn't hit the bug because the code was actually dead... | 10 个月前 | |
[mlir][NFC] Mark type converter in populate... functions as const (#111250) This commit marks the type converter in populate... functions as const. This is useful for debugging. Patterns already take a const type converter. However, some populate... functions do not only add new patterns, but also add additional type conversion rules. That makes it difficult to find the place where a type conversion was added in the code base. With this change, all populate... functions that only populate pattern now have a const type converter. Programmers can then conclude from the function signature that these functions do not register any new type conversion rules. Also some minor cleanups around the 1:N dialect conversion infrastructure, which did not always pass the type converter as a const object internally. | 1 年前 | |
[mlir][spirv] Simplify inheriting constructor declarations. NFC. (#159681) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[mlir] Use llvm accumulate wrappers. NFCI. (#162957) Use wrappers around std::accumulate to make the code more concise and less bug-prone: https://github.com/llvm/llvm-project/pull/162129. With std::accumulate, it's the initial value that determines the accumulator type. llvm::sum_of and llvm::product_of pick the right accumulator type based on the range element type. Found some funny bugs like a local accumulate helper that calculated a sum with initial value of 1 -- we didn't hit the bug because the code was actually dead... | 10 个月前 | |
[MLIR][Vector] Remove vector.splat (#162167) vector.splat has been deprecated (user: please use the very similar vector.broadcast instead) with the last PR landing about 6 weeks ago. The discourse discussion is at https://discourse.llvm.org/t/rfc-mlir-vector-deprecate-then-remove-vector-splat/87143/1 The last PR was #152230 This PR completely removes vector.splat. In addition to removing vector.splat from VectorOps.td, it - Updates the few remaining places where vector::SplatOp is created (now vector::BroadcastOp is created) - Removes temporary patterns where vector.splat is replaced by vector.broadcast The only place 'vector.splat' appears is now the files https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/test/corpus/op.txt and https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/dialect/vector.js --------- Signed-off-by: James Newling <james.newling@gmail.com> | 10 个月前 | |
[mlir][vector] Simplify rewrite pattern inheriting constructors. NFC. (#161966) Use the Base type alias from https://github.com/llvm/llvm-project/pull/158433. | 10 个月前 | |
[MLIR] Extend vector.scatter to accept tensor as base (#165548) This PR makes the following improvements to vector.scatter and its lowering pipeline: - In addition to memref, accept a ranked tensor as the base operand of vector.scatter, similar to vector.transfer_write. - Implement bufferization support for vector.scatter, so that tensor-based scatter ops can be fully lowered to memref-based forms. It's worth to complete the functionality of map_scatter decomposition. Full discussion can be found here: https://github.com/iree-org/iree/issues/21135 --------- Signed-off-by: Ryutaro Okada <1015ryu88@gmail.com> | 9 个月前 | |
[mlir] Use llvm accumulate wrappers. NFCI. (#162957) Use wrappers around std::accumulate to make the code more concise and less bug-prone: https://github.com/llvm/llvm-project/pull/162129. With std::accumulate, it's the initial value that determines the accumulator type. llvm::sum_of and llvm::product_of pick the right accumulator type based on the range element type. Found some funny bugs like a local accumulate helper that calculated a sum with initial value of 1 -- we didn't hit the bug because the code was actually dead... | 10 个月前 | |
[MLIR][Vector] Remove vector.splat (#162167) vector.splat has been deprecated (user: please use the very similar vector.broadcast instead) with the last PR landing about 6 weeks ago. The discourse discussion is at https://discourse.llvm.org/t/rfc-mlir-vector-deprecate-then-remove-vector-splat/87143/1 The last PR was #152230 This PR completely removes vector.splat. In addition to removing vector.splat from VectorOps.td, it - Updates the few remaining places where vector::SplatOp is created (now vector::BroadcastOp is created) - Removes temporary patterns where vector.splat is replaced by vector.broadcast The only place 'vector.splat' appears is now the files https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/test/corpus/op.txt and https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/dialect/vector.js --------- Signed-off-by: James Newling <james.newling@gmail.com> | 10 个月前 | |
[mlir][XeGPU][VectorToXeGPU] Use 'xegpu.load' to lower 1D 'vector.transfer_read' for PVC & BMG (#168910) The PR changes the TransferReadLowering to always use xegpu.load (and not xegpu.load_nd) for 1D cases as it has more developed interface (e.g. layouts capabilites). Signed-off-by: dchigarev <dmitry.chigarev@intel.com> | 8 个月前 | |
[MLIR][Conversion] XeGPU to XeVM: Use adaptor for getting base address from memref. (#168610) adaptor already lowers memref to base address. Conversion patterns should use it instead of generating code to get base address from memref. | 8 个月前 | |
[mlir][LLVM] Resync memory effect attribute with LLVM IR (#168568) - Add missing locations, namely 'ErrnoMem', 'TargetMem0', and 'TargetMem1'. | 8 个月前 | |
[mlir] Add FP software implementation lowering pass: arith-to-apfloat (#167848) Reland pass and fix linker errors. --------- Co-authored-by: Maksim Levental <maksim.levental@gmail.com> | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 9 个月前 |