Hi,

I am working to knw the details of the tree-ssa pass.I had this small
piece of code as my test case:
void func()
{
int x=10;
int a=5;
if(a==x)
{
x=x+1;
}
else
{
x=x-1;
}
a=x;

}

 and when i did a

> gcc -fdump-ftree-ssa -O3 foo.c

I got the following output :


func ()
{
  int a;
  int x;

<bb 2>:
  x_2 = 10;
  a_3 = 5;
  if (a_3 == x_2)
    goto <bb 3>;
  else
    goto <bb 4>;

<bb 3>:
  x_4 = x_2 + 1;
  goto <bb 5>;

<bb 4>:
  x_5 = x_2 + -1;

<bb 5>:
  # x_1 = PHI <x_4(3), x_5(4)>
  a_6 = x_1;
  return;

}


Well..now I want to know what is the structure which this pass
maintains to emit these statements.Where can i find it (In which
source files)and can it be modified?

I chiefly want to separate the predicate of the if condition, the if
block and the else block..can it be done?
Point to me to the sources please.

Thanks In Advance


-- 
cheers
sandy

Reply via email to