scale.score.analyses
Class SuperVirtualVar

java.lang.Object
  extended by scale.common.Root
      extended by scale.clef.Node
          extended by scale.clef.decl.Declaration
              extended by scale.clef.decl.ValueDecl
                  extended by scale.clef.decl.VariableDecl
                      extended by scale.score.analyses.VirtualVar
                          extended by scale.score.analyses.SuperVirtualVar
All Implemented Interfaces:
java.lang.Comparable, AnnotationInterface, DisplayNode

public final class SuperVirtualVar
extends VirtualVar

A SuperVirtualVar contains subset virtual virtual variables. Copyright 2008 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.

Used in category alias analysis.


Field Summary
 
Fields inherited from class scale.score.analyses.VirtualVar
var
 
Fields inherited from class scale.clef.decl.VariableDecl
ignoreAddressTaken
 
Constructor Summary
SuperVirtualVar(java.lang.String name)
           
SuperVirtualVar(java.lang.String name, Vector<VirtualVar> subsets)
          Create a new super virtual variable with given name and subsets list
 
Method Summary
 Declaration copy(java.lang.String name)
          Make a copy of this declaration using a new name.
 SubVirtualVar createSubset(ECR ecr)
          Create a SubVirtualVar from this SuperVirtualVar.
 Node getChild(int i)
          Return the specified AST child of this node.
 VirtualVar getSubset(int i)
          Return the specified subset variable.
 VirtualVar getSuperset()
          Return the superset virtual variable.
 boolean inSubsets(VirtualVar vv)
          Return true if vv is in the subset.
 int numChildren()
          Return the number of AST children of this node.
 int numSubsets()
          Return the number of subsets of the super virtual variable.
 
Methods inherited from class scale.score.analyses.VirtualVar
created, getDisplayLabel, getECR, isSuper, isVirtual, subsetEquiv
 
Methods inherited from class scale.clef.decl.VariableDecl
addressTaken, computeAttributes, declareFtnResultVar, getAddressRegister, getConstantValue, getDisplacement, getInitialValue, getOriginal, getStorageLoc, getValueRegister, hasHiddenAliases, hasHiddenPtrAliases, hasInvalidArrayReferences, inMemory, isCommonBaseVar, isCommonBaseVariable, isConst, isFtnResultVar, isNotAliasCandidate, isNotSSACandidate, isReferenced, isRestricted, isStatic, isStorageLocSet, isTemporary, isVariableDecl, isVolatile, optimizationCandidate, residency, returnVariableDecl, setAddressRegister, setAddressTaken, setDisplacement, setHiddenAliases, setHiddenPtrAliases, setInitialValue, setInvalidArrayReferences, setReferenced, setResidency, setStorageLoc, setTemporary, setType, setValue, setValueRegister, setVisibility, shouldBeInRegister, specifyCommonBaseVariable, toStringSpecial, valueRegMode, visit
 
Methods inherited from class scale.clef.decl.ValueDecl
getValue, isValueDecl, returnValueDecl
 
Methods inherited from class scale.clef.decl.Declaration
accessibility, compareTo, getActualType, getAlias, getCoreType, getDecl, getDisplayColorHint, getDisplayShapeHint, getMode, getName, getPointedToCore, getTag, getType, hashCode, isCaseLabelDecl, isEnumElementDecl, isEquivalenceDecl, isExceptionDecl, isFieldDecl, isFileDecl, isFormalDecl, isForwardProcedureDecl, isGlobal, isLabelDecl, isProcedureDecl, isPure, isRenamed, isRenamedVariableDecl, isRoutineDecl, isStmtFtnDecl, isTypeDecl, isTypeName, isUnknownFormals, isWeak, returnCaseLabelDecl, returnEnumElementDecl, returnEquivalenceDecl, returnExceptionDecl, returnFieldDecl, returnFileDecl, returnFormalDecl, returnForwardProcedureDecl, returnLabelDecl, returnProcedureDecl, returnRenamedVariableDecl, returnRoutineDecl, returnStmtFtnDecl, returnTypeDecl, returnTypeName, returnUnknownFormals, setAccessibility, setAlias, setName, setTag, setWeak, visibility
 
Methods inherited from class scale.clef.Node
getSourceLineNumber, setAnnotationLevel, setReportLevel, setSourceLineNumber, toString, toString, toStringChildren
 
Methods inherited from class scale.common.Root
addAnnotation, allAnnotations, allMatchingAnnotations, getAnnotation, getDisplayName, getDisplayString, getNodeCount, getNodeID, hasAnnotation, hasEqualAnnotation, removeAnnotation, removeAnnotations, toStringAnnotations, toStringClass, trace, trace, trace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SuperVirtualVar

public SuperVirtualVar(java.lang.String name)

SuperVirtualVar

public SuperVirtualVar(java.lang.String name,
                       Vector<VirtualVar> subsets)
Create a new super virtual variable with given name and subsets list

Method Detail

createSubset

public SubVirtualVar createSubset(ECR ecr)
Create a SubVirtualVar from this SuperVirtualVar.


numSubsets

public final int numSubsets()
Return the number of subsets of the super virtual variable.

Overrides:
numSubsets in class VirtualVar

getSubset

public final VirtualVar getSubset(int i)
Return the specified subset variable.

Overrides:
getSubset in class VirtualVar

getSuperset

public final VirtualVar getSuperset()
Return the superset virtual variable.

Overrides:
getSuperset in class VirtualVar

inSubsets

public boolean inSubsets(VirtualVar vv)
Return true if vv is in the subset.

Overrides:
inSubsets in class VirtualVar

copy

public Declaration copy(java.lang.String name)
Make a copy of this declaration using a new name.

Overrides:
copy in class VirtualVar

getChild

public Node getChild(int i)
Return the specified AST child of this node.

Overrides:
getChild in class ValueDecl

numChildren

public int numChildren()
Return the number of AST children of this node.

Overrides:
numChildren in class ValueDecl