llvm/test
Daniel Berlin f634bfbb16 AliasAnalysis: Be less conservative about volatile than atomic.
Summary:
getModRefInfo is meant to answer the question "what impact does this
instruction have on a given memory location" (not even another
instruction).

Long debate on this on IRC comes to the conclusion the answer should be "nothing special".

That is, a noalias volatile store does not affect a memory location
just by being volatile.  Note: DSE and GVN and memdep currently
believe this, because memdep just goes behind AA's back after it says
"modref" right now.

see line 635 of memdep. Prior to this patch we would get modref there, then check aliasing,
and if it said noalias, we would continue.

getModRefInfo *already* has this same AA check, it just wasn't being used because volatile was
lumped in with ordering.

(I am separately testing whether this code in memdep is now dead except for the invariant load case)

Reviewers: jyknight, chandlerc

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D31726

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299741 91177308-0d34-0410-b5e6-96231b3b80d8
2017-04-07 01:28:36 +00:00
..
Analysis [ScalarEvolution] Re-enable Predicate implication from operations 2017-03-31 12:05:30 +00:00
Assembler [IR] Add AllowContract to FastMathFlags 2017-03-28 20:11:52 +00:00
Bindings
Bitcode Bitcode: Do not create FNENTRYs for aliases of functions. 2017-04-06 19:39:24 +00:00
BugPoint
CodeGen AMDGPU/GFX9: Fix shared and private aperture queries 2017-04-06 23:02:33 +00:00
DebugInfo Allow specification of what kinds of class members to dump. 2017-04-06 23:43:39 +00:00
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation [asan] Fix dead stripping of globals on Linux. 2017-04-06 19:55:17 +00:00
Integer
JitListener
LibDriver
Linker
LTO
MC [AMDGPU][MC] Fix for Bug 28158 + LIT tests 2017-04-05 17:26:45 +00:00
Object [llvm-ar] errors go on stderr and not on stdout. 2017-04-05 14:52:17 +00:00
ObjectYAML Align all scalar numbers to LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR 2017-04-04 06:02:32 +00:00
Other Bring back r297624. 2017-03-13 20:00:25 +00:00
SymbolRewriter
TableGen [globalisel][tablegen] Fix patterns involving multiple ComplexPatterns. 2017-04-05 13:14:03 +00:00
ThinLTO/X86 Add support for -fno-builtin to LTO and ThinLTO to libLTO 2017-03-28 18:55:44 +00:00
tools Allow specification of what kinds of class members to dump. 2017-04-06 23:43:39 +00:00
Transforms AliasAnalysis: Be less conservative about volatile than atomic. 2017-04-07 01:28:36 +00:00
Unit
Verifier Verifier: Check some amdgpu calling convention restrictions 2017-04-04 18:43:11 +00:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
TestRunner.sh