| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[MLIR][ODS] Re-enable direct implementation of type interfaces with method bodies (#166335) Since commit 842622bf8bea782e9d9865ed78b0d8643f098122 adding support for overloading interface methods, a using directive is emitted for any interface method that does not require emission of a trait method, including for methods that define a method body. However, methods directly specifying a body (e.g., via the methodBody parameter of InterfaceMethod) are implemented directly in the interface class and are therefore not present in the associated trait. The generated using directive then referes to a non-existent method of the trait, resulting in an error upon compilation of the generated code. This patch changes DefGen::emitTraitMethods(), such that genTraitMethodUsingDecl() is not invoked for interface methods with a body anymore. | 9 个月前 | |
[mlir] Simplify unreachable type switch cases. NFC. (#162032) Use DefaultUnreachable from https://github.com/llvm/llvm-project/pull/161970. | 10 个月前 | |
[mlir][ods] Make Attr/Type def accessors match the dialect The generated attribute and type def accessors are changed to match the setting on the dialect. Most importantly, "prefixed" will now correctly convert snake case to camel case (e.g. weight_zp -> getWeightZp) Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D127688 | 4 年前 | |
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in BytecodeDialectGen.cpp (NFC) | 11 个月前 | |
[MLIR] Generate cpp comments for TableGen summary and description (#139606) This commit takes the summary and description of TableGen files and generate a cpp comments on top of the declarations of generated cpp classes. The main motivation is to improve the developer experience. When people work on compilers from an IDE, they will be able to hover over the symbols (e.g. "ADialect::BOp") in their cpp code and see the summary and descriptions without having to referring to the .td files. | 1 年前 | |
[mlir] Remove unused local variables (NFC) (#163105) Identified with bugprone-unused-local-non-trivial-variable. | 9 个月前 | |
[NFC][MLIR][TableGen] Change emitSummaryAndDescComments to write to os directly (#162014) Change emitSummaryAndDescComments to directly write to the output stream, avoiding creating large intermediate strings. | 10 个月前 | |
[NFC][MLIR][TableGen] Change emitSummaryAndDescComments to write to os directly (#162014) Change emitSummaryAndDescComments to directly write to the output stream, avoiding creating large intermediate strings. | 10 个月前 | |
[TableGen] llvm::Optional => std::optional | 3 年前 | |
[utils][TableGen] Clarify usage of ClauseVal, rename to EnumVal (#141761) The class "ClauseVal" actually represents a definition of an enumeration value, and in itself it is not bound to any clause. Rename it to EnumVal and add a comment clarifying how it's translated into an actual enum definition in the generated source code. There is no change in functionality. | 1 年前 | |
[MLIR][Doc] Also print summarys for passes on a newline This patch is improves upon https://reviews.llvm.org/D152621. There, I pointed out some issues with D152621, which I'll repeat here. > Passes use a different logic for generating the documentation; which I didn't update to be in-line with this change. Fixed by defining and using mlir::tblgen::emitSummary. This is now used in OpDocGen.cpp and PassDocGen.cpp. Note that the passes documentation currently prints the summary behind the pass argument. For example: #### -arm-neon-2d-to-intr: Convert Arm NEON structured ops to intrinsics at https://mlir.llvm.org/docs/Passes/#-promote-buffers-to-stack-promotes-heap-based-allocations-to-automatically-managed-stack-based-allocations. This currently differs from how the summary is printed for Ops. For example: #### amdgpu.lds_barrier (::mlir::amdgpu::LDSBarrierOp) ¶ **Summary:** _Barrier that includes a wait for LDS memory operations._ at https://mlir.llvm.org/docs/Dialects/AMDGPU/#amdgpulds_barrier-mliramdgpuldsbarrierop. The changes in this patch ensure that: 1. The summary is always printed on a new line. 2. The summary is always printed in italic. 3. The summary always starts with a capital letter. I've dropped the **Summary:**, which was introduced in D152621, because only italicization should be already clear enough. > amx.tdpbssd shows **Summary:** __ meaning that apparently hasSummary does not guarantee a non-empty summary. This is fixed by double-checking !summary.empty(), because the following code cpp void mlir::tblgen::emitSummary(StringRef summary, raw_ostream &os) { if (!summary.empty()) { char first = std::toupper(summary.front()); llvm::StringRef rest = summary.drop_front(); os << "\n_" << first << rest << "_\n\n"; } else { os << "\n_" << "foo" << "_\n\n"; } } generates the following Markdown: `` ### amx.tdpbssd (::mlir::amx::x86_amx_tdpbssd) _foo_ ` in tools/mlir/docs/Dialects/AMX.md`. > Summary fields containing * cancel the italicization, so the * should probably be escaped to solve this. EDIT: Nope. This is because mlir-www runs Hugo 0.80 whereas 0.111 correctly parses _Raw Buffer Floating-point Atomic Add (MI-* only)_ as an italicized string. This will be fixed by https://github.com/llvm/mlir-www/pull/152. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D152648 | 3 年前 | |
[MLIR][Python] MLIR Enum Python bindings infinite recursion (#151584) (#151588) Fixes an infinite recursion bug when using I32BitEnumAttrCaseGroup with python bindings. For more info, see issue: - https://github.com/llvm/llvm-project/issues/151584 | 11 个月前 | |
[NFC][TableGen] Remove close member from various CodeGenHelpers (#167904) Always rely on local scopes to enforce the lifetime of these helper objects and by extension where the "closing" of various C++ code constructs happens. | 8 个月前 | |
[mlir][omp] Add omp.tile operation (#160292) Add the omp.tile loop transformations for the OpenMP dialect. Used for lowering a standalone !$omp tile in Flang. | 10 个月前 | |
[mlir][tblgen] Add custom parsing and printing within struct (#133939) This PR extends the struct directive in tablegen to support nested custom directives. Note that this assumes/verifies that that custom directive has a single parameter. This enables defining custom field parsing and printing functions if the struct directive doesn't suffice. There is some existing potential downstream usage for it: https://github.com/openxla/stablehlo/blob/a3c7de92425e8035437dae67ab2318a82eca79a1/stablehlo/dialect/StablehloOps.cpp#L3102 | 1 年前 | |
[mlir] Replace LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]] (NFC) (#163703) This patch replaces LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]], introduced as part of C++17. | 9 个月前 | |
[CodeGen] Rename MVT::iPTRAny to MVT::pAny Whilst in upstream LLVM iPTRAny is only ever an integer, essentially an alias for iPTR, this is not true in CHERI LLVM, where it gets used to mean "iPTR or cPTR", i.e. either an integer address or a capability (with cPTR and cN being the capability equivalents of iPTR and iN). Moreover, iPTRAny is already not itself regarded as an integer (calling isInteger() will give false), so the "i" prefix is misleading, and it stands out as different from all the other xAny that have a single letter prefix denoting their type. Thus, rename it to pAny, reflecting that it is an overloaded pointer type, which could end up being specialised to an integer type, but does not have to be. This has been verified to have no effect on the generated files for LLVM itself or any in-tree target beyond the replacement of the identifier iPTRAny with pAny in GenVT.inc. Reviewers: arsenm Reviewed By: arsenm Pull Request: https://github.com/llvm/llvm-project/pull/113733 | 1 年前 | |
[NFC][TableGen] Migrate IfDef/Namespace emitter from MLIR to LLVM (#161744) | 10 个月前 | |
[ODS] Extra Concrete Declarations and Definitions under Traits Support extra concrete class declarations and definitions under NativeTrait that get injected into the class that specifies the trait. Extra declarations and definitions can be passed in as template arguments for NativeOpTraitNativeAttrTrait and NativeTypeTrait. Usage examples of this feature include: - Creating a wrapper Trait for authoring inferReturnTypes with the OpAdaptor by specifying necessary Op specific declarations and definitions directly in the trait - Refactoring the InferTensorType trait Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D154731 | 3 年前 | |
[ODS] Extra Concrete Declarations and Definitions under Traits Support extra concrete class declarations and definitions under NativeTrait that get injected into the class that specifies the trait. Extra declarations and definitions can be passed in as template arguments for NativeOpTraitNativeAttrTrait and NativeTypeTrait. Usage examples of this feature include: - Creating a wrapper Trait for authoring inferReturnTypes with the OpAdaptor by specifying necessary Op specific declarations and definitions directly in the trait - Refactoring the InferTensorType trait Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D154731 | 3 年前 | |
[mlir][ods] Enable basic string interpolation in constraint summary. (#153603) This enables printing, for example, the attribute value from a mismatched predicate. Example of resultant output (here made non-negative report value seen as sign-extended int): PDL/ops.mlir:21:1: error: 'pdl.pattern' op attribute 'benefit' failed to satisfy constraint: 16-bit signless integer attribute whose value is non-negative (got -31) pdl.pattern @rewrite_with_args : benefit(-31) { ^ This is primarily the mechanism and didn't change any existing constraints. I also attempted to keep the error format as close to the original as possible - but did notice 2 errors that were inconsistent with the rest and updated them to be consistent. | 9 个月前 | |
[mlir][NFC] Use llvm::sort (#140261) | 1 年前 | |
[mlir][omp] Add omp.tile operation (#160292) Add the omp.tile loop transformations for the OpenMP dialect. Used for lowering a standalone !$omp tile in Flang. | 10 个月前 | |
[mlir] Fix the emission of prop-dict when operations have no properties (#112851) When an operation has no properties, no property struct is emitted. To avoid a compilation error, we should also skip emitting setPropertiesFromParsedAttr, parseProperties and printProperties in such cases. Compilation error: error: ‘Properties’ has not been declared static ::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError); | 1 年前 | |
[NFC] Rename variable recordKeeper to records (#110989) | 1 年前 | |
[NFC] Rename variable recordKeeper to records (#110989) | 1 年前 | |
[NFC][MLIR][TableGen] Adopt NamespaceEmitter more widely (#163289) Adopt NamespaceEmitter more widely in MLIR TableGen. | 9 个月前 | |
[mlir][python] Fix ir.Value type to not break other types (#167930) Change in https://github.com/llvm/llvm-project/pull/166148 caused breaks for some other types. Specifically this error was seen in a downstream project _ods_ir.OpOperandList[_ods_ir.IntegerType]: TypeError: type 'iree.compiler._mlir_libs._mlir.ir.OpOperandList' is not subscriptable This PR tries to make those changes not affect the other types --------- Signed-off-by: Nirvedh Meshram <nirvedh@gmail.com> | 8 个月前 | |
[NFC][MLIR][TableGen] Eliminate llvm:: for commonly used types (#110841) Eliminate llvm:: namespace qualifier for commonly used types in MLIR TableGen backends to reduce code clutter. | 1 年前 | |
[MLIR] Make generated markdown doc more consistent (#119926) A few changes to doc generation: - All summaries are in italics. - In general each optional block starts and ends with a newline. - All table elements are enclosed in |'s - Overall reduce the number of >2newlines in a row Rationale for this change is that our markdown to docs generator requires a newline before all headers, otherwise it gets inlined into the line before it, see ### sdy-op-priority-propagate in the image below. <img width="883" alt="image" src="https://github.com/user-attachments/assets/b795c424-cecb-48df-abbe-aee2030f4491" /> That said overall I feel this formatting is more consistent now, here's a before and after: - Dialect documentation diff: https://www.diffchecker.com/OVMHoXeL/ - Pass documentation diff: https://www.diffchecker.com/XEJRmW3k/ | 1 年前 | |
[mlir][ods] Enable granular pass registration. (#166532) Same as with pass def & decl. This doesn't change anything with registry and the big flag kept (e.g., GEN_PASS_REGISTRATION behaves like GEN_PASS_DECL and so too for sub ones). | 9 个月前 | |
[mlir] Replace LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]] (NFC) (#163703) This patch replaces LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]], introduced as part of C++17. | 9 个月前 | |
[NFC][MLIR][TableGen] Adopt NamespaceEmitter more widely (#163289) Adopt NamespaceEmitter more widely in MLIR TableGen. | 9 个月前 | |
[NFC][MLIR][TableGen] Use ArrayRef instead of const vector reference (#162016) | 10 个月前 | |
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in mlir-tblgen.cpp (NFC) | 11 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 10 个月前 | ||
| 4 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 11 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 11 个月前 |