[RISC-V][sanitizers][NFCI] Add documentation on which sanitizers probably work (#177679)

Docs requested in https://github.com/llvm/llvm-project/issues/172375
This commit is contained in:
Thurston Dang 2026-01-23 14:37:17 -08:00 committed by GitHub
parent b39568d782
commit f45c8ba0cd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -612,3 +612,23 @@ Clang's ``-msmall-data-limit=`` option controls what the threshold size is (in b
The small data limit threshold is also used to separate small constants into sections with names starting with ``.srodata``. LLD does not place these with the ``.sdata`` and ``.sbss`` sections as ``.srodata`` sections are read only and the other two are writable. Instead the ``.srodata`` sections are placed adjacent to ``.rodata``.
Data suggests that these options can produce significant improvements across a range of benchmarks.
Sanitizers
==========
.. note::
This is a summary of the current state of sanitizers, and not an official support statement.
* UBSan is not platform-specific, and should work out of the box.
* ASan and TSan already have shadow mappings defined for Linux on RISC-V, and are likely to work.
* HWASan is also likely to work, though RISC-V Pointer Masking (very new) is needed as well to make it run efficiently.
* Memtag: N/A - there is currently no ratified RISC-V memory tagging spec.
* MSan is unlikely to work: there are currently no RISC-V-specific shadow mappings (this is probably easy to fix; perhaps the default Linux 64-bit mapping will work) and MSan does not explicitly handle any of the `@llvm.riscv.*` intrinsics (this is significantly more work to fix).
Some intrinsics will be handled correctly anyway, if the RISC-V intrinsic is auto-upgraded into cross-platform LLVM intrinsics. Some others will be "heuristically" handled (possibly incorrectly). The rest will default to the "strict" handler, which checks that all the parameters are fully initialized.
MSan intrinsics support is only required if code (including dependencies) manually calls the intrinsic.