[LLVMdev] Instructions having variable names as operands

Seung Jae Lee lee225 at uiuc.edu
Wed Dec 20 02:44:06 PST 2006


Dear Mr. Lattner:

You have asked me how my instruction set works.

If I code like this:

int foo1()
{
    int x1,x2;
    x1 =1;
    x2 = foo2(x1);
    return x2;
}
                
int foo2(int k)
{
    if(k == 1)
       k = 2;
    
    return k;
}

int main ()
{
    int j;    
    j = foo1();
}

This should be emitted like this:

Enter foo1;  
reg x2, x1
add 1;x1
Call foo2;x1,x2
Exit foo1;  x2

Enter foo2;  k
reg temp0:1
cmp k,1;temp0
demultiplex m0;temp0;b1;b0
branch b0
	add 2;k
unbranch b0
branch b1
unbranch b1
mux m0
Exit foo2;  k

I am not sure about full source language scoping rules you mentioned. Would you mind telling me about that?
Thank you very much.

Seung Jae Lee



More information about the llvm-dev mailing list