Dataflow Analysis Flashcards

1
Q

What is the classic dataflow analysis

A

Reaching Definitions - Find uninitialized variable uses

Available Expressions Analysis - Avoid Recomputing expressions

Very Busy Expressions - Reduce Code size

Life Variable - Allocate registers efficiently

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Modern Dataflow Analysis

A

Interval Analysis - Check memory safety (integer overflow, buffer overruns..)

Taint Analysis - Check information flow (Sensitive data leak, code injection..)

Type State Analysis - Temporal safety properties (API protocols, libraries..)

Concurrency Analysis - Concurrency safety procedures (dataraces, deadlocks..)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Reaching Definitions Analysis

A

The goal of reaching definitions analysis is to determine
which assignments might reach each program point. More accurately, this analysis determines, for each program point, which assignments potentially have been made and not overwritten, when the program’s execution reaches that point along some
path.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Live Variable Analysis

A

Determine for each program point which variables could be live at that point

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

live variable

A

a variable is life if there is a path to a use of the variable that does not redefine the variable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

In and out of live variable analysis

A

In set is every live variable before the node. Out set is every variable which is live after the node.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly