[LLVMdev] PR400 - alignment for LD/ST
Christopher Lamb
christopher.lamb at gmail.com
Mon Apr 2 08:53:05 PDT 2007
On Apr 1, 2007, at 3:11 AM, Chris Lattner wrote:
> On Sun, 1 Apr 2007, Christopher Lamb wrote:
>> Also I wanted to clear something up about the meaning of the
>> alignment
>> attribute. My thinking is that this indicates over/under alignment
>> with
>> respect to natural alignment for the type. This is to say in the
>> Load/Store
>> instruction classes the default alignment value will be zero,
>> meaning natural
>> alignment for the given type. If the alignment value is nonzero
>> then the
>> alignment value should be used over the natural or preferred
>> alignment.
>
> Yes, exactly. To put this another way: if the specified alignment
> is less
> than the natural alignment for the type, then the codegen needs to be
> careful (e.g. use special unaligned loads). If it is more aligned,
> then
> this is a guarantee to clients about the load, who can choose to
> use it or
> not. If the specified alignment matches the natural alignment,
> then it
> can be dropped (set to zero).
>
> -Chris
Here's a related question. It seems that there might be a benefit in
knowing about two alignment values for a load/store. The alignment of
the load/store itself, but potentially also the alignment of the base
pointer used for the load/store. Having an alignment attribute on
pointer types would solve both these issues, but having a single
alignment attribute on loads/stores doesn't. This would lead me to
propose having an alignment attribute for getelementptr. Thoughts?
--
Christopher Lamb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070402/b59e8c4e/attachment.html>
More information about the llvm-dev
mailing list