| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectscale.common.Root
scale.score.Note
scale.score.expr.Expr
scale.score.expr.VarArgExpr
public abstract class VarArgExpr
A class which represents the C variable argument processing.
$Id: VarArgExpr.java,v 1.50 2007-10-17 13:40:01 burrill Exp $
 Copyright 2008 by the
 Scale Compiler Group,
 Department of Computer Science
 University of Massachusetts,
 Amherst MA. 01003, USA
 All Rights Reserved.
| Field Summary | 
|---|
| Fields inherited from class scale.score.expr.Expr | 
|---|
| fpReorder, SE_DOMAIN, SE_NONE, SE_OVERFLOW, SE_STATE | 
| Constructor Summary | |
|---|---|
| VarArgExpr(Type t,
           Expr vaList) | |
| Method Summary | |
|---|---|
|  boolean | containsDeclaration(Declaration decl)Return true if this expression contains a reference to the variable. | 
|  boolean | dependsOnDeclaration(Declaration decl)Return true if this expression's value depends on the variable. | 
|  boolean | equivalent(Expr exp)Return true if the expressions are equivalent. | 
| protected  Chord | findCriticalChord(HashMap<Expr,Chord> lMap,
                  Chord independent)Return the Chord with the highest label value from the set of Chords that must be executed before this expression. | 
|  void | getDeclList(java.util.AbstractCollection<Declaration> varList)Add all declarations referenced in this expression to the Vector. | 
|  void | getExprList(Vector<Expr> expList)Add all Expr instances in this expression to the Vector. | 
|  void | getLoadExprList(Vector<LoadExpr> expList)Add all LoadExpr instances in this expression to the Vector. | 
|  Expr | getOperand(int position)Return the nth operand. | 
|  Expr[] | getOperandArray()Return an array of the operands to the expression. | 
|  Expr | getVaList()Return the expression representing the va_list argument. | 
|  void | loopClean()Clean up any loop related information. | 
|  int | numOperands()Return the number of operands to this expression. | 
|  boolean | optimizationCandidate()Return true if the expression can be moved without problems. | 
|  void | pushOperands(Stack<Expr> wl)Push all of the operands of this expression on the Stack. | 
|  void | recordRefs(Chord stmt,
           References refs)Record any variable references in this expression in the table of references. | 
|  void | removeRefs(Chord stmt,
           References refs)Remove any variable references in this expression from the table of references. | 
|  void | removeUseDef()Remove any use - def links, may - use links, etc. | 
|  boolean | replaceDecl(Declaration oldDecl,
            Declaration newDecl)Replace all occurrances of a Declaration with another Declaration. | 
| protected  Expr | setOperand(Expr operand,
           int position)Set the nth operand of an expression. | 
|  int | sideEffects()Return an indication of the side effects execution of this expression may cause. | 
|  void | unlinkExpression()If the node is no longer needed, sever its use-def link, etc. | 
|  void | validate()Check this node for validity. | 
| Methods inherited from class scale.score.Note | 
|---|
| executionCostEstimate, getChord, getEssentialUse, setAnnotationLevel, setReportLevel, toString, visit | 
| Methods inherited from class scale.common.Root | 
|---|
| addAnnotation, allAnnotations, allMatchingAnnotations, getAnnotation, getDisplayName, getDisplayString, getNodeCount, getNodeID, hasAnnotation, hasEqualAnnotation, hashCode, 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 | 
|---|
public VarArgExpr(Type t,
                  Expr vaList)
| Method Detail | 
|---|
public int sideEffects()
sideEffects in class ExprExpr.SE_NONEpublic boolean equivalent(Expr exp)
equivalent in class Expr
protected Expr setOperand(Expr operand,
                          int position)
Exproperand must not be
 null.
setOperand in class Exproperand - - the new operandposition - - indicates which operand
public final Expr getOperand(int position)
getOperand in class Exprposition - the index of the operandpublic final Expr[] getOperandArray()
getOperandArray in class Exprpublic int numOperands()
numOperands in class Exprpublic final Expr getVaList()
public void loopClean()
loopClean in class Exprpublic void unlinkExpression()
unlinkExpression in class Expr
protected Chord findCriticalChord(HashMap<Expr,Chord> lMap,
                                  Chord independent)
findCriticalChord in class ExprlMap - is used to memoize the expression to critical Chord
 informationindependent - is returned if the expression is not dependent
 on anythingpublic boolean containsDeclaration(Declaration decl)
containsDeclaration in class ExprLoadExpr.setUseOriginal(boolean)public boolean dependsOnDeclaration(Declaration decl)
dependsOnDeclaration in class ExprLoadExpr.setUseOriginal(boolean)public boolean optimizationCandidate()
optimizationCandidate in class Exprpublic void getDeclList(java.util.AbstractCollection<Declaration> varList)
getDeclList in class Exprpublic void getLoadExprList(Vector<LoadExpr> expList)
getLoadExprList in class Exprpublic void getExprList(Vector<Expr> expList)
getExprList in class Exprpublic void pushOperands(Stack<Expr> wl)
pushOperands in class Expr
public boolean replaceDecl(Declaration oldDecl,
                           Declaration newDecl)
replaceDecl in class Exprpublic void removeUseDef()
removeUseDef in class Exprpublic void validate()
validate in class Expr
public void recordRefs(Chord stmt,
                       References refs)
recordRefs in class Expr
public void removeRefs(Chord stmt,
                       References refs)
removeRefs in class Expr| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||