------- 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