diff options
| author | Michael Kuperstein <mkuper@google.com> | 2017-03-10 18:59:07 +0000 |
|---|---|---|
| committer | Michael Kuperstein <mkuper@google.com> | 2017-03-10 18:59:07 +0000 |
| commit | 5fb39a79665b2380b2ac01f5f581ab571a897345 (patch) | |
| tree | 1fdddb0ba62adcf796d36766721c0ee9a339c81b /llvm/include | |
| parent | 7dedbfa89d7380555f77abc624061de40ae91e5f (diff) | |
| download | bcm5719-llvm-5fb39a79665b2380b2ac01f5f581ab571a897345.tar.gz bcm5719-llvm-5fb39a79665b2380b2ac01f5f581ab571a897345.zip | |
[SLP] Revert everything that has to do with memory access sorting.
This reverts r293386, r294027, r294029 and r296411.
Turns out the SLP tree isn't actually a "tree" and we don't handle
accessing the same packet of loads in several different orders well,
causing miscompiles.
Revert until we can fix this properly.
llvm-svn: 297493
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/Analysis/LoopAccessAnalysis.h | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/llvm/include/llvm/Analysis/LoopAccessAnalysis.h b/llvm/include/llvm/Analysis/LoopAccessAnalysis.h index 78d7ccb2927..2568903c57f 100644 --- a/llvm/include/llvm/Analysis/LoopAccessAnalysis.h +++ b/llvm/include/llvm/Analysis/LoopAccessAnalysis.h @@ -657,16 +657,6 @@ int64_t getPtrStride(PredicatedScalarEvolution &PSE, Value *Ptr, const Loop *Lp, const ValueToValueMap &StridesMap = ValueToValueMap(), bool Assume = false, bool ShouldCheckWrap = true); -/// \brief Try to sort an array of loads / stores. -/// -/// An array of loads / stores can only be sorted if all pointer operands -/// refer to the same object, and the differences between these pointers -/// are known to be constant. If that is the case, this returns true, and the -/// sorted array is returned in \p Sorted. Otherwise, this returns false, and -/// \p Sorted is invalid. -bool sortMemAccesses(ArrayRef<Value *> VL, const DataLayout &DL, - ScalarEvolution &SE, SmallVectorImpl<Value *> &Sorted); - /// \brief Returns true if the memory operations \p A and \p B are consecutive. /// This is a simple API that does not depend on the analysis pass. bool isConsecutiveAccess(Value *A, Value *B, const DataLayout &DL, |

