LLVM 8.0 released

Some of the updates that caught my eye:

Clang has new options to initialize automatic variables with a pattern. The default is still that automatic variables are uninitialized. This isn’t meant to change the semantics of C and C++. Rather, it’s meant to be a last resort when programmers inadvertently have some undefined behavior in their code. These options aim to make undefined behavior hurt less, which security-minded people will be very happy about.[…]

-mspeculative-load-hardening Clang now has an option to enable Speculative Load Hardening.

Clang now supports enabling/disabling speculative load hardening on a per-function basis using the function attribute speculative_load_hardening/no_speculative_load_hardening.

Function attribute speculative_load_hardening has been introduced to LLVM IR to allow indicating that Speculative Load Hardening must be enabled for the function body.

Support for Speculative Load Hardening has been added to AArch64 target.

Support for precise identification of X86 instructions with memory operands, by using debug information. This supports profile-driven cache prefetching. It is enabled with the -x86-discriminate-memops LLVM Flag.


Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s