[PATCH] D133063: [docs] Add a RISC-V Usage page
Philip Reames via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 31 15:38:48 PDT 2022
reames created this revision.
reames added reviewers: craig.topper, kito-cheng, asb, frasercrmck.
Herald added subscribers: kosarev, sunshaoce, VincentWu, luke957, StephenFan, vkmr, luismarques, apazos, sameer.abuasal, s.egerton, Jim, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, niosHD, sabuasal, sunfish, bollu, simoncook, johnrusso, rbar, arichardson, tpr, mcrosier, dschuff.
Herald added a project: All.
reames requested review of this revision.
Herald added subscribers: pcwang-thead, MaskRay, aheejin.
Herald added a project: LLVM.
This follows the pattern set by e.g. SPIR-V, AMDGPU, and WebAssembly.
For the moment, this page is fairly minimal stub. I mostly want a place to record which extensions we support, and when that support is not complete, a central place to note that. I'm deliberately starting with a subset of extensions which are pretty straight forward with only one case needing a detail note.
I figure the partial support cases are going to need a bunch of discussion, and having each of them in their own review seemed worthwhile. Similarly, the experimental extensions probably fall into the same bucket of triggering a bunch of review discussion.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D133063
Files:
llvm/docs/RISCVUsage.rst
Index: llvm/docs/RISCVUsage.rst
===================================================================
--- /dev/null
+++ llvm/docs/RISCVUsage.rst
@@ -0,0 +1,84 @@
+=============================
+User Guide for RISCV-V Target
+=============================
+
+.. contents::
+ :local:
+
+.. toctree::
+ :hidden:
+
+Introduction
+============
+
+The RISC-V target provides code generation for processors implementing
+supported variations of the RISC-V specification. It lives in the
+``llvm/lib/Target/RISCV`` directory.
+
+Base ISAs
+=========
+
+The specification defines three base instruction sets: RV32I, RV64I, and RV128I.
+Currently, LLVM supports RV32I, and RV64I, but not RV128I.
+
+To specify the target triple:
+
+ .. table:: RISC-V Architectures
+
+ ============ ==============================================================
+ Architecture Description
+ ============ ==============================================================
+ ``riscv32`` RISC-V with ELEN=32
+ ``riscv64`` RISC-V with ELEN=64
+ ============ ==============================================================
+
+.. _riscv-extensions:
+
+Extensions
+==========
+
+The following table provides a status summary for extensions which have been
+ratified and thus have finalized specifications. When relevant, detailed notes
+on support follow.
+
+ .. table:: Ratified Extensions by Status
+
+ ============= ================
+ Extension Status
+ ============= ================
+ ``A`` Supported
+ ``C`` Supported
+ ``D`` Supported
+ ``F`` Supported
+ ``M`` Supported
+ ``Q`` Supported
+ ``V`` Supported
+ ``Zicsr`` Supported
+ ``Zifencei`` Supported
+ ``Zba`` Supported
+ ``Zbb`` Supported
+ ``Zbc`` Supported
+ ``Zbs`` Supported
+ ``Zve32x`` Unsupported
+ ``Zve32f`` Unsupported
+ ``Zve64x`` Supported
+ ``Zve64f`` Supported
+ ``Zve64d`` Supported
+ ``Zvl32b`` Unsupported
+ ``Zvl64b`` Supported
+ ``Zvl128b`` Supported
+ ``Zvl256b`` Supported
+ ``Zvl512b`` Supported
+ ``Zvl1024b`` Supported
+ ============= =================
+
+Zve32x, Zve32f, Zvl32b
+ LLVM currently assumes a minimum VLEN (vector register width) of 64 bytes.
+
+Specification Documents
+=======================
+For ratified specifications, please refer to the `official RISC-V International
+page <https://riscv.org/technical/specifications/>`_. Make sure to check the
+`wiki for not yet integrated extensions
+<https://wiki.riscv.org/display/HOME/Recently+Ratified+Extensions>`_.
+
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D133063.457116.patch
Type: text/x-patch
Size: 2693 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220831/7b48c626/attachment.bin>
More information about the llvm-commits
mailing list