[LLVMdev] Status of the 2.3 release - volunteers needed.

Matthijs Kooijman matthijs at stdin.nl
Wed Jun 4 03:56:56 PDT 2008


>  From what I can see comparing 2.3 with TOT, the "cexp" function is  
> declared like this in 2.3:
> 
> 	declare i128 @cexp({double, double}* byval) nounwind
> 
> It used to be this:
> 
> 	declare void @cexp({double, double}* noalias sret, {double, double}*  
> byval) nounwind

The promotion from a void function with an sret argument to a function
returning multiple values is probably performed by StructRetPromotion (some
grepping around the source suggests that no other pass actually looks at sret
parameters).

However, I'm not sure what replaces that struct of two doubles by a single
i128. I think ScalarReplAggregrates is capable of doing such packing, but it
only operates on local variables, not return types AFAIK.

Gr.

Matthijs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080604/54d96c98/attachment.sig>


More information about the llvm-dev mailing list