- Check whether the memory alignment is sufficient for the *merged*
store or load before merging.
Not doing so can result in ridiculously poor code generation, if
merging creates a vector operation.
- Don't check that the alignment of each load/store is equal.
If you're merging two consecutive 4-byte stores, and the first *does*
have 8-byte alignment, the second certainly won't. But that should be
acceptable to merge.
- Don't have it implement its own idea of what unaligned is:
"(Index->getAlignment()*8 != MemVT.getSizeInBits())". Removal of that
check allows generation of vmovups for an unaligned copy on x86 where
it wasn't before (which I think is desirable, right?)
I think the coding style says lower case for the first letter of a function name.
http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly