scalablecontext sensiteveflowanalysis-100107093234-phpapp02

14
みよし たけふみ 201018日金曜日

Upload: takefumi-miyoshi

Post on 30-Jun-2015

155 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

みよし たけふみ

2010年1月8日金曜日

Page 2: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

• 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日金曜日

Page 3: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

2010年1月8日金曜日

Page 4: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

2010年1月8日金曜日

Page 5: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

• 2: typeとconstraintの定義

• 3: constraint resolution algorithm

• 4: Computing global flow information

• by type instantiation graph

• 5: Experiments

2010年1月8日金曜日

Page 6: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

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日金曜日

Page 7: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

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日金曜日

Page 8: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

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日金曜日

Page 9: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

2010年1月8日金曜日

Page 10: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

2010年1月8日金曜日

Page 11: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

2010年1月8日金曜日

Page 12: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

2010年1月8日金曜日

Page 13: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

2010年1月8日金曜日

Page 14: Scalablecontext sensiteveflowanalysis-100107093234-phpapp02

2010年1月8日金曜日