llvm-project/llvm
Sanjoy Das ef8ed0c0db [MemoryBuiltins] Fix an issue with hasNoAliasAttr
Summary:
`hasNoAliasAttr` is buggy: it checks to see if the called function has
a `noalias` attribute, which is incorrect since functions are not even
allowed to have the `noalias` attribute.  The comment on its only
caller, `llvm::isNoAliasFn`, makes it pretty clear that the intention
to do the `noalias` check on the return value, and not the callee.

Unfortunately I couldn't find a way to test this upstream -- fixing
this does not change the observable behavior of any of the passes that
use this.  This is not very surprising, since `noalias` does not tell
anything about the contents of the allocated memory (so, e.g., you
still cannot fold loads).  I'll be happy to be proven wrong though.

Reviewers: chandlerc, reames

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 260298
2016-02-09 21:54:18 +00:00
..
bindings Remove autoconf support 2016-01-26 21:29:08 +00:00
cmake Turn on LLVM_ENABLE_PLUGINS by default on Windows 2016-02-09 19:37:27 +00:00
docs cmake: Accept "thin" or "full" as arguments to -DLLVM_ENABLE_LTO 2016-02-08 21:01:24 +00:00
examples Remove autoconf support 2016-01-26 21:29:08 +00:00
include [SelectionDAG] make getMemBasePlusOffset() accessible; NFCI 2016-02-09 21:42:04 +00:00
lib [MemoryBuiltins] Fix an issue with hasNoAliasAttr 2016-02-09 21:54:18 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources
test This brings back commit r259578. 2016-02-09 21:39:49 +00:00
tools This brings back commit r259578. 2016-02-09 21:39:49 +00:00
unittests Add comments to some tests 2016-02-09 05:47:08 +00:00
utils llvm-config: Add preliminary Windows support 2016-02-09 19:41:14 +00:00
.arcconfig
.clang-format
.clang-tidy adding readability-identifier-naming to llvm clang-tidy configuration. 2015-12-08 17:44:51 +00:00
.gitignore
CMakeLists.txt [GlobalISel] Add the proper cmake plumbing. 2016-01-20 20:58:56 +00:00
CODE_OWNERS.TXT [docs] Remove references to autotools build. 2016-01-30 01:10:15 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt Revert previous test commit. 2016-01-04 19:13:29 +00:00
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.