| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][ods] Simplify signature of custom printers and parsers of Attributes and Types in presence of default constructible parameters The vast majority of parameters of C++ types used as parameters for Attributes and Types are likely to be default constructible. Nevertheless, TableGen conservatively generates code for the custom directive, expecting signatures using FailureOr<T> for all parameter types T to accomodate them possibly not being default constructible. This however reduces the ergonomics of the likely case of default constructible parameters. This patch fixes that issue, while barely changing the generated TableGen code, by using a helper function that is used to pass any parameters into custom parser methods. If the type is default constructible, as deemed by the C++ compiler, a default constructible instance is created and passed into the parser method by reference. In all other cases it is a Noop and a FailureOr is passed as before. Documentation was also updated to document the new behaviour. Fixes https://github.com/llvm/llvm-project/issues/60178 Differential Revision: https://reviews.llvm.org/D142301 | 3 年前 | |
[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] Convert quantized dialect bytecode to generated. Serves as rather self-contained documentation for using the generator from https://reviews.llvm.org/D144820. Differential Revision: https://reviews.llvm.org/D152118 | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 |