[LLVMdev] For clarifying the "" in Instructions

Xiaolong Tang
Thu, 10 Jun 2010 16:00:22 -0000

Hello Reid,

Thanks.

> 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?

Thanks,

Best,
Xiaolong

> 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?