aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2017-12-22 17:44:53 +0000
committerMichael Kruse <llvm@meinersbur.de>2017-12-22 17:44:53 +0000
commit271deb17b04a4b2b99cc038014b26a96ef461366 (patch)
tree11633afe5efb559f66724457f2c592cadc5aad58 /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
parentb2368fbdf4e153e1b920cddd6f393434b3245f84 (diff)
downloadllvm-271deb17b04a4b2b99cc038014b26a96ef461366.zip
llvm-271deb17b04a4b2b99cc038014b26a96ef461366.tar.gz
llvm-271deb17b04a4b2b99cc038014b26a96ef461366.tar.bz2
[CodeGen] Fix noalias annotations for memcpy/memmove.
Memory transfer instructions take two pointers. It is not defined to which of those a noalias annotation applies. To ensure correctness, do not add noalias annotations to memcpy/memmove instructions anymore. The caused a miscompile with test-suite's MultiSource/Applications/obsequi. Since r321138, the MemCpyOpt pass would remove memcpy/memmove calls if known to copy uninitialized memory. In that case, it was initialized by another memcpy, but the annotation for the target pointer said it would not alias. The annotation was actually meant for the source pointer, which was was an alloca and could not alias with the target pointer. llvm-svn: 321371
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
0 files changed, 0 insertions, 0 deletions