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