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