| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[OpenMP][flang] Lowering of OpenMP custom reductions to MLIR (#168417) This patch add support for lowering of custom reductions to MLIR. It also enhances the capability of the pass to automatically mark functions as "declare target" by traversing custom reduction initializers and combiners. | 8 个月前 | |
[NFC][MLIR] Prefer triple overload of lookupTarget (#162187) The overloads accepting a string will be deprecated soon, similar to other functions in TargetRegistry. | 9 个月前 | |
[MLIR][LLVMIR] Add elementtype attribute (#129918) These are very common when using intrinsics (e.g. ARM NEON). For more context: ClangIR has currently been blocked on such intrinsics emission because of this lacking capability. | 1 年前 | |
[mlir][LLVM|ptr] Add the #llvm.address_space attribute, and allow ptr translation (#156333) This commit introduces the #llvm.address_space attribute. This attribute implements the ptr::MemorySpaceAttrInterface, establishing the semantics of the LLVM address space. This allows making !ptr.ptr translatable to LLVM IR as long it uses the #llvm.address_space attribute. Concretely, !ptr.ptr<#llvm.address_space<N>> now translates to ptr addrspace(N). Additionally, this patch makes PtrLikeTypes with no metadata, no element type, and with #llvm.address_space memory space, compatible with the LLVM dialect. **Infrastructure Updates:** - Refactor ptr::MemorySpaceAttrInterface to include DataLayout parameter for better validation - Add new utility functions LLVM::isLoadableType() and LLVM::isTypeCompatibleWithAtomicOp() - Update type compatibility checks to support ptr-like types with LLVM address spaces - Splice the MemorySpaceAttrInterface to its own library, so the LLVMDialect won't depend on the PtrDialect yet **Translation Support:** - New PtrToLLVMIRTranslation module for converting ptr dialect to LLVM IR - Type translation support for ptr types with LLVM address spaces - Proper address space preservation during IR lowering Example: mlir llvm.func @llvm_ops_with_ptr_values(%arg0: !llvm.ptr) { %1 = llvm.load %arg0 : !llvm.ptr -> !ptr.ptr<#llvm.address_space<1>> llvm.store %1, %arg0 : !ptr.ptr<#llvm.address_space<1>>, !llvm.ptr llvm.return } Translates to: llvmir ; ModuleID = 'LLVMDialectModule' source_filename = "LLVMDialectModule" define void @llvm_ops_with_ptr_values(ptr %0) { %2 = load ptr addrspace(1), ptr %0, align 8 store ptr addrspace(1) %2, ptr %0, align 8 ret void } !llvm.module.flags = !{!0} !0 = !{i32 2, !"Debug Info Version", i32 3} | 11 个月前 | |
[mlir][llvm] Handle debug record import edge cases (#168774) This commit enables the direct import of debug records by default and fixes issues with two edge cases: - Detect early on if the address operand is an argument list (calling getAddress() for argument lists asserts) - Use getAddress() to check if the address operand is null, which means the address operand is an empty metadata node, which currently is not supported. - Add support for debug label records. This is a follow-up to: https://github.com/llvm/llvm-project/pull/167812 | 8 个月前 | |
[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][LLVMIR][DLTI] Add LLVM::TargetAttrInterface and #llvm.target attr (#145899) Adds the #llvm.target<triple = $TRIPLE, chip = $CHIP, features = $FEATURES> attribute and along with a -llvm-target-to-data-layout pass to derive a MLIR data layout from the LLVM data layout string (using the existing DataLayoutImporter). The attribute implements the relevant DLTI-interfaces, to expose the triple, chip (AKA cpu) and features on #llvm.target and the full DataLayoutSpecInterface. The pass combines the generated #dlti.dl_spec with an existing dl_spec in case one is already present, e.g. a dl_spec which is there to specify size of the index type. Adds a TargetAttrInterface which can be implemented by all attributes representing LLVM targets. Similar to the Draft PR https://github.com/llvm/llvm-project/pull/78073. RFC on which this PR is based: https://discourse.llvm.org/t/mandatory-data-layout-in-the-llvm-dialect/85875 | 11 个月前 | |
[MLIR][LLVM] Avoid creating unused NameLocs for imported functions (#163506) This commit removes the creation of NameLocs when importing locations for LLVM IR functions. This made the generated fused location more complex by adding no valuable additional information to it. Note that removing it has no effect on the roundtrip from LLVM IR back to LLVM IR. | 9 个月前 | |
[mlir][debug] Support DIGenericSubrange. (#113441) DIGenericSubrange is used when the dimensions of the arrays are unknown at build time (e.g. assumed-rank arrays in Fortran). It has same lowerBound, upperBound, count and stride fields as in DISubrange and its translation looks quite similar as a result. --------- Co-authored-by: Tobias Gysi <tobias.gysi@nextsilicon.com> | 1 年前 | |
[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][LLVM] Avoid duplicated module flags in the export (#131627) This commit resolves an issue in the LLVMIR export that caused the duplication of the "Debug Info Version" module flag, when it was already in MLIR. | 1 年前 | |
Reapply "[mlir][llvm] Add intrinsic arg and result attribute support … (#151324) …(… (#151099) This reverts commit 2780b8f22058b35a8e70045858b87a1966df8df3 and relands b7bfbc0c4c7b20d6623a5b0b4a7fea8ae08a62da. Adds the following fixes compared to the original PR (https://github.com/llvm/llvm-project/pull/150783): - A bazel fix - Use let methods instead of list<InterfaceMethod> methods The missing forward declaration has been added in meantime: https://github.com/llvm/llvm-project/commit/9164d206b33d61c93f5fc4628797485f96d654ca. | 1 年前 | |
[mlir][llvm] Fix loop annotation parser (#78266) This revision moves the ArrayRef field of the LoopAnnotation attribute to the end of the struct to enable printing and parsing of the attribute. Previously, the parsing could fail in the presence of a start or end loc. | 2 年前 | |
[mlir][llvm] Remove the metadata op This revision removes the metadata op, that to the best of our knowledge, has no more uses after switching to a purely attribute based metadata representation: https://reviews.llvm.org/D155444 https://reviews.llvm.org/D155285 https://reviews.llvm.org/D155159 These changes got unlocked after landing distinct attribute support: https://reviews.llvm.org/D153360, which enables modeling distinct metadata using attributes. As a result, all metadata kinds are now represented using attributes. Previously, there has been a mix of attribute and op based representations. Having attribute only metadata makes it possible to update the metadata in-parallel, while updating the global metadata operation has been a sequential process. The LLVM Dialect inliner already benefits from this change and now creates new alias scopes and domains during inlining rather than dropping the no alias information: https://reviews.llvm.org/D155712 Reviewed By: Dinistro Differential Revision: https://reviews.llvm.org/D156217 | 2 年前 | |
[mlir] Migrate away from std::nullopt (NFC) (#145842) ArrayRef has a constructor that accepts std::nullopt. This constructor dates back to the days when we still had llvm::Optional. Since the use of std::nullopt outside the context of std::optional is kind of abuse and not intuitive to new comers, I would like to move away from the constructor and eventually remove it. This patch replaces {} with std::nullopt. | 1 年前 | |
[mlir][llvm] Remove the metadata op This revision removes the metadata op, that to the best of our knowledge, has no more uses after switching to a purely attribute based metadata representation: https://reviews.llvm.org/D155444 https://reviews.llvm.org/D155285 https://reviews.llvm.org/D155159 These changes got unlocked after landing distinct attribute support: https://reviews.llvm.org/D153360, which enables modeling distinct metadata using attributes. As a result, all metadata kinds are now represented using attributes. Previously, there has been a mix of attribute and op based representations. Having attribute only metadata makes it possible to update the metadata in-parallel, while updating the global metadata operation has been a sequential process. The LLVM Dialect inliner already benefits from this change and now creates new alias scopes and domains during inlining rather than dropping the no alias information: https://reviews.llvm.org/D155712 Reviewed By: Dinistro Differential Revision: https://reviews.llvm.org/D156217 | 2 年前 | |
[mlir][llvm] Handle debug record import edge cases (#168774) This commit enables the direct import of debug records by default and fixes issues with two edge cases: - Detect early on if the address operand is an argument list (calling getAddress() for argument lists asserts) - Use getAddress() to check if the address operand is null, which means the address operand is an empty metadata node, which currently is not supported. - Add support for debug label records. This is a follow-up to: https://github.com/llvm/llvm-project/pull/167812 | 8 个月前 | |
[OpenMP][OMPIRBuilder] Use runtime CC for runtime calls (#168608) Some targets have a specific calling convention that should be used for generated calls to runtime functions. Pass that down and use it. Signed-off-by: Nick Sarnie <nick.sarnie@intel.com> | 8 个月前 | |
[MLIR][LLVM] Add import-structs-as-literals flag to the IR import (#140098) This commit introduces the import-structs-as-literals option to the MLIR import. This ensures that all struct types are imported as literal structs, even when they are named in LLVM IR. | 1 年前 | |
[mlir] Simplify unreachable type switch cases. NFC. (#162032) Use DefaultUnreachable from https://github.com/llvm/llvm-project/pull/161970. | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 8 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 9 个月前 |