------- Comment #8 from rguenth at gcc dot gnu dot org 2006-08-19 14:27 ------- ;; Function find (find)
Points-to analysis Constraints: ANYTHING = &ANYTHING READONLY = &ANYTHING INTEGER = &ANYTHING alistp = &ANYTHING blist_3 = alistp blist_6 = &list blist_1 = blist_3 blist_1 = blist_6 blist.0_7 = blist_1 Collapsing static cycles and doing variable substitution: Collapsing blist_3 into alistp Collapsing blist.0_7 into blist_1 Solving graph: Points-to sets NULL = { } ANYTHING = { ANYTHING } READONLY = { ANYTHING } INTEGER = { ANYTHING } alistp = { ANYTHING } blist_3 = { ANYTHING } blist_6 = { list } list = { } blist_1 = { ANYTHING list } blist.0_7 = { ANYTHING list } find: Total number of aliased vops: 0 Referenced variables in find: 5 Variable: alistp, UID 1523, const int *, default def: alistp_2 Variable: blist, UID 1526, const int * Variable: list, UID 1527, int[32], is addressable, default def: list_4 Variable: blist.0, UID 1528, const GLint *, symbol memory tag: SMT.30 Variable: SMT.30, UID 1575, const GLint, is addressable, is global, call clobbered (, passed to call, is global var ) Pointed-to sets for pointers in find alistp_2, its value escapes, points-to anything blist_3, points-to anything blist_6, points-to vars: { list } blist_1, points-to anything blist.0_7, is dereferenced, its value escapes, points-to anything Flow-insensitive alias information for find Aliased symbols list, UID 1527, int[32], is addressable, default def: list_4 SMT.30, UID 1575, const GLint, is addressable, is global, call clobbered (, passed to call, is global var ) Dereferenced pointers blist.0, UID 1528, const GLint *, symbol memory tag: SMT.30 Symbol memory tags SMT.30, UID 1575, const GLint, is addressable, is global, call clobbered (, passed to call, is global var ) Flow-sensitive alias information for find SSA_NAME pointers Name memory tags Registering new PHI nodes in block #0 Registering new PHI nodes in block #2 Registering new PHI nodes in block #3 Registering new PHI nodes in block #4 Updating SSA information for statement list[3] = 42; Registering new PHI nodes in block #5 Updating SSA information for statement aglChoosePixelFormat (blist.0_7); Symbols to be put in SSA form list SMT.30 Incremental SSA update started at block: 0 Number of blocks in CFG: 6 Number of blocks to update: 5 ( 83%) Affected blocks: 0 2 3 4 5 find (alistp) { int list[32]; const int * blist; const GLint * blist.0; # BLOCK 2 # PRED: ENTRY (fallthru) if (alistp_2 != 0B) goto <L0>; else goto <L1>; # SUCC: 3 (true) 4 (false) # BLOCK 3 # PRED: 2 (true) <L0>:; blist_3 = alistp_2; goto <bb 5> (<L2>); # SUCC: 5 (fallthru) # BLOCK 4 # PRED: 2 (false) <L1>:; # list_5 = V_MAY_DEF <list_4>; list[3] = 42; blist_6 = &list; # SUCC: 5 (fallthru) # BLOCK 5 # PRED: 3 (fallthru) 4 (fallthru) # blist_1 = PHI <blist_3(3), blist_6(4)>; <L2>:; blist.0_7 = (const GLint *) blist_1; # SMT.30_9 = V_MAY_DEF <SMT.30_8>; aglChoosePixelFormat (blist.0_7); return; # SUCC: EXIT } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778