[llvm-dev] Alignment parameter attributes

Greene, David via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 14 10:01:20 PST 2020


I have a question about how to communicate alignment via function
parameters.  The IR supports an attribute specifying the alignment of a
pointer parameter:

define void @func(double* noalias align 64 %p)

This says that %p is 64-byte aligned.  Great!

Is there any way to convey the alignment of a pointer pointed to by a **
argument?  I'd like something like this:

define void @func(double* align 64 * noalias %p)

Or even this to add a noalias attribute:

define void @func(double* noalias align 64 * noalias %p)

I don't think either of these is legal today.

Has anyone else run into this need?  If so, any advice would be much
appreciated!

                  -David


More information about the llvm-dev mailing list