[llvm-commits] [llvm] r52002 - in /llvm/trunk: lib/VMCore/Verifier.cpp test/Assembler/AggregrateReturn.ll

Matthijs Kooijman matthijs at stdin.nl
Fri Jun 6 02:57:53 PDT 2008


Hi Dan,

> define { i32 } @foo() {
>   ret i32 0
> }
I didn't think this was valid syntax, but apparently it is used. The language
reference is a bit vague about the multiple return syntax and constraints
currently.

> It's surprising that llvm-gcc is using { double } here instead
> of just plain double, and possibly a minor bug. I'm going to
> revert 52002 at least until the llvm-gcc issue is figured out.
I'm seeing if I can reproduce the issue, but I guess this only triggers on a
bootstrap build (which I didn't do before).

> We'll probably also need to figure out an upgrade path for
> LLVM 2.3 multiple-return-value code. I haven't thought much
> about whether it's best to do a full transition all at once, or
> to support both aggregate returns and multiple-return-values
> at the same time for some time.
I guess supporting both would be ok for now, though that might require some
awkward code in some of the passes. Depending on what gcc does exactly, I'll
fix gcc and reapply my patch, or leave gcc and modify my patch to also allow
for the above syntax. Perhaps the last approach is better anyway, since this
syntax is implicitely valid currently (the validator accepts it, and the
language reference doesn't really say if this is ok or not...).

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-commits/attachments/20080606/ad9f0f89/attachment.sig>


More information about the llvm-commits mailing list