scalablecontext sensiteveflowanalysis-100107093234-phpapp02
TRANSCRIPT
みよし たけふみ
2010年1月8日金曜日
• Hindley-Milner style polymorphic type inference: low cost of inference by unification to model intra-procedural dependencies of values
• the flow of values between functions characterized by instantiations of polymorphic types
• polymorphic version of Steensgaard’s algo.
• flow-insensitive, context-sensitive
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日
• 2: typeとconstraintの定義
• 3: constraint resolution algorithm
• 4: Computing global flow information
• by type instantiation graph
• 5: Experiments
2010年1月8日金曜日
Flow-Query
• each sub-expression is annotated by a label l
• “Do values arising at label l1 in the program flow to a program point lablled l2?”
• by tracing path on the type instantiation graph
2010年1月8日金曜日
0
20
40
60
80
100
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Benchmark
Nor
mal
ized
der
efer
ence
set s
ize
Monomorphic Polymorphic
0
500
1000
1500
2000
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Benchmark
Ana
lysi
s tim
e (u
s per
nod
e)
Monomorphic Instantiation overhead Flow step overhead
0
6
12
18
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Benchmark
Mul
tiple
of #
Nod
es
Mon
omor
phic
#Nodes: Polymorphic #Instantiation edges
2010年1月8日金曜日
0
20
40
60
80
100
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Benchmark
Nor
mal
ized
der
efer
ence
set s
ize
Monomorphic Polymorphic
0
500
1000
1500
2000
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Benchmark
Ana
lysi
s tim
e (u
s per
nod
e)
Monomorphic Instantiation overhead Flow step overhead
0
6
12
18
compre
ss li
m88ksi
mijp
eg go perl
vorte
x gcc
Benchmark
Mul
tiple
of #
Nod
es
Mon
omor
phic
#Nodes: Polymorphic #Instantiation edges
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日
2010年1月8日金曜日