Go to file
Philip Reames a7ad6a589c Refine memory dependence's notion of volatile semantics
According to my reading of the LangRef, volatiles are only ordered with respect to other volatiles. It is entirely legal and profitable to forward unrelated loads over the volatile load. This patch implements this for GVN by refining the transition rules MemoryDependenceAnalysis uses when encountering a volatile.

The added test cases show where the extra flexibility is profitable for local dependence optimizations. I have a related change (227110) which will extend this to non-local dependence (i.e. PRE), but that's essentially orthogonal to the semantic change in this patch. I have tested the two together and can confirm that PRE works over a volatile load with both changes.  I will be submitting a PRE w/volatiles test case seperately in the near future.

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

llvm-svn: 227112
2015-01-26 18:54:27 +00:00
clang Objective-C SDK modernizer to use NS_ENUM/NS_OPTIONS macros 2015-01-26 17:41:03 +00:00
clang-tools-extra [clang-tidy] Use shrink_to_fit instead of copy and swap trick 2015-01-23 15:10:37 +00:00
compiler-rt [Msan] Disable the ppoll unit test on FreeBSD 2015-01-26 18:05:54 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Use amdgcn triple for SI+ GPUs 2015-01-06 20:42:12 +00:00
libcxx Change the available features used for no-rtti and no-exceptions 2015-01-26 18:11:58 +00:00
libcxxabi [libcxxabi] Teach CMake better ways to find the libc++ source directory (and misc cleanup). 2015-01-22 20:00:06 +00:00
lld path.data() may return a non null terminated string 2015-01-26 09:52:37 +00:00
lldb Fix darwin-debug build in cmake (OS X) 2015-01-26 17:23:18 +00:00
llgo Introduce llgoi, a REPL for Go 2015-01-15 04:13:29 +00:00
llvm Refine memory dependence's notion of volatile semantics 2015-01-26 18:54:27 +00:00
openmp added support for PPC architectures (version 3): initial patch provided by Carlo Bertolli, latest version from Johnny Peyton 2015-01-19 18:29:35 +00:00
polly [FIX] Debug build + instrinsic handling 2015-01-26 15:55:54 +00:00