[PATCH] D41761: Introduce llvm.nospeculateload intrinsic
Kristof Beyls via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 5 03:07:20 PST 2018
kristof.beyls created this revision.
kristof.beyls added a reviewer: olista01.
Herald added subscribers: javed.absar, aemerson.
Recently, Google Project Zero disclosed several classes of attack
against speculative execution. One of these, known as variant-1
(CVE-2017-5753), allows explicit bounds checks to be bypassed under
speculation, providing an arbitrary read gadget. Further details can be
found on the GPZ blog .
This patch introduces a new LLVM-IR intrinsic, called
llvm.nospeculateload, which enables the implementation of the new
clang-level builtin __builtin_load_no_speculate, see review
This new intrinsic provides a mechanism for limiting speculation by a
CPU after a bounds-checked memory access. We've tried to design this in
such a way that it can be used for any target where this might be
necessary. The patch consists of both target-specific functionality
for Arm and AArch64 code generation, and target-independent
functionality that other targets can reuse.
 More information on the topic can be found here:
Arm specific information can be found here:
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 80112 bytes
Desc: not available
More information about the llvm-commits