Generalized Points-to Graph: A New Abstraction of Memory in Presence of Pointers
Pritam Gharat
Department of Computer Science and Engineering, Indian Institute of Technology, Bombay
Generalized Points-to Graph: A New Abstraction of Memory in Presence - - PowerPoint PPT Presentation
Generalized Points-to Graph: A New Abstraction of Memory in Presence of Pointers Pritam Gharat Department of Computer Science and Engineering, Indian Institute of Technology, Bombay September 2018 Disclaimer Some of the slides in Introduction
Department of Computer Science and Engineering, Indian Institute of Technology, Bombay
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 2 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 3 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 5 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 6 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 6 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 6 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 6 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 7 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 7 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 7 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 8 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 8 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 8 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 8 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 8 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 9 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 9 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 9 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 9 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 10 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 10 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 10 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 10 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 10 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 10 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 10 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 10 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 11 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 11 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 11 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 12 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 12 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 12 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 12 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 12 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 12 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 12 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 12 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 12 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 13 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 13 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 13 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 15 / 50
x φ1 y φ1 is a placeholder
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 15 / 50
x φ1 y φ1 is a placeholder
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 15 / 50
x φ1 y φ1 is a placeholder
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 15 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 16 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 16 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 16 / 50
General Case Specific Examples GPU x i|j − →
s y
x y i −1 j Pointer
GPU
Relevant memory graph assignment after the assignment s : x = &y x 1|0 − − →
s
y x y s : x = y x 1|1 − − →
s
y x y s : x = ∗y x 1|2 − − →
s
y x y s : ∗x = y x 2|1 − − →
s
y x y
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 18 / 50
General Case Specific Examples GPU x i|j − →
s y
x y i −1 j Pointer
GPU
Relevant memory graph assignment after the assignment s : x = &y x 1|0 − − →
s
y x y s : x = y x 1|1 − − →
s
y x y s : x = ∗y x 1|2 − − →
s
y x y s : ∗x = y x 2|1 − − →
s
y x y
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 18 / 50
General Case Specific Examples GPU x i|j − →
s y
x y i −1 j Pointer
GPU
Relevant memory graph assignment after the assignment s : x = &y x 1|0 − − →
s
y x y s : x = y x 1|1 − − →
s
y x y s : x = ∗y x 1|2 − − →
s
y x y s : ∗x = y x 2|1 − − →
s
y x y
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 18 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 19 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 19 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 19 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 19 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 19 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 19 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 19 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 19 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 20 / 50
2|1
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 20 / 50
2|1
1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 20 / 50
2|1
1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 20 / 50
1|0 1|1
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 20 / 50
1|0 1|1
1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 20 / 50
1|0 1|1
1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 20 / 50
1|0
1|0 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 20 / 50
1|0
1|0 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 20 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
x y 1|0
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 21 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 22 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 22 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 22 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 22 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 23 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs Strength Reduction Reaching GPUs Analysis without Blocking Reaching GPUs Analysis with Blocking
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs Strength Reduction Reaching GPUs Analysis without Blocking Reaching GPUs Analysis with Blocking GPU Creation GPU Reduction GPU Composition
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs Strength Reduction Reaching GPUs Analysis without Blocking Reaching GPUs Analysis with Blocking GPU Creation GPU Reduction GPU Composition GPU indlev indlist
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs Strength Reduction Dead GPU Elimination Empty GPB Elimination Reaching GPUs Analysis without Blocking Reaching GPUs Analysis with Blocking GPU Creation GPU Reduction GPU Composition GPU indlev indlist
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs Strength Reduction Dead GPU Elimination Empty GPB Elimination GPB Coalescing Reaching GPUs Analysis without Blocking Reaching GPUs Analysis with Blocking Coalescing Analysis GPU Creation GPU Reduction GPU Composition GPU indlev indlist
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs Strength Reduction Dead GPU Elimination Empty GPB Elimination GPB Coalescing Back Edge Removal Redundancy Elimination Reaching GPUs Analysis without Blocking Reaching GPUs Analysis with Blocking Coalescing Analysis Essential Back Edges Analysis GPU Creation GPU Reduction GPU Composition GPU indlev indlist
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs Strength Reduction Dead GPU Elimination Empty GPB Elimination GPB Coalescing Back Edge Removal Redundancy Elimination Reaching GPUs Analysis without Blocking Reaching GPUs Analysis with Blocking Coalescing Analysis Essential Back Edges Analysis GPU Creation GPU Reduction GPU Composition GPU indlev indlist
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs Strength Reduction Dead GPU Elimination Empty GPB Elimination GPB Coalescing Back Edge Removal Redundancy Elimination Reaching GPUs Analysis without Blocking Reaching GPUs Analysis with Blocking Coalescing Analysis Essential Back Edges Analysis GPU Creation GPU Reduction GPU Composition GPU indlev indlist
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
Abstractions GPU Operations Data Flow Analysis Optimizations Inlining callee GPGs Strength Reduction Dead GPU Elimination Empty GPB Elimination GPB Coalescing Back Edge Removal Redundancy Elimination Reaching GPUs Analysis without Blocking Reaching GPUs Analysis with Blocking Coalescing Analysis Essential Back Edges Analysis GPU Creation GPU Reduction GPU Composition GPU indlev indlist
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 24 / 50
x = &a; g(); x = &b; CFG of proc f y = x; CFG of proc g
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 25 / 50
x = &a; g(); x = &b; CFG of proc f y = x; CFG of proc g x a
1|0 1
ag();b x b
1|0 8
Initial GPG
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 25 / 50
x = &a; g(); x = &b; CFG of proc f y = x; CFG of proc g x a
1|0 1
ag();b x b
1|0 8
Initial GPG
x a
1|0 1
y x
1|1 2
x b
1|0 8
After Call Inlining
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 25 / 50
x = &a; g(); x = &b; CFG of proc f y = x; CFG of proc g x a
1|0 1
ag();b x b
1|0 8
Initial GPG
x a
1|0 1
y x
1|1 2
x b
1|0 8
After Call Inlining x a
1|0 1
y a
1|0 2
x b
1|0 8
After Strength Reduction
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 25 / 50
x = &a; g(); x = &b; CFG of proc f y = x; CFG of proc g x a
1|0 1
ag();b x b
1|0 8
Initial GPG
x a
1|0 1
y x
1|1 2
x b
1|0 8
After Call Inlining x a
1|0 1
y a
1|0 2
x b
1|0 8
After Strength Reduction y a
1|0 2
x b
1|0 8
After Dead GPU Elimination
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 25 / 50
x = &a; g(); x = &b; CFG of proc f y = x; CFG of proc g x a
1|0 1
ag();b x b
1|0 8
Initial GPG
x a
1|0 1
y x
1|1 2
x b
1|0 8
After Call Inlining x a
1|0 1
y a
1|0 2
x b
1|0 8
After Strength Reduction y a
1|0 2
x b
1|0 8
After Dead GPU Elimination y a
1|0 2
x b
1|0 8
After Empty GPB Elimination
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 25 / 50
x = &a; g(); x = &b; CFG of proc f y = x; CFG of proc g x a
1|0 1
ag();b x b
1|0 8
Initial GPG
x a
1|0 1
y x
1|1 2
x b
1|0 8
After Call Inlining x a
1|0 1
y a
1|0 2
x b
1|0 8
After Strength Reduction y a
1|0 2
x b
1|0 8
After Dead GPU Elimination y a
1|0 2
x b
1|0 8
After Empty GPB Elimination y a x b
1|0 2 1|0 8
After Coalescing
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 25 / 50
x = &a; g(); x = &b; CFG of proc f y = x; CFG of proc g x a
1|0 1
ag();b x b
1|0 8
Initial GPG
x a
1|0 1
y x
1|1 2
x b
1|0 8
After Call Inlining x a
1|0 1
y a
1|0 2
x b
1|0 8
After Strength Reduction y a
1|0 2
x b
1|0 8
After Dead GPU Elimination y a
1|0 2
x b
1|0 8
After Empty GPB Elimination y a x b
1|0 2 1|0 8
After Coalescing All GPGs represent sound and precise summary of procedure f for points-to analysis Structurally, all GPGs are different but their application computes identical results A series of optimizations increases the compactness of GPGs significantly
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 25 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 26 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 28 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 29 / 50
10 20 30 300 600 20 40 60 80 100 # of GPBs in an optimized GPG Percentage of procedures 20 40 60 120 20 40 60 80 100 # of GPUs in an optimized GPG Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
20 40 60 80 100 10 20 30 40 50 Percentage of context independent information Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 29 / 50
10 20 30 300 600 20 40 60 80 100 # of GPBs in an optimized GPG Percentage of procedures 20 40 60 120 20 40 60 80 100 # of GPUs in an optimized GPG Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
20 40 60 80 100 10 20 30 40 50 Percentage of context independent information Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 29 / 50
10 20 30 300 600 20 40 60 80 100 # of GPBs in an optimized GPG Percentage of procedures 20 40 60 120 20 40 60 80 100 # of GPUs in an optimized GPG Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
20 40 60 80 100 10 20 30 40 50 Percentage of context independent information Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 29 / 50
20 40 60 80 100 20 40 60 80 Ratio of GPUs and stmts in GPGs and CFGs after call inlining (in terms of percentage) Percentage of procedures 10 20 30 40 20 40 60 80 Ratio of GPUs and stmts in optimized GPGs and CFGs after call inlining (in terms of percentage) Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk 20 40 60 80 100 10 20 30 40 Ratio of GPUs in optimized GPGs and GPGs after call inlining (in terms of percentage) Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 30 / 50
20 40 60 80 100 20 40 60 80 Ratio of GPUs and stmts in GPGs and CFGs after call inlining (in terms of percentage) Percentage of procedures 10 20 30 40 20 40 60 80 Ratio of GPUs and stmts in optimized GPGs and CFGs after call inlining (in terms of percentage) Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk 20 40 60 80 100 10 20 30 40 Ratio of GPUs in optimized GPGs and GPGs after call inlining (in terms of percentage) Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 30 / 50
20 40 60 80 100 10 20 30 40 50 60 70 Ratio of control flow edges in GPGs and CFGs after call inlining (in terms of percentage) Percentage of procedures 20 40 60 80 100 20 40 60 80 100 Ratio of control flow edges in optimized GPGs and CFGs after call inlining (in terms of percentage) Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk 20 40 60 80 100 20 40 60 80 100 Ratio of control flow edges in optimized GPGs and GPGs after call inlining (in terms of percentage) Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 31 / 50
20 40 60 80 100 10 20 30 40 50 60 70 Ratio of control flow edges in GPGs and CFGs after call inlining (in terms of percentage) Percentage of procedures 20 40 60 80 100 20 40 60 80 100 Ratio of control flow edges in optimized GPGs and CFGs after call inlining (in terms of percentage) Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk 20 40 60 80 100 20 40 60 80 100 Ratio of control flow edges in optimized GPGs and GPGs after call inlining (in terms of percentage) Percentage of procedures lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 31 / 50
lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk 1 2 15 30 50 80 Benchmark
FSCS FICI FICS
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 32 / 50
lbm mcf libquantum bzip2 milc sjeng hmmer h264ref gobmk 1 2 15 30 50 80 Benchmark
FSCS FICI FICS
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 32 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
1|0 5
1|1 2
1|0 8
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
1|0 5
1|1 2
1|0 8
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
1|0 5
1|1 2
1|1 2
1|0 8
1|0 8
1|1 2
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
1|0 5
1|1 2
1|1 2
1|0 8
1|0 8
1|1 2
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
1|0 5
1|1 2
1|0 2
1|0 8
1|0 8
1|0 2
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
1|0 5
1|1 2
1|0 2
1|0 8
1|0 8
1|0 2
2
2
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
1|0 5
1|1 2
1|0 2
1|0 8
1|0 8
1|0 2
2
2
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
1|0 5
1|1 2
1|0 2
1|0 8
1|0 8
1|0 2
2
2
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 34 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 36 / 50
p
q
q
p
q
p
p contains recursive call to q and ∆1 q contains recursive call to p.
q is constructed from ∆1 q by using ∆⊤ as a summary for call to p.
p is constructed from ∆1 p by using ∆2 q as a summary for call to q.
q is constructed from ∆2 q by using ∆2 p as a summary for call to p.
p is constructed from ∆2 p by using ∆3 q as a summary for call to q.
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 40 / 50
p
q
q
p
q
p
p contains recursive call to q and ∆1 q contains recursive call to p.
q is constructed from ∆1 q by using ∆⊤ as a summary for call to p.
p is constructed from ∆1 p by using ∆2 q as a summary for call to q.
q is constructed from ∆2 q by using ∆2 p as a summary for call to p.
p is constructed from ∆2 p by using ∆3 q as a summary for call to q.
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 40 / 50
p
q
q
p
q
p
p contains recursive call to q and ∆1 q contains recursive call to p.
q is constructed from ∆1 q by using ∆⊤ as a summary for call to p.
p is constructed from ∆1 p by using ∆2 q as a summary for call to q.
q is constructed from ∆2 q by using ∆2 p as a summary for call to p.
p is constructed from ∆2 p by using ∆3 q as a summary for call to q.
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 40 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 41 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 41 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 41 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 41 / 50
1|1
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 41 / 50
[∗]|[∗,∗]
1|2
1|2
[∗]|[∗,n]
1|2
[∗]|[∗,n]
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 42 / 50
[∗]|[∗,∗]
1|2
1|2
[∗]|[∗,n]
1|2
[∗]|[∗,n]
[∗]|[∗,∗]
[∗]|[∗,n]
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 42 / 50
[∗]|[∗,∗]
1|2
1|2
[∗]|[∗,n]
1|2
[∗]|[∗,n]
[∗]|[∗,∗]
[∗]|[∗,n]
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 42 / 50
[∗]|[∗,∗]
1|2
1|2
[∗]|[∗,n]
1|2
[∗]|[∗,n]
1|2
[∗]|[∗,n]
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 42 / 50
[∗]|[∗,∗]
1|2
1|2
[∗]|[∗,n]
1|2
[∗]|[∗,n]
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 42 / 50
[∗]|[∗,∗]
1|2
1|2
[∗]|[∗,n]
1|2
[∗]|[∗,n]
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 42 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 43 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 44 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 45 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 46 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 47 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 47 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 47 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 47 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 47 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 47 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 48 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 48 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 48 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 48 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 49 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 49 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 49 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 49 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 49 / 50
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 49 / 50
1|2 22 1|0 34 1|1 34
[∗]|[∗, n] 22 [∗]|[ ] 34 [∗]|[n] 34
Pritam Gharat ( IIT Bombay) Generalized Points-to Graphs September 2018 50 / 50