llvm-6502/test
Hal Finkel bd896c1b25 Fix AddAliasScopeMetadata to not add scopes when deriving from unknown pointers
The previous implementation of AddAliasScopeMetadata, which adds noalias
metadata to preserve noalias parameter attribute information when inlining had
a flaw: it would add alias.scope metadata to accesses which might have been
derived from pointers other than noalias function parameters. This was
incorrect because even some access known not to alias with all noalias function
parameters could easily alias with an access derived from some other pointer.
Instead, when deriving from some unknown pointer, we cannot add alias.scope
metadata at all. This fixes a miscompile of the test-suite's tramp3d-v4.
Furthermore, we cannot add alias.scope to functions unless we know they
access only argument-derived pointers (currently, we know this only for
memory intrinsics).

Also, we fix a theoretical problem with using the NoCapture attribute to skip
the capture check. This is incorrect (as explained in the comment added), but
would not matter in any code generated by Clang because we get only inferred
nocapture attributes in Clang-generated IR.

This functionality is not yet enabled by default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216818 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-30 12:48:33 +00:00
..
Analysis
Assembler
Bindings
Bitcode
BugPoint
CodeGen Revert r216805 "[MachineCombiner][AArch64] Use the correct register class for MADD, SUB, and OR." 2014-08-30 06:16:26 +00:00
DebugInfo Debug info: Add a new explicit DIDescriptor flag for the "public" access 2014-08-29 22:44:07 +00:00
ExecutionEngine
Feature
FileCheck
Instrumentation
Integer
JitListener
Linker Debug info: Add a new explicit DIDescriptor flag for the "public" access 2014-08-29 22:44:07 +00:00
LTO
MC Fix typos in comments, NFC 2014-08-29 21:53:01 +00:00
Object
Other
TableGen
tools Object/llvm-objdump: allow dumping of mach-o exports trie 2014-08-30 00:20:14 +00:00
Transforms Fix AddAliasScopeMetadata to not add scopes when deriving from unknown pointers 2014-08-30 12:48:33 +00:00
Unit
Verifier Verifier: Don't reject varargs callee cleanup functions 2014-08-29 21:25:28 +00:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh