[llvm-commits] [llvm] r66368 - in /llvm/trunk: lib/Transforms/Scalar/ScalarReplAggregates.cpp test/Transforms/ScalarRepl/vector_memcpy.ll

Chris Lattner clattner at apple.com
Sun Mar 8 12:45:51 PDT 2009


On Mar 8, 2009, at 12:41 PM, Duncan Sands wrote:

> Hi Chris,
>
>>>> teach SROA to handle promoting vector allocas with a memset into
>>>> them into
>>>> a vector type instead of into an integer type.
>>>
>>> this is only valid if the vector doesn't have holes in it (eg vector
>>> of
>>> x86 long double).  Is that checked somewhere?
>>
>> Why do you think that?
>
> well, I'm not sure what you are doing but it sounds like you want
> to do a vector copy rather than an integer copy/memset.  Such a
> copy is only ok if the vector has no holes.  But perhaps the patch
> does something else?

This patch effectively turns something like:

tmp = alloca T
...
memset(&T, cst, sizeof(T))
...

into

store <appropriate constant> into T.

This does not trigger if the "holes" in T are used.

-Chris



More information about the llvm-commits mailing list