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.
http://releases.llvm.org/8.0.0/docs/ReleaseNotes.html
http://releases.llvm.org/download.html#8.0.0
http://releases.llvm.org/8.0.0/tools/clang/docs/ReleaseNotes.html
http://releases.llvm.org/8.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html
http://releases.llvm.org/8.0.0/tools/lld/docs/ReleaseNotes.html
http://releases.llvm.org/8.0.0/projects/libcxx/docs/ReleaseNotes.html
http://lists.llvm.org/pipermail/llvm-announce/2019-March/000082.html