scale.score.analyses
Class CategoriesAliases

java.lang.Object
  extended by scale.score.analyses.Aliases
      extended by scale.score.analyses.CategoriesAliases

public class CategoriesAliases
extends Aliases

This class extends from the Aliases class.

$Id: CategoriesAliases.java,v 1.13 2005-02-07 21:28:33 burrill Exp $

Copyright 2008 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.

The only difference between this class and the super class is that here there is an extra step of creating categories and assigning alias variables to them Also, it overloads the method computeAliases


Field Summary
 
Fields inherited from class scale.score.analyses.Aliases
aliasVars, analyzer, classTrace, vvName
 
Constructor Summary
CategoriesAliases(AliasAnalysis analysis, Suite suite, boolean simple)
          Create an object for computing alias categories.
 
Method Summary
 void computeAliases()
          The main routine for computing aliases.
 void createVirtualVars()
          The routine that does a pre-pass over the points-to graph to determine the virtual variable assignments.
 VirtualVar getVirtualVar(ECR ecr)
          provide a public static method to get the virtual variable that maps to a given ecr.
 
Methods inherited from class scale.score.analyses.Aliases
addAliasVarToVector, addVirtualVariable, cleanup, computeSizeOfPointsToSet, createAliasVariables, findAliases, getVirtualVariable, newAliasVariable, nextVirtualName, printAliasInfo, sizePointsTo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CategoriesAliases

public CategoriesAliases(AliasAnalysis analysis,
                         Suite suite,
                         boolean simple)
Create an object for computing alias categories.

Parameters:
analysis - the alias analysis object
suite - the collection of modules to process (may be just one procedure)
simple - is true for simple alias analysis
Method Detail

computeAliases

public void computeAliases()
The main routine for computing aliases. Overloaded from the super class Aliases.java First, we create alias variables for the variables in the program then, we create categories based upon the number provided Next, we assign variables to categories Finally, we analyze the program to find the alias relationships among the variables.

Overrides:
computeAliases in class Aliases

createVirtualVars

public void createVirtualVars()
The routine that does a pre-pass over the points-to graph to determine the virtual variable assignments. Not sure if this method should be in the super class or not Also, this pre-pass is somewhat expensive - try to refine later


getVirtualVar

public VirtualVar getVirtualVar(ECR ecr)
provide a public static method to get the virtual variable that maps to a given ecr.

Overrides:
getVirtualVar in class Aliases
Parameters:
ecr - an ECR that represents a virtual variable.
Returns:
the virtual variable associated with the ECR.