Browse Prior Art Database

Effective alias analysis for object oriented languages

IP.com Disclosure Number: IPCOM000016401D
Original Publication Date: 2002-Nov-04
Included in the Prior Art Database: 2003-Jun-21
Document File: 2 page(s) / 61K

Publishing Venue

IBM

Abstract

Disclosed is a method for effectively analyzing object variable aliases for object oriented languages. This algorithm has the following four steps: 1. Compiler computes the region (region 1) where each object variable is never aliased after new. 2. Compiler computes the boundary from the region 1 to outside of the region 1 for each object variable. 3. Compiler computes the region (region 2) where the boundary computed by Step 2 has never executed for each object variable.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 86% of the total text.

Page 1 of 2

Effective alias analysis for object oriented languages

  Disclosed is a method for effectively analyzing object variable aliases for object oriented languages. This algorithm has the following four steps:

1. Compiler computes the region (region 1) where each object variable is never aliased after new.
2. Compiler computes the boundary from the region 1 to outside of the region 1 for each object variable.
3. Compiler computes the region (region 2) where the boundary computed by Step 2 has never executed for each object variable.
4. Compiler decides that two object variables (V1 and V2) will be never aliased, if a definition of one variable V1 is a new instruction and if either condition c1 or c2 is satisfied: c1. The other variable V2 is used within the region 1 of the object variable V1.

c2. The other variable V2 is defined within the region 2 of the object variable V1.

Figure 1 shows an example. In this example, a definition of the variable V1 is a new instruction, and "func(V1)" is an alias candidate of V1. Thus, the region 1 of V1 becomes from the new instruction to func(V1). The boundary from the region 1 to outside of the region 1 for the variable V1 is immediately after func(V1). Thus, region 2 of V1 becomes as shown in Figure 1.

V4 = ...

V2 = ...

region 2

region 1

V1 = new ...

load V5

func(V1)

V3 = ...

boundary

Figure 1. Example of this algorithm

1

[This page contains 1 picture or other non-text object]

Page 2 of 2

Finally, by using region 1 and region 2, compi...