diff options
| author | Zola Bridges <zbrid@google.com> | 2018-11-26 20:11:18 +0000 |
|---|---|---|
| committer | Zola Bridges <zbrid@google.com> | 2018-11-26 20:11:18 +0000 |
| commit | e8e8c5cf4dfb2cd8a2505db9d8d103661a153458 (patch) | |
| tree | d0fc61070fb3024b6228785b7da9aec7b35af284 /llvm/docs | |
| parent | 4ed350d6c4b9a7526ea16b23dd638dc7cf62c602 (diff) | |
| download | bcm5719-llvm-e8e8c5cf4dfb2cd8a2505db9d8d103661a153458.tar.gz bcm5719-llvm-e8e8c5cf4dfb2cd8a2505db9d8d103661a153458.zip | |
Revert "[clang][slh] add attribute for speculative load hardening"
This reverts commit 801eaf91221ba6dd6996b29ff82659ad6359e885.
llvm-svn: 347588
Diffstat (limited to 'llvm/docs')
| -rw-r--r-- | llvm/docs/LangRef.rst | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index fa85b6e6ee7..7ec157fb73c 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -1643,15 +1643,19 @@ example: ``speculative_load_hardening`` This attribute indicates that `Speculative Load Hardening <https://llvm.org/docs/SpeculativeLoadHardening.html>`_ - should be enabled for the function body. - - Speculative Load Hardening is a best-effort mitigation against - information leak attacks that make use of control flow - miss-speculation - specifically miss-speculation of whether a branch - is taken or not. Typically vulnerabilities enabling such attacks are - classified as "Spectre variant #1". Notably, this does not attempt to - mitigate against miss-speculation of branch target, classified as - "Spectre variant #2" vulnerabilities. + should be enabled for the function body. This is a best-effort attempt to + mitigate all known speculative execution information leak vulnerabilities + that are based on the fundamental principles of modern processors' + speculative execution. These vulnerabilities are classified as "Spectre + variant #1" vulnerabilities typically. Notably, this does not attempt to + mitigate any vulnerabilities where the speculative execution and/or + prediction devices of specific processors can be *completely* undermined + (such as "Branch Target Injection", a.k.a, "Spectre variant #2"). Instead, + this is a target-independent request to harden against the completely + generic risk posed by speculative execution to incorrectly load secret data, + making it available to some micro-architectural side-channel for information + leak. For a processor without any speculative execution or predictors, this + is expected to be a no-op. When inlining, the attribute is sticky. Inlining a function that carries this attribute will cause the caller to gain the attribute. This is intended |

