[PATCH] D19984: [LV] Preserve order of dependences in interleaved accesses analysis
Matthew Simpson via llvm-commits
llvm-commits at lists.llvm.org
Tue May 17 13:04:08 PDT 2016
mssimpso retitled this revision from "[LV] Handle RAW dependences in interleaved access analysis" to "[LV] Preserve order of dependences in interleaved accesses analysis".
mssimpso updated the summary for this revision.
mssimpso updated this revision to Diff 57508.
mssimpso added a comment.
Updated the analysis according to feedback from Adam and Silviu.
Sorry for the delay in getting a new version of this patch ready. This update is notably different from the previous version in the following ways: (1) We collect all memory accesses in collectConstStrideAccesses instead of only the stride-greater-than-one accesses. We have to collect all accesses to check for dependences between interleaved and non-interleaved accesses. The non-strided accesses are ignored when actually creating the groups. (2) We only ignore the WAR case. I think the code generation strategy can only ensure we won't violate write-after-reads. Everything else is checked. (3) For strided accesses, we try and prove independence like is done in LAA. All other constant-distance accesses are considered dependent, and we preserve their order. The dependences are checked in canReorderMemAccs. (4) I've added another test case, and updated existing comments about the algorithm.
http://reviews.llvm.org/D19984
Files:
include/llvm/Analysis/LoopAccessAnalysis.h
lib/Analysis/LoopAccessAnalysis.cpp
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/interleaved-accesses.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19984.57508.patch
Type: text/x-patch
Size: 20059 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160517/3829a9f1/attachment.bin>
More information about the llvm-commits
mailing list