Pointer Analysis: The Big Picture View Uday Khedker - - PowerPoint PPT Presentation

pointer analysis the big picture view
SMART_READER_LITE
LIVE PREVIEW

Pointer Analysis: The Big Picture View Uday Khedker - - PowerPoint PPT Presentation

Pointer Analysis: The Big Picture View Uday Khedker (www.cse.iitb.ac.in/uday) Department of Computer Science and Engineering, Indian Institute of Technology, Bombay Dec 2017 WSSE Pune PTA Big Picture: The Big Picture 1/22 Outline The


slide-1
SLIDE 1

Pointer Analysis: The Big Picture View

Uday Khedker

(www.cse.iitb.ac.in/˜uday) Department of Computer Science and Engineering, Indian Institute of Technology, Bombay

Dec 2017

slide-2
SLIDE 2

WSSE Pune PTA Big Picture: The Big Picture 1/22

Outline

  • The What and Why of pointer analysis
  • Abstactions vs. approximations in pointer analysis
  • An engineering landscape for pointer analysis
  • Our Holy Grail in pointer analysis

Dec 2017 IIT Bombay

slide-3
SLIDE 3

WSSE Pune PTA Big Picture: The Big Picture 2/22

Code Optimization In Presence of Pointers

Program Memory graph at statement 5 1. q = p; 2. while (. . . ) { 3. q = q→next; 4. } 5. p→data = r1; 6. print (q→data); 7. p→data = r2; q p

. . .

p next next

  • Is p→data live at the exit of line 5? Can we delete line 5?

Dec 2017 IIT Bombay

slide-4
SLIDE 4

WSSE Pune PTA Big Picture: The Big Picture 2/22

Code Optimization In Presence of Pointers

Program Memory graph at statement 5 1. q = p; 2. do { 3. q = q→next; 4. } while (. . . ) 5. p→data = r1; 6. print (q→data); 7. p→data = r2; q p

. . .

p next next

  • Is p→data live at the exit of line 5? Can we delete line 5?

Dec 2017 IIT Bombay

slide-5
SLIDE 5

WSSE Pune PTA Big Picture: The Big Picture 2/22

Code Optimization In Presence of Pointers

Program Memory graph at statement 5 1. q = p; 2. do { 3. q = q→next; 4. } while (. . . ) 5. p→data = r1; 6. print (q→data); 7. p→data = r2; q p

. . .

p next next

  • Is p→data live at the exit of line 5? Can we delete line 5?
  • We cannot delete line 5 if p and q can be possibly aliased

(while loop or do-while loop with a circular list)

Dec 2017 IIT Bombay

slide-6
SLIDE 6

WSSE Pune PTA Big Picture: The Big Picture 2/22

Code Optimization In Presence of Pointers

Program Memory graph at statement 5 1. q = p; 2. do { 3. q = q→next; 4. } while (. . . ) 5. p→data = r1; 6. print (q→data); 7. p→data = r2; q p

. . .

p next next

  • Is p→data live at the exit of line 5? Can we delete line 5?
  • We cannot delete line 5 if p and q can be possibly aliased

(while loop or do-while loop with a circular list)

  • We can delete line 5 if p and q are definitely not aliased

(do-while loop without a circular list)

Dec 2017 IIT Bombay

slide-7
SLIDE 7

WSSE Pune PTA Big Picture: The Big Picture 3/22

Code Optimization In Presence of Pointers

a = 5 x = &a b = ∗x Original program

Dec 2017 IIT Bombay

slide-8
SLIDE 8

WSSE Pune PTA Big Picture: The Big Picture 3/22

Code Optimization In Presence of Pointers

a = 5 x = &a b = ∗x a = 5 x = &a b = ∗x Original program Constant propagation without pointer analysis

Dec 2017 IIT Bombay

slide-9
SLIDE 9

WSSE Pune PTA Big Picture: The Big Picture 3/22

Code Optimization In Presence of Pointers

a = 5 x = &a b = ∗x a = 5 x = &a b = ∗x a = 5 x = &a b = 5 Original program Constant propagation Constant propagation without pointer analysis with pointer analysis

Dec 2017 IIT Bombay

slide-10
SLIDE 10

WSSE Pune PTA Big Picture: The Big Picture 4/22

Code Optimization In Presence of Pointers

f main g h b p = g; b a = 5 f (); p(); b = ∗x b x = &a; b b x = &c; b

Dec 2017 IIT Bombay

slide-11
SLIDE 11

WSSE Pune PTA Big Picture: The Big Picture 4/22

Code Optimization In Presence of Pointers

f main g h b p = g; b a = 5 f (); p(); b = ∗x b x = &a; b b x = &c; b

Dec 2017 IIT Bombay

slide-12
SLIDE 12

WSSE Pune PTA Big Picture: The Big Picture 4/22

Code Optimization In Presence of Pointers

f main g h b p = g; b a = 5 f (); p(); b = ∗x b x = &a; b b x = &c; b

Dec 2017 IIT Bombay

slide-13
SLIDE 13

WSSE Pune PTA Big Picture: The Big Picture 4/22

Code Optimization In Presence of Pointers

f main g h b p = g; b a = 5 f (); p(); b = 5 b x = &a; b b x = &c; b

Dec 2017 IIT Bombay

slide-14
SLIDE 14

WSSE Pune PTA Big Picture: The Big Picture 5/22

Pointer Analysis

  • Answers the following questions for indirect accesses:

◮ Which data is read?

x = ∗y

◮ Which data is written?

∗x = y

◮ Which procedure is called?

p() or x → f ()

  • Enables precise data flow and interprocedural control flow analysis
  • Computationally intensive analyses are ineffective when supplied with

imprecise points-to analysis, (e.g., model checking, interprocedural analyses)

  • Needs to scale to large programs

Dec 2017 IIT Bombay

slide-15
SLIDE 15

WSSE Pune PTA Big Picture: The Big Picture 6/22

The World of Pointer Analysis

Alias Analysis Pointer Analysis Alias analysis

  • f reference

parameters, fields of unions array indices Alias analysis of data pointers Points-to analysis of data and function pointers

Dec 2017 IIT Bombay

slide-16
SLIDE 16

WSSE Pune PTA Big Picture: The Big Picture 7/22

Pointer Analysis Musings

  • A keynote address:

“The worst thing that has happened to Computer Science is C, because it brought pointers with it . . . ”

  • Frances Allen, IITK Workshop (2007)
  • A couple of influential papers
  • Which Pointer Analysis should I Use?

Michael Hind and Anthony Pioli. ISTAA 2000

  • Pointer Analysis: Haven’t we solved this problem

? Michael Hind PASTE yet 2001

Dec 2017 IIT Bombay

slide-17
SLIDE 17

WSSE Pune PTA Big Picture: The Big Picture 7/22

Pointer Analysis Musings

  • A keynote address:

“The worst thing that has happened to Computer Science is C, because it brought pointers with it . . . ”

  • Frances Allen, IITK Workshop (2007)
  • A couple of influential papers
  • Which Pointer Analysis should I Use?

Michael Hind and Anthony Pioli. ISTAA 2000

  • Pointer Analysis: Haven’t we solved this problem

? Michael Hind PASTE yet 2001

Dec 2017 IIT Bombay

slide-18
SLIDE 18

WSSE Pune PTA Big Picture: The Big Picture 7/22

Pointer Analysis Musings

  • A keynote address:

“The worst thing that has happened to Computer Science is C, because it brought pointers with it . . . ”

  • Frances Allen, IITK Workshop (2007)
  • A couple of influential papers
  • Which Pointer Analysis should I Use?

Michael Hind and Anthony Pioli. ISTAA 2000

  • Pointer Analysis: Haven’t we solved this problem

? Michael Hind PASTE yet 2001

  • 2017 . . .

Dec 2017 IIT Bombay

slide-19
SLIDE 19

WSSE Pune PTA Big Picture: The Big Picture 8/22

The Mathematics of Pointer Analysis

