LoopVectorize: Add utility class for checking dependency among accesses
authorArnold Schwaighofer <aschwaighofer@apple.com>
Mon, 24 Jun 2013 03:55:45 +0000 (03:55 +0000)
committerArnold Schwaighofer <aschwaighofer@apple.com>
Mon, 24 Jun 2013 03:55:45 +0000 (03:55 +0000)
commit5df684a6d1bc655c93df4d2f1efafe9093420f4f
tree150a298600d78f303b8985c60cc160e978cd56ae
parent5737d3f433782e22ffca4433a1de2ab119464715
LoopVectorize: Add utility class for checking dependency among accesses

This class checks dependences by subtracting two Scalar Evolution access
functions allowing us to catch very simple linear dependences.

The checker assumes source order in determining whether vectorization is safe.
We currently don't reorder accesses.
Positive true dependencies need to be a multiple of VF otherwise we impede
store-load forwarding.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184684 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/LoopVectorize.cpp