unified basedpointeranalysis-100107093232-phpapp01
TRANSCRIPT
みよし たけふみ
2010年1月8日金曜日
Abstract
• flow & context insensitive pointer analysis of C
• low-cost
• 精度/実行時間 Steensgaard’sとAndersen’sの間
• using a restricted form of subtyping at the top levels
• using unification elsewhere in the graph
• scale easily to large programs
• 1.4MLOC, 2min., 200MB
2010年1月8日金曜日
Background
• Steensgaard’s unification-based approach
• linear running-time
• imprecise
• Andersen’s subtyping-based approach
• worst-case cubic running-time
• much more precise
2010年1月8日金曜日
Contributions
• the one level flow algorithm
• simple extension of Steensgaard’s algorithm
• scaling properties of Steensgaard’s algorithm and the precision of Andersen’s algorithm
2010年1月8日金曜日
Example
Steensgaard’s Andersen’s
pがs3を指すはずないのにね
One level flow (proposed)
flow edge
2010年1月8日金曜日
Experiments
• AST Toolkit (extension of the MS VC)
• client analyzes individual compilation units
• a partial points-to graph, table
• linker produces global points-to info.
2010年1月8日金曜日
0
10
20
30
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Word97
Benchmark
Ana
lysis
tim
e (m
s per
100
0 no
des)
Flow step overheadFlow graph overheadSteensgaard
0
20
40
60
80
100
1.22185.62
3.29
11.78
14.79
22.22
59.30 7.72
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Benchmark
Ave
rage
poi
nts-
to se
t siz
e (n
orm
aliz
ed)
One level flow Andersen
2010年1月8日金曜日
0
10
20
30
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Word97
Benchmark
Ana
lysis
tim
e (m
s per
100
0 no
des)
Flow step overheadFlow graph overheadSteensgaard
0
20
40
60
80
100
1.22185.62
3.29
11.78
14.79
22.22
59.30 7.72
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Benchmark
Ave
rage
poi
nts-
to se
t siz
e (n
orm
aliz
ed)
One level flow Andersen
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日
0
3
6
9
12
0 1 2 3 4 5 6-10 11-100
Points-to set size
Perc
enta
ge o
f all
dere
fs
Steensgaard One level flow
0
4
8
12
16
20
0 1 2 3 4 5 6-10 11-100
Points-to set size
Perc
enta
ge o
f all
mod
der
efs
Steensgaard One level flow
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日