[LoopVectorize] Move LoopAccessAnalysis to its own module
authorAdam Nemet <anemet@apple.com>
Sun, 1 Feb 2015 16:56:15 +0000 (16:56 +0000)
committerAdam Nemet <anemet@apple.com>
Sun, 1 Feb 2015 16:56:15 +0000 (16:56 +0000)
commit2000a7c9b20e0bbffd8d5f481c01caf2f30bc1a8
tree6b65538495a1fbc1f8b349001f9236d416878543
parent497c4df98a79fafe417523484973bfedd5f9fac0
[LoopVectorize] Move LoopAccessAnalysis to its own module

Other than moving code and adding the boilerplate for the new files, the code
being moved is unchanged.

There are a few global functions that are shared with the rest of the
LoopVectorizer.  I moved these to the new module as well (emitLoopAnalysis,
stripIntegerCast, replaceSymbolicStrideSCEV) along with the Report class used
by emitLoopAnalysis.  There is probably room for further improvement in this
area.

I kept DEBUG_TYPE "loop-vectorize" because it's used as the PassName with
emitOptimizationRemarkAnalysis.  This will obviously have to change.

NFC.  This is part of the patchset that splits out the memory dependence logic
from LoopVectorizationLegality into a new class LoopAccessAnalysis.
LoopAccessAnalysis will be used by the new Loop Distribution pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227756 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/LoopAccessAnalysis.h [new file with mode: 0644]
lib/Analysis/CMakeLists.txt
lib/Analysis/LoopAccessAnalysis.cpp [new file with mode: 0644]
lib/Transforms/Vectorize/LoopVectorize.cpp