llvm-project/llvm
Philip Reames bd09e86f82 [CaptureTracking] Support atomicrmw and cmpxchg
These atomic operations are conceptually both a load and store from the same location. As such, we can treat them as the most conservative of those two components which in practice, means we can treat them like stores. An cmpxchg or atomicrmw captures the values, but not the locations accessed.

Note: We can probably be more aggressive about the comparison value in an cmpxhg since to have it be in memory, it must already be captured, but I figured it was better to avoid that for the moment.

Note 2: It turns out that since we don't actually support cmpxchg of pointer type, writing a negative test is impossible.

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

llvm-svn: 261245
2016-02-18 19:23:27 +00:00
..
bindings Kill LLVMAddTargetData 2016-02-16 00:22:02 +00:00
cmake cmake: Simplify the iOS.cmake toolchain 2016-02-12 23:36:05 +00:00
docs Mention 'notail' attribute in 3.9 release notes. 2016-02-17 19:35:47 +00:00
examples Remove autoconf support 2016-01-26 21:29:08 +00:00
include [DebugInfoPDB] Add source / line number accessors for PDB. 2016-02-18 18:47:29 +00:00
lib [CaptureTracking] Support atomicrmw and cmpxchg 2016-02-18 19:23:27 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources
test [CaptureTracking] Support atomicrmw and cmpxchg 2016-02-18 19:23:27 +00:00
tools Add parentheses around arithmetic in operand of '|'. 2016-02-18 13:23:17 +00:00
unittests [DebugInfoPDB] Add source / line number accessors for PDB. 2016-02-18 18:47:29 +00:00
utils [TableGen,X86] Add NDEBUG check to a variable initialization that's only used by asserts. NFC 2016-02-18 04:54:32 +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 [CMake] Add a macro definition to detect if we are building GlobalISel: 2016-02-10 23:00:57 +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.