| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][python] Remove PythonAttr mapping functionality This functionality has been replaced by TypeCasters (see D151840) depends on D154468 Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D154469 | 2 年前 | |
[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][docs][nfc] Fix markdown link | 2 年前 | |
[MLIR][Docs] Unwrap video link in Rationale | 3 年前 | |
Cleanup the MLIR LSP doc to remove references to the passes The MLIR LSP server initially had plans to support running passes from the client, but this was never implemented. The doc unnecessarily advise to register passes and makes reference to LSP server having some interaction with passes. Differential Revision: https://reviews.llvm.org/D153046 | 3 年前 | |
TOSA-to-Linalg lowering for element-wise ops - Wrote complete documentation for the Broadcastable op trait. This is mostly meant as a thorough description of its previous behavior, with the exception of minor feature updates. - Restricted legality criteria for a Broadcastable op in order to simplify current and future lowering passes and increase efficiency of code generated by those passes. New restriction are: 1) A dynamic dimension in an inferred result is not compatible with a static dimension in the actual result. 2) Broadcast semantics are restricted to input operands and not supported between inferred and actual result shapes. - Implemented TOSA-to-Linalg lowering support for unary, binary, tertiary element-wise ops. This support is complete for all legal cases described in the Broadcastable trait documentation. - Added unit tests for tosa.abs, tosa.add, and tosa.select as examples of unary, binary, and tertiary ops. Reviewed By: eric-k256 Differential Revision: https://reviews.llvm.org/D153291 | 2 年前 | |
[mlir][transform][tutorial] Fix typo in inline code snippet. (NFC) Reviewed By: ingomueller-net Differential Revision: https://reviews.llvm.org/D154828 | 2 年前 | |
[mlir] Split out a new ControlFlow dialect from Standard This dialect is intended to model lower level/branch based control-flow constructs. The initial set of operations are: AssertOp, BranchOp, CondBranchOp, SwitchOp; all split out from the current standard dialect. See https://discourse.llvm.org/t/standard-dialect-the-final-chapter/6061 Differential Revision: https://reviews.llvm.org/D118966 | 4 年前 | |
[MLIR][doc] Fix the [TOC] tag in two doc Somehow it was escaped in these documents. | 3 年前 | |
[mlir] add TOC to top-level documents Multiple top-level MLIR documents did not have a table of contents tag, making them harder to nagivate. | 3 年前 | |
[mlir][arith] Disallow zero ranked tensors for select's condition Zero ranked tensor (say tensor<i1>) when used for arith.select's condition, crashes optimizer during bufferization. This patch puts a constraint on condition to be either scalar or of matching shape as to its result. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D151270 | 3 年前 | |
[mlir][bytecode] Avoid recording null arglocs & realloc opnames. For block arg locs a common case is no/uknown location (where the producer signifies they don't care about blockarg location). Also avoid needing to dynamically resize opnames during parsing. Assumed to be post lazy loading change, so chose version 3. Differential Revision: https://reviews.llvm.org/D151038 | 3 年前 | |
[mlir] add TOC to top-level documents Multiple top-level MLIR documents did not have a table of contents tag, making them harder to nagivate. | 3 年前 | |
Remove CMake configuration for Sphinx targets in MLIR MLIR does not have a Sphinx configuration, this is just leading to build failures at the moment. The website https://mlir.llvm.org/ is using the Hugo generator to process the markdown files. | 6 年前 | |
[mlir] Add a new fold API using Generic Adaptors This is part of the RFC for a better fold API: https://discourse.llvm.org/t/rfc-a-better-fold-api-using-more-generic-adaptors/67374 This patch implements the required foldHook changes and the TableGen machinery for generating fold method signatures using FoldAdaptor for ops, based on the value of useFoldAPI of the dialect. It may be one of 2 values, with convenient named constants to create a quasi enum. The new fold method will then be generated if kEmitFoldAdaptorFolder is used. Since the new FoldAdaptor approach is strictly better than the old signature, part of this patch updates the documentation and all example to encourage use of the new fold signature. Included are also tests exercising the new API, ensuring proper construction of the FoldAdaptor and proper generation by TableGen. Differential Revision: https://reviews.llvm.org/D140886 | 3 年前 | |
[mlir] add TOC to top-level documents Multiple top-level MLIR documents did not have a table of contents tag, making them harder to nagivate. | 3 年前 | |
[mlir][docs] Group the docs for defining dialect components This moves the documentation for defining dialects, attributes/types, and operations into a new DefiningDialects folder. This helps to keep the documentation grouped together, making it easier to find related documentation. Differential Revision: https://reviews.llvm.org/D137594 | 3 年前 | |
[mlir] Add support for regex within expected-* diagnostics This can be enabled by using a -re suffix when defining the expected line, e.g. expected-error-re. This support is similar to what clang provides in its "expected" diagnostic framework(e.g. the -re is also the same). The regex definitions themselves are similar to FileCheck in that regex blocks are specified within {{ }} blocks. Differential Revision: https://reviews.llvm.org/D129343 | 3 年前 | |
[mlir][Affine][NFC] Wrap dialect in "affine" namespace This cleanup aligns the affine dialect with all the other dialects. Differential Revision: https://reviews.llvm.org/D148687 | 3 年前 | |
[mlir][CallOpInterface] Add setCalleeFromCallable method Currently CallOpInterface has a method getCallableForCallee to have a consistent way to get the callee from an operation with CallOpInterface, but missing a consistent way to set a callee for an operation with CallOpInterface. A set callee method is useful for transformations that operate on CallOpInterface, and change the callee, e.g., a pass that specialize function, which clone the callee, and change the CallOpInterface's callee to the cloned version. Without such method, transformation would need to understand the implementation for every operations with CallOpInterface, and have a type switch to handle them. This review adds a method to set callee for operation with CallOpInterface. Reviewed By: gysit, zero9178o Differential Revision: https://reviews.llvm.org/D149763 | 3 年前 | |
issue#62488: Correct some syntax errors. Leave location and custom-operation-format unchanged, because I'm not sure. Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D149810 | 3 年前 | |
[mlir][ods] Make Type- and AttrInterfaces also Types and Attrs By making TypeInterfaces and AttrInterfaces, Types and Attrs respectively it'd then be possible to use them anywhere where a Type or Attr may go. That is within the arguments and results of an Op definition, in a RewritePattern etc. Prior to this change users had to separately define a Type or Attr, with a predicate to check whether a type or attribute implements a given interface. Such code will be redundant now. Removing such occurrences in upstream dialects will be part of a separate patch. As part of implementing this patch, slight refactoring had to be done. In particular, Interfaces cppClassName field was renamed to cppInterfaceName as it "clashed" with TypeConstraints cppClassName. In particular Interfaces cppClassName expected just the class name, without any namespaces, while TypeConstraints cppClassName expected a fully qualified class name. Differential Revision: https://reviews.llvm.org/D129209 | 3 年前 | |
Restore mlir-opt --run-reproducer option to opt-in running a reproducer When tooling out there produces a reproducer that is archived, the first thing a user is likely to expect is to process this as they do with any MLIR file. However https://reviews.llvm.org/D126447 changed the behavior of mlir-opt to eliminate the --run-reproducer option and instead automatically run it when present in the input file. This creates a discrepancy in how mlir-opt behaves when fed with an input file, and is surprising for users. The explicit passing of --run-reproducer to express user-intent seems more in line with what is expected from mlir-opt. Reviewed By: rriddle, jpienaar Differential Revision: https://reviews.llvm.org/D149820 | 3 年前 | |
[mlir][doc] Fix broken docs - Fix include paths for Transform Dialect Tutorial - Add math dialect's pass into Pass.md - Remove a include path of Quant dialect from Pass.md Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D153944 | 2 年前 | |
Finish renaming getOperandSegmentSizeAttr() from operand_segment_sizes to operandSegmentSizes This renaming started with the native ODS support for properties, this is completing it. A mass automated textual rename seems safe for most codebases. Drop also the ods prefix to keep the accessors the same as they were before this change: properties.odsOperandSegmentSizes reverts back to: properties.operandSegementSizes The ODS prefix was creating divergence between all the places and make it harder to be consistent. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D157173 | 2 年前 | |
[MLIR][Quant] Fix equations in Quantization.md This patch fixes the equations on the Quantization page (https://mlir.llvm.org/docs/Quantization/). I don't know what caused the equations to be broken, it might be https://github.com/llvm/mlir-www/pull/152, but I'm not sure. Irregardless, let's just fix it and be done with it. I've fixed the equations by moving some subscripts to the text. For some reason, the large number of subscripts caused Mathjax to fail. I've also tried KaTeX, which failed at exactly the same number of subscripts. The workflow to inspect the fix is as follows: $ git clone --depth=1 https://github.com/llvm/mlir-www.git /some/path/mlir-www $ git clone --depth=1 https://github.com/llvm/llvm-project.git /some/path/llvm-project $ cp /some/path/llvm-project/mlir/docs/Quantization.md \ /some/path/mlir-www/website/content/Quantization.md $ cd /some/path/mlir-www/website $ hugo serve [...] Web Server is available at http://localhost:1313/ (bind address 127.0.0.1) Press Ctrl+C to stop and view the page at http://localhost:1313/Quantization/. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D152651 | 3 年前 | |
[mlir] Add short readme.txt to docs directory Summary: Refer folks to the main website and make it explicit that the rendered output is what is of interest and that the GitHub viewing experience may not match (even though we are trying to keep it as close as possible, the renderers do differ). Differential Revision: https://reviews.llvm.org/D74739 | 6 年前 | |
Add release notes for MLIR Differential Revision: https://reviews.llvm.org/D156253 | 2 年前 | |
[mlir][spirv] Change dialect name from 'spv' to 'spirv' Tested with check-mlir and check-mlir-integration. Issue: https://github.com/llvm/llvm-project/issues/56863 Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D134620 | 3 年前 | |
[mlir] add TOC to top-level documents Multiple top-level MLIR documents did not have a table of contents tag, making them harder to nagivate. | 3 年前 | |
[mlir][NFC] Update textual references of func to func.func in examples+python scripts The special case parsing of func operations is being removed. | 4 年前 | |
[mlir][Conversion] Rename the MemRefToLLVM pass Since the recent MemRef refactoring that centralizes the lowering of complex MemRef operations outside of the conversion framework, the MemRefToLLVM pass doesn't directly convert these complex operations. Instead, to fully convert the whole MemRef dialect space, MemRefToLLVM needs to run after expand-strided-metadata. Make this more obvious by changing the name of the pass and the option associated with it from convert-memref-to-llvm to finalize-memref-to-llvm. The word "finalize" conveys that this pass needs to run after something else and that something else is documented in its tablegen description. This is a follow-up patch related to the conversation at: https://discourse.llvm.org/t/psa-you-need-to-run-expand-strided-metadata-before-memref-to-llvm-now/66956/14 Differential Revision: https://reviews.llvm.org/D142463 | 3 年前 | |
[mlir] Bootstrap doxygen config Add basic doxygen config following clang and llvm example with minimal changes. | 6 年前 | |
[docs] Hide collaboration and include graphs in doxygen docs They don't convey any useful information and make the documentation unnecessarily hard to read. Differential Revision: https://reviews.llvm.org/D149641 | 3 年前 |
MLIR documentation
Please note mlir.llvm.org is where MLIR's rendered documentation is displayed. The viewing experience on GitHub or elsewhere may not match those of the website. For any changes please verify instead that they work on the main website first.
See https://github.com/llvm/mlir-www for the website generation information.