[LLVMdev] using large structures in registers/returns
edA-qa mort-ora-y
eda-qa at disemia.com
Tue Nov 6 22:32:26 PST 2012
I can't find a lot of information about using structures directly as
parameters, returns, and in registers. Is this fully supported on all
platforms? Does it always convert to creating a hidden parameter when
too large?
For example (assume very.large is too big to fit in the target machine
registers):
define %very.large @get_struct() {
%m1 = insertvalue %very.large undef, i32 10, 0
...
%m10 = insertvalue %very.large %m9, i32 25, 9
ret %very.large %m10
}
define void @use_struct( %very.large %m ) { ... }
define i32 @main() {
%m = call %very.large @get_struct()
call void @use_struct( %very.large %m )
}
Will this work on all targets?
--
edA-qa mort-ora-y
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Sign: Please digitally sign your emails.
Encrypt: I'm also happy to receive encrypted mail.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121107/53bbb79d/attachment.sig>
More information about the llvm-dev
mailing list