In the most general situation

  • Alias analysis is undecidable.

Landi-Ryder [POPL 1991], Landi [LOPLAS 1992], Ramalingam [TOPLAS 1994]

  • Flow insensitive alias analysis is NP-hard

Horwitz [TOPLAS 1997]

  • Points-to analysis is undecidable

Chakravarty [POPL 2003] Adjust your expectations suitably to avoid disappointments!

Dec 2017 IIT Bombay

slide-20
SLIDE 20

WSSE Pune PTA Big Picture: The Big Picture 9/22

So what should we expect?

To quote Hind [PASTE 2001]

Dec 2017 IIT Bombay

slide-21
SLIDE 21

WSSE Pune PTA Big Picture: The Big Picture 9/22

So what should we expect?

To quote Hind [PASTE 2001]

  • “Fortunately many approximations exist”

Dec 2017 IIT Bombay

slide-22
SLIDE 22

WSSE Pune PTA Big Picture: The Big Picture 9/22

So what should we expect?

To quote Hind [PASTE 2001]

  • “Fortunately many approximations exist”
  • “Unfortunately too many approximations exist!”

Dec 2017 IIT Bombay

slide-23
SLIDE 23

WSSE Pune PTA Big Picture: The Big Picture 9/22

So what should we expect?

To quote Hind [PASTE 2001]

  • “Fortunately many approximations exist”
  • “Unfortunately too many approximations exist!”

Engineering of pointer analysis is much more dominant than its science

Dec 2017 IIT Bombay

slide-24
SLIDE 24

WSSE Pune PTA Big Picture: The Big Picture 10/22

Pointer Analysis: Engineering or Science?

  • Engineering view

Build quick approximations

The tyranny of (exclusive) OR Precision OR Efficiency?

  • Science view

Build clean abstractions

Can we harness the Genius of AND? Precision AND Efficiency?

Dec 2017 IIT Bombay

slide-25
SLIDE 25

WSSE Pune PTA Big Picture: The Big Picture 10/22

Pointer Analysis: Engineering or Science?

  • Engineering view

Build quick approximations

The tyranny of (exclusive) OR Precision OR Efficiency?

  • Science view

Build clean abstractions

Can we harness the Genius of AND? Precision AND Efficiency?

  • Most common trend as evidenced by publications

◮ Build acceptable approximations guided by empirical observations ◮ The notion of acceptability is often constrained by beliefs rather than

possibilities

Dec 2017 IIT Bombay

slide-26
SLIDE 26

WSSE Pune PTA Big Picture: The Big Picture 11/22

Abstraction Vs. Approximation in Static Analysis

  • Static analysis needs to create abstract values that represent many

concrete values

  • Mapping concrete values to abstract values

◮ Abstraction.

Deciding which properties of the concrete values are essential What Ease of understanding, reasoning, modelling etc. Why

◮ Approximation.

Deciding which properties of the concrete values cannot What be represented accurately and should be summarised Decidability, tractability, or efficiency and scalability Why

Dec 2017 IIT Bombay

slide-27
SLIDE 27

WSSE Pune PTA Big Picture: The Big Picture 12/22

Abstraction Vs. Approximation in Static Analysis

  • Abstractions

◮ focus on precision and conciseness of modelling ◮ tell us what we can ignore without being imprecise

  • Approximations

◮ focus on efficiency and scalability ◮ tell us the imprecision that we have to tolerate

Dec 2017 IIT Bombay

slide-28
SLIDE 28

WSSE Pune PTA Big Picture: The Big Picture 12/22

Abstraction Vs. Approximation in Static Analysis

  • Abstractions

◮ focus on precision and conciseness of modelling ◮ tell us what we can ignore without being imprecise

  • Approximations

◮ focus on efficiency and scalability ◮ tell us the imprecision that we have to tolerate

  • Build clean abstractions before surrendering to the approximations

Dec 2017 IIT Bombay

slide-29
SLIDE 29

WSSE Pune PTA Big Picture: The Big Picture 13/22

The Hope of Clean Abstractions in Pointer Analysis

  • Common belief
  • However,
  • Because

Dec 2017 IIT Bombay

slide-30
SLIDE 30

WSSE Pune PTA Big Picture: The Big Picture 13/22

The Hope of Clean Abstractions in Pointer Analysis

  • Common belief

Pointer information is very large

  • However,
  • Because

Dec 2017 IIT Bombay

slide-31
SLIDE 31

WSSE Pune PTA Big Picture: The Big Picture 13/22

The Hope of Clean Abstractions in Pointer Analysis

  • Common belief

Pointer information is very large

  • However,

Precision can reduce the size of pointer information to make it far more manageable

  • Because

Dec 2017 IIT Bombay

slide-32
SLIDE 32

WSSE Pune PTA Big Picture: The Big Picture 13/22

The Hope of Clean Abstractions in Pointer Analysis

  • Common belief

Pointer information is very large

  • However,

Precision can reduce the size of pointer information to make it far more manageable

  • Because

At any program point, the usable pointer information is much smaller than the total pointer information Current methods perform many repeated and possibly avoidable computations

Dec 2017 IIT Bombay

slide-33
SLIDE 33

WSSE Pune PTA Big Picture: The Big Picture 14/22

Why Avoid Approximations?

  • Approximations may create a vicious cycle

Approximation Imprecision causes Inefficiency may cause may seem to warrant

Dec 2017 IIT Bombay

slide-34
SLIDE 34

WSSE Pune PTA Big Picture: The Big Picture 14/22

Why Avoid Approximations?

  • Approximations may create a vicious cycle

Approximation Imprecision causes Inefficiency may cause may seem to warrant

  • Two examples of inefficiency cause by approximations

◮ k-limited call strings may create “butterfly cycles” causing spurious

fixed point computations [Hakjoo, 2010]

◮ Imprecision in function pointer analysis overapproximates calls

may create spurious recursion in call graphs

Dec 2017 IIT Bombay

slide-35
SLIDE 35

WSSE Pune PTA Big Picture: The Big Picture 15/22

Which Approximations Should We Avoid?

Approximation Admits Flow insensitivity Context insensitivity (or partial context sensitivity) Imprecision in call graphs Allocation site based heap abstraction

Dec 2017 IIT Bombay

slide-36
SLIDE 36

WSSE Pune PTA Big Picture: The Big Picture 15/22

Which Approximations Should We Avoid?

Approximation Admits Flow insensitivity Spurious intraprocedural paths Context insensitivity (or partial context sensitivity) Spurious interprocedural paths Imprecision in call graphs Spurious call sequences Allocation site based heap abstraction Spurious paths in memory graph

Dec 2017 IIT Bombay

slide-37
SLIDE 37

WSSE Pune PTA Big Picture: The Big Picture 16/22

Flow Insensitivity in Data Flow Analysis

  • Assumption: Statements can be executed in any order.
  • Instead of computing point-specific data flow information, summary data

flow information is computed. The summary information is required to be a safe approximation of point-specific information for each point.

  • No data flow information is killed

If a statement kills data flow information, there is an alternate path that excludes the statement. The control flow graph viewed as a complete graph (except for the Start and End nodes)

Dec 2017 IIT Bombay

slide-38
SLIDE 38

WSSE Pune PTA Big Picture: The Big Picture 17/22

Flow Insensitivity in Data Flow Analysis

0 f0 0 1 f1 1 2 f2 2 3 f3 3 i fi i m fm m Start 0 f0 0 1 f1 1 2 f2 2 3 f3 3 . . . i fi i . . . m fm m End

Dec 2017 IIT Bombay

slide-39
SLIDE 39

WSSE Pune PTA Big Picture: The Big Picture 17/22

Flow Insensitivity in Data Flow Analysis

0 f0 0 1 f1 1 2 f2 2 3 f3 3 i fi i m fm m Start 0 f0 0 1 f1 1 2 f2 2 3 f3 3 . . . i fi i . . . m fm m End

Dec 2017 IIT Bombay

slide-40
SLIDE 40

WSSE Pune PTA Big Picture: The Big Picture 17/22

Flow Insensitivity in Data Flow Analysis

0 f0 0 1 f1 1 2 f2 2 3 f3 3 i fi i m fm m Start 0 f0 0 1 f1 1 2 f2 2 3 f3 3 . . . i fi i . . . m fm m End Allows arbitrary compositions of flow functions in any order ⇒ Flow insensitivity

Dec 2017 IIT Bombay

slide-41
SLIDE 41

WSSE Pune PTA Big Picture: The Big Picture 17/22

Flow Insensitivity in Data Flow Analysis

0 f0 0 1 f1 1 2 f2 2 3 f3 3 i fi i m fm m Start 0 f0 0 1 f1 1 2 f2 2 3 f3 3 . . . i fi i . . . m fm m End In practice, dependent constraints are collected in a global repository in one pass and then are solved independently

Dec 2017 IIT Bombay

slide-42
SLIDE 42

WSSE Pune PTA Big Picture: The Big Picture 18/22

Examples of Flow Insensitive Analyses

  • Type checking/inferencing

(What about interpreted languages?)

  • Address taken analysis

Which variables have their addresses taken?

  • Side effects analysis

Does a procedure modify a global variable? Reference Parameter?

Dec 2017 IIT Bombay

slide-43
SLIDE 43

WSSE Pune PTA Big Picture: The Big Picture 19/22

Context Sensitivity in Interprocedural Analysis

Sr Er Ss Es Ci Ri ci St Et Cj Rj cj x x x′ = fr(x) x′ y y y ′ = fr(y) y ′ fr

Dec 2017 IIT Bombay

slide-44
SLIDE 44

WSSE Pune PTA Big Picture: The Big Picture 19/22

Context Sensitivity in Interprocedural Analysis

Sr Er Ss Es Ci Ri ci St Et Cj Rj cj x x x′ y y y ′ fr

Dec 2017 IIT Bombay

slide-45
SLIDE 45

WSSE Pune PTA Big Picture: The Big Picture 19/22

Context Sensitivity in Interprocedural Analysis

Sr Er Ss Es Ci Ri ci St Et Cj Rj cj x x x′ y y y ′ fr

×

Dec 2017 IIT Bombay

slide-46
SLIDE 46

WSSE Pune PTA Big Picture: The Big Picture 19/22

Context Sensitivity in Interprocedural Analysis

Sr Er Ss Es Ci Ri ci St Et Cj Rj cj x x x′ y y y ′ fr

Dec 2017 IIT Bombay

slide-47
SLIDE 47

WSSE Pune PTA Big Picture: The Big Picture 19/22

Context Sensitivity in Interprocedural Analysis

Sr Er Ss Es Ci Ri ci St Et Cj Rj cj x x x′ y y y ′ fr

×

Dec 2017 IIT Bombay

slide-48
SLIDE 48

WSSE Pune PTA Big Picture: The Big Picture 20/22

The Classical Precision-Efficiency Dilemma

Abstraction Role in precision Cause of inefficiency Distinguishes between Needs to consider Flow sensitivity Context sensitivity Precise heap abstraction Precise call structure

Dec 2017 IIT Bombay

slide-49
SLIDE 49

WSSE Pune PTA Big Picture: The Big Picture 20/22

The Classical Precision-Efficiency Dilemma

Abstraction Role in precision Cause of inefficiency Distinguishes between Needs to consider Flow sensitivity Information at different program points Context sensitivity Information in different contexts Precise heap abstraction Different heap locations Precise call structure Indirect calls made to different callees from the same program point

Dec 2017 IIT Bombay

slide-50
SLIDE 50

WSSE Pune PTA Big Picture: The Big Picture 20/22

The Classical Precision-Efficiency Dilemma

Abstraction Role in precision Cause of inefficiency Distinguishes between Needs to consider Flow sensitivity Information at different program points A large number of program points Context sensitivity Information in different contexts Exponentially large number of contexts Precise heap abstraction Different heap locations Unbounded number

  • f heap locations

Precise call structure Indirect calls made to different callees from the same program point Precise points-to information

Dec 2017 IIT Bombay

slide-51
SLIDE 51

WSSE Pune PTA Big Picture: The Big Picture 21/22

Pointer Analysis: An Engineer’s Landscape

Flow Sensitivity Increases Context Sensitivity Increases FI= FI⊆ FISSA FSNoKill FS CI CSObjSens CSRecIns CS

Dec 2017 IIT Bombay

slide-52
SLIDE 52

WSSE Pune PTA Big Picture: The Big Picture 21/22

Pointer Analysis: An Engineer’s Landscape

Flow Sensitivity Increases Context Sensitivity Increases FI= FI⊆ FISSA FSNoKill FS CI CSObjSens CSRecIns CS Data Structures: BDDs, probabilistic

Dec 2017 IIT Bombay

slide-53
SLIDE 53

WSSE Pune PTA Big Picture: The Big Picture 21/22

Pointer Analysis: An Engineer’s Landscape

Flow Sensitivity Increases Context Sensitivity Increases FI= FI⊆ FISSA FSNoKill FS CI CSObjSens CSRecIns CS Data Structures: BDDs, probabilistic Methods: parallel, on demand, randomized

Dec 2017 IIT Bombay

slide-54
SLIDE 54

WSSE Pune PTA Big Picture: The Big Picture 21/22

Pointer Analysis: An Engineer’s Landscape

Flow Sensitivity Increases Context Sensitivity Increases FI= FI⊆ FISSA FSNoKill FS CI CSObjSens CSRecIns CS Data Structures: BDDs, probabilistic Methods: parallel, on demand, randomized Refinement: Level-wise, bootstrapping

Dec 2017 IIT Bombay

slide-55
SLIDE 55

WSSE Pune PTA Big Picture: The Big Picture 21/22

Pointer Analysis: An Engineer’s Landscape

Flow Sensitivity Increases Context Sensitivity Increases FI= FI⊆ FISSA FSNoKill FS CI CSObjSens CSRecIns CS

Crowded Area

Dec 2017 IIT Bombay

slide-56
SLIDE 56

WSSE Pune PTA Big Picture: The Big Picture 21/22

Pointer Analysis: An Engineer’s Landscape

Flow Sensitivity Increases Context Sensitivity Increases FI= FI⊆ FISSA FSNoKill FS CI CSObjSens CSRecIns CS

Crowded Area

Thinly populated

Dec 2017 IIT Bombay

slide-57
SLIDE 57

WSSE Pune PTA Big Picture: The Big Picture 21/22

Pointer Analysis: An Engineer’s Landscape

Flow Sensitivity Increases Context Sensitivity Increases FI= FI⊆ FISSA FSNoKill FS CI CSObjSens CSRecIns CS

Crowded Area

Thinly populated That’s the corner we are trying to

  • ccupy :-)

Dec 2017 IIT Bombay

slide-58
SLIDE 58

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Context sensitivity (Caller sensitivity) Precise heap abstraction Precise call structure

Dec 2017 IIT Bombay

slide-59
SLIDE 59

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Joint liveness and points-to analysis Partial accomplishment (SAS12) Context sensitivity (Caller sensitivity) Precise heap abstraction Precise call structure Restrict the computation

  • nly to the usable data.

Weave liveness discovery into the analysis

Dec 2017 IIT Bombay

slide-60
SLIDE 60

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Joint liveness and points-to analysis Partial accomplishment (SAS12) High level abstraction

  • f memory

Partial accomplishment (SAS16) Context sensitivity (Caller sensitivity) Precise heap abstraction Precise call structure Postpone low level connections explicated by the classical points-to facts

Dec 2017 IIT Bombay

slide-61
SLIDE 61

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Joint liveness and points-to analysis Partial accomplishment (SAS12) High level abstraction

  • f memory

Partial accomplishment (SAS16) Context sensitivity (Caller sensitivity) Value contexts Mature accomplishment (CC08, SAS12, SOAP13) Precise heap abstraction Precise call structure Distinguish between contexts by their data flow values and not their call chains

Dec 2017 IIT Bombay

slide-62
SLIDE 62

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Joint liveness and points-to analysis Partial accomplishment (SAS12) High level abstraction

  • f memory

Partial accomplishment (SAS16) Context sensitivity (Caller sensitivity) Value contexts Mature accomplishment (CC08, SAS12, SOAP13) GPG based bottom-up summary flow functions Mature accomplishment (SAS16) Precise heap abstraction Precise call structure Avoid recomputations for each context. Use a higher level abstraction of memory.

Dec 2017 IIT Bombay

slide-63
SLIDE 63

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Joint liveness and points-to analysis Partial accomplishment (SAS12) High level abstraction

  • f memory

Partial accomplishment (SAS16) Context sensitivity (Caller sensitivity) Value contexts Mature accomplishment (CC08, SAS12, SOAP13) GPG based bottom-up summary flow functions Mature accomplishment (SAS16) Precise heap abstraction Liveness access graphs Partial accomplishment (TOPLAS07) Precise call structure Identify the part of heap actually accessed in terms

  • f patterns of accesses

Dec 2017 IIT Bombay

slide-64
SLIDE 64

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Joint liveness and points-to analysis Partial accomplishment (SAS12) High level abstraction

  • f memory

Partial accomplishment (SAS16) Context sensitivity (Caller sensitivity) Value contexts Mature accomplishment (CC08, SAS12, SOAP13) GPG based bottom-up summary flow functions Mature accomplishment (SAS16) Precise heap abstraction Liveness access graphs Partial accomplishment (TOPLAS07) Access based abstraction Mature accomplishment (ISMM17) Precise call structure Distinguish between heap locations based on how they are accessed and not how they are allocated

Dec 2017 IIT Bombay

slide-65
SLIDE 65

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Joint liveness and points-to analysis Partial accomplishment (SAS12) High level abstraction

  • f memory

Partial accomplishment (SAS16) Context sensitivity (Caller sensitivity) Value contexts Mature accomplishment (CC08, SAS12, SOAP13) GPG based bottom-up summary flow functions Mature accomplishment (SAS16) Precise heap abstraction Liveness access graphs Partial accomplishment (TOPLAS07) Access based abstraction Mature accomplishment (ISMM17) Precise call structure Callee sensitivity Work in progress Call strings record call

  • history. We need to

record call future also.

Dec 2017 IIT Bombay

slide-66
SLIDE 66

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Joint liveness and points-to analysis Partial accomplishment (SAS12) High level abstraction

  • f memory

Partial accomplishment (SAS16) Context sensitivity (Caller sensitivity) Value contexts Mature accomplishment (CC08, SAS12, SOAP13) GPG based bottom-up summary flow functions Mature accomplishment (SAS16) Precise heap abstraction Liveness access graphs Partial accomplishment (TOPLAS07) Access based abstraction Mature accomplishment (ISMM17) Precise call structure Callee sensitivity Work in progress Virtual call resolution Work in progress Make the call graph more precise by computing a more precise set of callees

Dec 2017 IIT Bombay

slide-67
SLIDE 67

WSSE Pune PTA Big Picture: The Big Picture 22/22

In Search of Abstractions for Precision Without Inefficiency

Desired Abstraction Enabling Abstraction Status of our work Flow sensitivity Joint liveness and points-to analysis Partial accomplishment (SAS12) High level abstraction

  • f memory

Partial accomplishment (SAS16) Context sensitivity (Caller sensitivity) Value contexts Mature accomplishment (CC08, SAS12, SOAP13) GPG based bottom-up summary flow functions Mature accomplishment (SAS16) Precise heap abstraction Liveness access graphs Partial accomplishment (TOPLAS07) Access based abstraction Mature accomplishment (ISMM17) Precise call structure Callee sensitivity Work in progress Virtual call resolution Work in progress

We are destined to a long haul with no guarantees :-)

Dec 2017 IIT Bombay