Instructions having variable names as operands

Dear Mr. Lattner:

Thank you for kind information.
I am still a little confused, though.

In your example,
   %X = add int %Y, %Z
is generated to
   add EAX, EBX

I think EAX and EBX are the register names of X86.
But, I should emit variable names instead of register names.

For my example in the source code,
    int k;
    k = i + j;
should be emit like this:
    reg k
    add i,j;k
(If register names are still used, this can be shown like this:
    reg EAX
    add EAX,EBX;EAX
Isn't it?
Would you mind telling me w.r.t this?
Thank you very much.

Seung Jae Lee

How does your "instruction set" handle code like:

int foo() {
   int X = 1; // X1
   if (somecond) {
     int X = 2; // X2

     return X;
   return X;

Surely you don't have full source language scoping rules. If you want this, you need to look at debug info.