[LLVMdev] PR400 - alignment for LD/ST
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.
More information about the llvm-dev