[LLVMdev] How to insert two instructions with the same name?

Bill Wendling isanbard at gmail.com
Sun Oct 8 01:37:06 PDT 2006


On Oct 8, 2006, at 1:15 AM, Zhou Sheng wrote:

> i want to insert a PHI into one basicblock like this:
>
> %s.1 = phi int [ 80, %entry ], [ %tmp21, %bb17 ]
>
> then, insert a cast inst. into another basicblock like this:
>
> %s.1 = cast int %s.1 to uint
>
> But, when i do this, the llvm automatically change the same name  
> into a new one.
>
In SSA, any assignment creates a new variable. So it'd probably be  
called something like "%s.2" or whatever. Technically, LLVM doesn't  
care what the names of these variables are. They aren't used in the  
internal representation. Only pointers to instructions matter (and  
they're unique).

> Actually, i found that sometimes, llvm will create bytecode  
> containing two instructions with same name. So, how can i implement  
> that?
>
Again, the names are meaningless and are given only because the user  
needs to be able to understand the .ll code. So it's entirely  
possible to have multiple variables with the same name.

-bw



More information about the llvm-dev mailing list