[LLVMdev] For clarifying the "<Result>" in Instructions

Xiaolong Tang xiaolong.snake at gmail.com
Thu Jun 10 09:00:22 PDT 2010

Hello Reid, 


> Yes, it's an integral part of the Instruction.  You can change it by
> providing a name when you create the instruction.

Following your hint, can I understand in this following way?
The name (denoted by "<result>") is actually a referrer to the instruction . 
Consider this instruction: 
  %this_addr = alloca %struct.String*             ; <%struct.String**> [#uses=4]
Here "%this_addr" (which is not a argument) is actually a string. 
Am I right? 

And this name is recorded in the symbol table of a module.  In case that an
instruction does not have a name, what then happens? I mean, will the
symbol table contains an entry for it?


> On Thu, Jun 10, 2010 at 8:34 AM, Xiaolong Tang <xiaolong.snake at gmail.com> wrote:
> >
> > In the language specifications, many instructions have this form:
> >
> >  <result> = ...
> >
> > So, where is "<result>" defined? Is it an integral part of an instruction?
> > Consider the "getelementptr" instruction:
> >
> >  <result> = getelementptr <pty>* <ptrval>{, <ty> <idx>}*
> >
> > How is the "<result>" represented?

More information about the llvm-dev mailing list