[LLVMdev] Unnamed temporaries
Judison
judison at gmail.com
Fri Mar 11 03:19:25 PST 2011
Thank you so much,
removing then solved the problem.
I did not know thre where such a thing as anonymous blocks I thought llvm
was going to ignore anything after a terminator instruction (br, ret, etc)
I'll make my code generator "block aware" :P
thank you again!!! :P
On Fri, Mar 11, 2011 at 8:11 AM, Frits van Bommel <fvbommel at gmail.com>wrote:
> On Fri, Mar 11, 2011 at 11:48 AM, Judison <judison at gmail.com> wrote:
> > I hope this is the right place to ask it, sorry if I'm wrong...
>
> It's the right place, though the IRC channel would have been good too.
>
> > My compiler is generating this code:
> >
> > (line numbers included) (Please ignore the extra br label %b0 and the
> whole
> > b0)
>
> Sorry, but the extra branches can't be ignored since they are exactly
> your problem.
>
> > 54 define i32 @std_lang__rest() {
> > 55 entry:
> > 56 %ret = alloca i32 ; <i32*> int*
> >
> > 57 %0 = icmp eq i32 4, 5 ; <i1> boolean
> >
> > 58 br i1 %0, label %b0_t, label %b0_f
> >
> > 59 b0_t:
> > 60 %1 = add i32 5, 2 ; <i32> int
> >
> > 61 store i32 %1, i32* %ret
> > 62 br label %return
>
>
> This "br label %return" ended block %b0_t and automatically started a
> new one. Since you didn't provide a label, it's named %2.
>
> >
> > 63 br label %b0
> > 64 b0_f:
> > 65 store i32 5, i32* %ret
> >
> > 66 br label %return
>
> And here block %b0_f ends, and block %3 begins.
>
> > 67 br label %b0
> >
> > 68 b0:
> > 69 store i32 0, i32* %ret
> >
> > 70 br label %return
> > 71 return:
> > 72 %2 = load i32* %ret ; <i32> int
>
> Leading to %4 being the next anonymous value here, not %2.
>
> >
> > 73 ret i32 %2
> > 74 }
> > ...
> >
> > llvm-as std_lang.ll
> > llvm-as: std_lang.ll:72:5: error: instruction expected to be numbered
> '%4'
> > %2 = load i32* %ret ; <i32> int
> > ^
> >
> > Why %4 ??? what I did wrong?
>
> You didn't realize there were anonymous blocks in your code, I'm guessing.
>
--
Judison
judison at gmail.com
"O ignorante que procura se instruir é como um sábio; o sábio que fala sem
discernimento se assemelha a um ignorante." Imam Ali (as)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110311/4f6e6bdf/attachment.html>
More information about the llvm-dev
mailing list