[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:
parent
b39568d782
commit
f45c8ba0cd
@ -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.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user