Problem 2 --------- Observe the dumps generated by Liveness based pointer analysis pass in th following example : 1) Does the pointer information `a->b' hold at the start of function f? 2) Does the pointer information `a->b' hold at the end of function f? 3) Does the pointer information `a->b' hold in main after the call to function f? Program ------- int **a,*b,c; void f() { int b; if(b>0) { a = &b; f(); a = *a; } } int main() { a = (int*) b; b = &c; f(); printf("%d%d%d",a,b,c); } Procedure --------- 1) Compile the test program with following command $(INSTALL)/bin/gcc -flipta -O2 -fdump-ipa-lipta test.c 2) Observe the *.lipta dump generated 3) `livein' and `liveout' represent the liveness information at a basic block. `mayin' and `mayout' represent the pointer information of the basic block. Callstring represent the various calling context reaching function `f'.