[PATCH] D23169: [LV] Unify vector and scalar maps

Matthew Simpson via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 8 12:24:40 PDT 2016


mssimpso updated the summary for this revision.
mssimpso updated this revision to Diff 67216.
mssimpso added a comment.

Addressed comments from Michael and Adam.

- Added "ScalarParts" type as a 2D vector.
- Removed from WidenMap the "VectorParts &get" interface and replaced it with "VectorParts &initVector" and "ScalarParts &initScalar", as previously discussed. These initializers assert if a key has already been mapped, which should prevent data from being overwritten unintentionally. Because of this change, I had to slightly modify interleaved access vectorization since we vectorize all instructions in a group at once.
- I also removed the "VectorParts &splat" interface since this is now just a special case of initVector.
- The data in WidenMap can now only be accessed via getVectorValue and getScalarValue. Until we can move these functions inside WidenMap, we have to declare them as friends to get access to the data.
- Renamed WidenMap to VectorLoopValueMap (but I'm still open to name suggestions).
- Added high-level comments about the interaction between getVectorValue and getScalarValue.
- Addressed other minor comments.


https://reviews.llvm.org/D23169

Files:
  lib/Transforms/Vectorize/LoopVectorize.cpp
  test/Transforms/LoopVectorize/X86/scatter_crash.ll
  test/Transforms/LoopVectorize/if-pred-stores.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23169.67216.patch
Type: text/x-patch
Size: 43142 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160808/e625b8a5/attachment.bin>


More information about the llvm-commits mailing list