[llvm-commits] [PATCH] partial codgen support for ByVal arguments

Rafael Espindola espindola at google.com
Fri Aug 3 11:22:21 CDT 2007

The attached patch implements code generation of byval arguments on
the callee. For now only the case were the struct is in the stack is
handle correctly.

With the patch, the function
%struct.s = type { i64, i64, i64 }

define i64 @f(%struct.s* byval %a) {
        %tmp2 = getelementptr %struct.s* %a, i32 0, i32 0]
        %tmp3 = load i64* %tmp2
        ret i64 %tmp3
Correctly compiles to

        movq    8(%rsp), %rax

There is still a lot to implement and debug, but I would like to know
any comments one might have.

Rafael Avila de Espindola

Google Ireland Ltd.
Gordon House
Barrow Street
Dublin 4

Registered in Dublin, Ireland
Registration Number: 368047
-------------- next part --------------
A non-text attachment was scrubbed...
Name: llvm.patch
Type: text/x-patch
Size: 5383 bytes
Desc: not available
Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20070803/0c3d4e6a/attachment.bin 

More information about the llvm-commits mailing list