I found that PRE is not done in gcc-3.3.3, though the code for doing PRE exists in source code.
In the following example, expression a+b is partially redundant and must be eliminated, but it is not done when gcc-3.3.3 is used, where as it is done when gcc-3.4.1 is used.
Can someone confirm me that this is the problem with gcc-3.3.3.
foo () { int a,b,c,d; scanf ("%d%d",&a,&b); if (a) { c = a + b; } else { d = c++; }
d = c; c = a + b; printf ("%d%d",c,d); }
Rajesh Babu