llvm/lib
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 Fix typos in comments, NFC 2014-08-29 21:53:01 +00:00
AsmParser Fix typos in comments, NFC 2014-08-29 21:53:01 +00:00
Bitcode
CodeGen [MachineSinking] Clear kill flag of all operands at all their uses. 2014-08-29 23:48:03 +00:00
DebugInfo
ExecutionEngine [MCJIT] Move endian-aware read/writes from RuntimeDyldMachO into 2014-08-29 23:17:47 +00:00
IR Debug info: Add a new explicit DIDescriptor flag for the "public" access 2014-08-29 22:44:07 +00:00
IRReader
LineEditor
Linker
LTO
MC
Object Fix typo and formatting 2014-08-30 01:57:34 +00:00
Option
ProfileData
Support Cleaning up static initializers in Signals.inc 2014-08-29 01:05:16 +00:00
TableGen Comment only: Annotate loop as per mailing list discussion 2014-08-29 22:43:30 +00:00
Target Revert r216805 "[MachineCombiner][AArch64] Use the correct register class for MADD, SUB, and OR." 2014-08-30 06:16:26 +00:00
Transforms Fix AddAliasScopeMetadata to not add scopes when deriving from unknown pointers 2014-08-30 12:48:33 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile