diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-01-14 00:54:10 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-01-14 00:54:10 +0000 |
commit | bff090648b797aced9c3ff7bf3f3cf195ff1986c (patch) | |
tree | 7d528ffe2802d51c616df4179fb4d3a1412009a3 /clang/test/SemaCXX/overload-call.cpp | |
parent | 9015cde4dc18dd2fa1f131835f98b0a22f6e5be3 (diff) | |
download | bcm5719-llvm-bff090648b797aced9c3ff7bf3f3cf195ff1986c.tar.gz bcm5719-llvm-bff090648b797aced9c3ff7bf3f3cf195ff1986c.zip |
Don't fold insufficiently aligned ldr/str into ldm/stm instructions.
An unaligned ldr causes a trap, and is then emulated by the kernel with
awesome performance. The darwin kernel does not emulate unaligned ldm/stm
Thumb2 instructions, so don't generate them.
This fixes the miscompilation of Multisource/Applications/JM/lencod for Thumb2.
Generating unaligned ldr/str pairs from a 16-bit aligned memcpy is probably
also a bad idea, but that is beyond the scope of this patch.
llvm-svn: 93393
Diffstat (limited to 'clang/test/SemaCXX/overload-call.cpp')
0 files changed, 0 insertions, 0 deletions