[LLVMdev] PR400 - alignment for LD/ST

Chris Lattner sabre at nondot.org
Mon Apr 2 12:01:07 PDT 2007


On Mon, 2 Apr 2007, Christopher Lamb wrote:
> 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?

I may be misunderstanding, if so, please correct me.  However, I think 
you're trying to bring addressing modes into this.  Many targets support 
"reg+immediate" addressing modes... I assume you're trying to get an 
alignment value for the 'reg' part, without the "immed" part?

This approach would have a couple of problems.  Instead, if you wanted a 
more general alignment model, I'd suggest going for representing 
alignments as "offset from alignment".

In this model, you represent each alignment value as a pair <align,offs>, 
where offs is always less than align.  This allows you to say that "this 
load is 2 bytes away from a 16-byte aligned pointer" for example.

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/



More information about the llvm-dev mailing list