[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)
commit0456327cfb828ce6ff9ea04e1635f3239149f50d
tree0d4715471db005cba5d64341061f770d51cd34b3
parent3f737d935ded56f4c2a5101715335a682bdd4c53
[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.

llvm-svn: 227756
llvm/include/llvm/Analysis/LoopAccessAnalysis.h [new file with mode: 0644]
llvm/lib/Analysis/CMakeLists.txt
llvm/lib/Analysis/LoopAccessAnalysis.cpp [new file with mode: 0644]
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp