On 06/24/2011 03:45 PM, Chris Lattner wrote:> > On Jun 24, 2011, at 9:29 AM, Bagel wrote: > >> 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. > > -ChrisOK, 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
On Jun 24, 2011, at 2:21 PM, Bagel wrote:>> 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
On 06/24/2011 05:21 PM, Chris Lattner wrote:> > On Jun 24, 2011, at 2:21 PM, Bagel wrote: > >>> 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. > > -ChrisI 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