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