Go to file
Matthias Braun f290912d22 ARM: Introduce conservative load/store optimization mode
Most of the time ARM has the CCR.UNALIGN_TRP bit set to false which
means that unaligned loads/stores do not trap and even extensive testing
will not catch these bugs. However the multi/double variants are not
affected by this bit and will still trap. In effect a more aggressive
load/store optimization will break existing (bad) code.

These bugs do not necessarily manifest in the broken code where the
misaligned pointer is formed but often later in perfectly legal code
where it is accessed. This means recompiling system libraries (which
have no alignment bugs) with a newer compiler will break existing
applications (with alignment bugs) that worked before.

So (under protest) I implemented this safe mode which limits the
formation of multi/double operations to cases that are not affected by
user code (stack operations like spills/reloads) or cases where the
normal operations trap anyway (floating point load/stores). It is
disabled by default.

Differential Revision: http://reviews.llvm.org/D17015

llvm-svn: 262504
2016-03-02 19:20:00 +00:00
clang [libFuzzer] allow -fsanitize-coverage=0 (disables all coverage) 2016-03-02 19:16:54 +00:00
clang-tools-extra [clang-tidy] Fix an assertion failure of "SLocEntry::getExpansion()" when IncludeInserter handles macro header file. 2016-03-02 14:12:17 +00:00
compiler-rt [TSAN] Fix test java_race_pc 2016-03-02 13:53:22 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc math: Fix ilogb(double) return type 2016-02-24 00:52:15 +00:00
libcxx more status updates 2016-02-25 20:17:03 +00:00
libcxxabi [libcxxabi] Teach cxa_demangle about Hexagon's long double size 2016-01-20 14:10:23 +00:00
libunwind [AArch64] Fix libunwind build when using GNU assembler 2016-02-11 21:22:57 +00:00
lld Merge DarwinLdDriver and Driver. 2016-03-02 19:08:05 +00:00
lldb Upgrade the arm/thumb architecture used by the disassembler 2016-03-02 12:42:43 +00:00
llgo [llgo] Force exporting __morestack from llgoi 2015-11-27 04:46:46 +00:00
llvm ARM: Introduce conservative load/store optimization mode 2016-03-02 19:20:00 +00:00
openmp Add new OpenMP 4.5 affinity API 2016-02-25 18:49:52 +00:00
polly Fix: Add pass manager barrier. 2016-03-02 14:59:16 +00:00