Am I doing something wrong, or should I file a bug report?
_______________________________________________
LLVM Developers mailing list
LLV...@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
You need to use insertvalue to build a struct with non-constant values..
-Eli
> It appears the syntax for returning multiple values has changed since 2.9.
> Previous to that:
> ret i32 %a, i32 %b
> worked. The new syntax is something like:
> ret { i32, i32 }{i32 %a, i32 %b}
> but this yields an error:
> mrv-bug.ll:5:24: error: invalid use of function-local name
> ret { i32, i32 }{i32 %a, i32 %b}
> ^
> If %a and %b are replaced by constants, things work.
This is obsolete and deprecated syntax that is dropped in "llvm 3.0" (and thus on mainline right now). If you run that through llvm-as|llvm-dis from llvm 2.9, you'll see the preferred syntax.
-Chris
OK, I guess I missed the announcement that it was obsolete. The new mechanism
is quite wordy when compared with the old. Sigh.
Are there any other languages other than mine (http://code.google.com/p/esl/)
which return multiple scalars that have LLVM frontends?
bagel
>> This is obsolete and deprecated syntax that is dropped in "llvm 3.0" (and thus on mainline right now). If you run that through llvm-as|llvm-dis from llvm 2.9, you'll see the preferred syntax.
>>
>> -Chris
>
> OK, I guess I missed the announcement that it was obsolete.
It will eventually be in the llvm 3.0 release notes.
> The new mechanism is quite wordy when compared with the old. Sigh.
>
> Are there any other languages other than mine (http://code.google.com/p/esl/) which return multiple scalars that have LLVM frontends?
Most LLVM frontends don't generate LLVM IR as text files. They typically use the C or C++ APIs (or wrappers thereof) so they wouldn't have noticed the syntax change.
-Chris
I am appreciative that you keep the text representation, since my frontend is
not written in C or C++ the API does me no good. I'll deal with the changes.
I just hope that the backend continues to deal with frontends that are not C,
C++, or Object-C.
thank you,
bagel
FWIW, HLVM is written in OCaml (not C, C++ or Objective-C) and hasn't
suffered from any such problems (and it returns multiple values). I highly
recommend using the C API.
Cheers,
Jon.