cs 201 compiler construction

Post on 03-Jan-2016

37 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

CS 201 Compiler Construction. Lecture Interprocedural Data Flow Analysis. Intraprocedural Analysis. Individual procedures are analyzed in isolation; worst-case assumpltion are made while processing call sites. Example:. X = 3; P(); … = X - PowerPoint PPT Presentation

TRANSCRIPT

1

CS 201Compiler Construction

LectureInterprocedural Data Flow Analysis

2

Intraprocedural Analysis

• Individual procedures are analyzed in isolation; • worst-case assumpltion are made while

processing call sites.Example:

X = 3;P();… = X Does definiton X=3 reach this point? Yes Is X a constant? NoWe assume that P() does not kill any definition for reaching definitions analysis and we assumeP() kills all constants that reach the call P().

Interprocedural Analysis

By considering interactions between calling and called procedures, analyze the whole program.

Challenges• Scoping Rules• Aliasing due to reference parameters

Procedure P (f1,f2)f1 = …f2 = ……. = f1 where if f1 defined ? f1

=… what about call P(X,X)?

Interprocedural AnalysisChallenges contd…• Calling Context – cannot represent call-return

using simple control flow edges.

Invalid paths are created by simple control flow edges causing definition of X at statement 1 to reach use of X at statement 4.

Handling Calling Context

Various Approaches:1.Procedure Inlining – replace the call by

procedure body.Drawbacks– Code size increases– Recursion causes problems

2.Call String Approach – add calling context information to data flow values by tagging them with call-return history.

5

Handling Calling Context

3. Functional ApproachTwo phases

• Analyze effect of procedure invocation independent of calling context find a summary transfer function for the entire procedure

• Analyze each procedure using summary functions for all called procedures

6

Functional Approach

7

Functional Approach Contd..

8

Functional Approach Contd..

9

Functional Approach Contd..

10

Functional Approach Contd..

11

Functional Approach Contd..

12

Example: Available Expressions

13

Example: Available Expressions

14

Example: Available Expressions

15

Example: Available Expressions

16

Summary functions

Example: Available Expressions

17

18

Sample ProblemsInterprocedural Data Flow Analysis

top related