| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectscale.clef.ErrorPredicate
scale.clef2scribble.Clef2Scribble
public class Clef2Scribble
This class builds a Scribble graph (CFG) out of a Clef tree (AST).
$Id: Clef2Scribble.java,v 1.374 2007-10-04 19:58:09 burrill Exp $
 Copyright 2008 by the
 Scale Compiler Group,
 Department of Computer Science
 University of Massachusetts,
 Amherst MA. 01003, USA
 All Rights Reserved.
 
This class builds a Scribble graph out of a Clef graph.
The functionality of building the Scribble graph has been separated from the actual Scribble class to keep each class small.
Methods that convert Clef statements return a range of Scribble statements (or basic blocks) that are equivalent to the Clef statement. Methods that convert Clef expressions return a range of Score statements as well, but also an indication of which variable holds the final value of that expression.
| Field Summary | |
|---|---|
| static boolean | hasDummyAliasesTrue if there may be aliases between address arguments to subroutines. | 
| static boolean | noBuiltinsSet true if certain standard C library functions should not be inlined. | 
| Constructor Summary | |
|---|---|
| Clef2Scribble(RoutineDecl rd,
              SourceLanguage lang,
              CallGraph cg)Construct a Scribble graph for a single routine. | |
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
public static boolean noBuiltins
public static boolean hasDummyAliases
| Constructor Detail | 
|---|
public Clef2Scribble(RoutineDecl rd,
                     SourceLanguage lang,
                     CallGraph cg)
rd - the node in the call graph that represents thelang - specifies the source language| Method Detail | 
|---|
public static int variables()
public static int regVariables()
public static int equVariables()
public static int formalVariables()
public static int globalVariables()
public static int tempVariables()
public static int newCFGNodes()
public static int redundantTests()
public void visitProcedureDecl(ProcedureDecl n)
visitProcedureDecl in interface DeclPredicatevisitProcedureDecl in class ErrorPredicatepublic void visitBlockStmt(BlockStmt cs)
visitBlockStmt in interface StmtPredicatevisitBlockStmt in class ErrorPredicatepublic void visitIfThenElseStmt(IfThenElseStmt cs)
visitIfThenElseStmt in interface StmtPredicatevisitIfThenElseStmt in class ErrorPredicatepublic void visitArithmeticIfStmt(ArithmeticIfStmt s)
visitArithmeticIfStmt in interface StmtPredicatevisitArithmeticIfStmt in class ErrorPredicatepublic void visitComputedGotoStmt(ComputedGotoStmt s)
visitComputedGotoStmt in interface StmtPredicatevisitComputedGotoStmt in class ErrorPredicatepublic void visitSwitchStmt(SwitchStmt s)
visitSwitchStmt in interface StmtPredicatevisitSwitchStmt in class ErrorPredicatepublic void visitWhileLoopStmt(WhileLoopStmt cs)
visitWhileLoopStmt in interface StmtPredicatevisitWhileLoopStmt in class ErrorPredicatepublic void visitRepeatWhileLoopStmt(RepeatWhileLoopStmt cs)
visitRepeatWhileLoopStmt in interface StmtPredicatevisitRepeatWhileLoopStmt in class ErrorPredicatepublic void visitRepeatUntilLoopStmt(RepeatUntilLoopStmt cs)
visitRepeatUntilLoopStmt in interface StmtPredicatevisitRepeatUntilLoopStmt in class ErrorPredicatepublic void visitDoLoopStmt(DoLoopStmt cs)
visitDoLoopStmt in interface StmtPredicatevisitDoLoopStmt in class ErrorPredicatepublic void visitForLoopStmt(ForLoopStmt cs)
visitForLoopStmt in interface StmtPredicatevisitForLoopStmt in class ErrorPredicatepublic void visitBreakStmt(BreakStmt cs)
visitBreakStmt in interface StmtPredicatevisitBreakStmt in class ErrorPredicatepublic void visitContinueStmt(ContinueStmt cs)
visitContinueStmt in interface StmtPredicatevisitContinueStmt in class ErrorPredicatepublic void visitGotoStmt(GotoStmt cs)
visitGotoStmt in interface StmtPredicatevisitGotoStmt in class ErrorPredicatepublic void visitReturnStmt(ReturnStmt cs)
visitReturnStmt in interface StmtPredicatevisitReturnStmt in class ErrorPredicatepublic void visitExitStmt(ExitStmt cs)
visitExitStmt in interface StmtPredicatevisitExitStmt in class ErrorPredicatepublic void visitEvalStmt(EvalStmt cs)
visitEvalStmt in interface StmtPredicatevisitEvalStmt in class ErrorPredicatepublic void visitDeclStmt(DeclStmt cs)
visitDeclStmt in interface StmtPredicatevisitDeclStmt in class ErrorPredicatepublic void visitNullStmt(NullStmt cs)
visitNullStmt in interface StmtPredicatevisitNullStmt in class ErrorPredicatepublic void visitLabelStmt(LabelStmt cs)
visitLabelStmt in interface StmtPredicatevisitLabelStmt in class ErrorPredicatepublic void visitLiteral(Literal li)
visitLiteral in interface ExprPredicatevisitLiteral in class ErrorPredicatepublic void visitAddressLiteral(AddressLiteral al)
visitAddressLiteral in interface ExprPredicatevisitAddressLiteral in class ErrorPredicatepublic void visitIntLiteral(IntLiteral ce)
visitIntLiteral in interface ExprPredicatevisitIntLiteral in class ErrorPredicatepublic void visitFloatLiteral(FloatLiteral ce)
visitFloatLiteral in interface ExprPredicatevisitFloatLiteral in class ErrorPredicatepublic void visitComplexLiteral(ComplexLiteral ce)
visitComplexLiteral in interface ExprPredicatevisitComplexLiteral in class ErrorPredicatepublic void visitSizeofLiteral(SizeofLiteral ce)
visitSizeofLiteral in interface ExprPredicatevisitSizeofLiteral in class ErrorPredicatepublic void visitStringLiteral(StringLiteral sl)
visitStringLiteral in interface ExprPredicatevisitStringLiteral in class ErrorPredicatepublic void visitFloatArrayLiteral(FloatArrayLiteral fal)
visitFloatArrayLiteral in interface ExprPredicatevisitFloatArrayLiteral in class ErrorPredicatepublic void visitIntArrayLiteral(IntArrayLiteral fal)
visitIntArrayLiteral in interface ExprPredicatevisitIntArrayLiteral in class ErrorPredicatepublic void visitAggregationElements(AggregationElements ag)
visitAggregationElements in interface ExprPredicatevisitAggregationElements in class ErrorPredicatepublic void visitBooleanLiteral(BooleanLiteral ce)
visitBooleanLiteral in interface ExprPredicatevisitBooleanLiteral in class ErrorPredicatepublic void visitCharLiteral(CharLiteral ce)
visitCharLiteral in interface ExprPredicatevisitCharLiteral in class ErrorPredicatepublic void visitVaArgOp(VaArgOp va)
visitVaArgOp in interface ExprPredicatevisitVaArgOp in class ErrorPredicatepublic void visitVaCopyOp(VaCopyOp p)
visitVaCopyOp in interface ExprPredicatevisitVaCopyOp in class ErrorPredicatepublic void visitVaEndOp(VaEndOp va)
visitVaEndOp in interface ExprPredicatevisitVaEndOp in class ErrorPredicatepublic void visitVaStartOp(VaStartOp va)
visitVaStartOp in interface ExprPredicatevisitVaStartOp in class ErrorPredicatepublic void visitIdAddressOp(IdAddressOp ce)
visitIdAddressOp in interface ExprPredicatevisitIdAddressOp in class ErrorPredicatepublic void visitIdValueOp(IdValueOp ce)
visitIdValueOp in interface ExprPredicatevisitIdValueOp in class ErrorPredicatepublic void visitStatementOp(StatementOp so)
visitStatementOp in interface ExprPredicatevisitStatementOp in class ErrorPredicatepublic void visitSeriesOp(SeriesOp op)
visitSeriesOp in interface ExprPredicatevisitSeriesOp in class ErrorPredicatepublic void visitParenthesesOp(ParenthesesOp p)
visitParenthesesOp in interface ExprPredicatevisitParenthesesOp in class ErrorPredicatepublic void visitAssignSimpleOp(AssignSimpleOp p)
visitAssignSimpleOp in interface ExprPredicatevisitAssignSimpleOp in class ErrorPredicatepublic void visitDefOp(DefOp p)
visitDefOp in interface ExprPredicatevisitDefOp in class ErrorPredicatepublic void visitPositiveOp(PositiveOp p)
visitPositiveOp in interface ExprPredicatevisitPositiveOp in class ErrorPredicatepublic void visitNegativeOp(NegativeOp no)
visitNegativeOp in interface ExprPredicatevisitNegativeOp in class ErrorPredicatepublic void visitTranscendentalOp(TranscendentalOp no)
visitTranscendentalOp in interface ExprPredicatevisitTranscendentalOp in class ErrorPredicatepublic void visitTranscendental2Op(Transcendental2Op no)
visitTranscendental2Op in interface ExprPredicatevisitTranscendental2Op in class ErrorPredicatepublic void visitAbsoluteValueOp(AbsoluteValueOp no)
visitAbsoluteValueOp in interface ExprPredicatevisitAbsoluteValueOp in class ErrorPredicatepublic void visitMinimumOp(MinimumOp deo)
min(a,b)
 to the series of CFG nodes.
 Converted to
 check = a < b if (check) then t = a else t = b twhere
t is the result value.
visitMinimumOp in interface ExprPredicatevisitMinimumOp in class ErrorPredicatepublic void visitMaximumOp(MaximumOp deo)
max(a,b)
 to the series of CFG nodes.
 Converted to
 check = a > b if (check) then t = a else t = b twhere
t is the result value.
visitMaximumOp in interface ExprPredicatevisitMaximumOp in class ErrorPredicatepublic void visitAdditionOp(AdditionOp deo)
visitAdditionOp in interface ExprPredicatevisitAdditionOp in class ErrorPredicatepublic void visitSubtractionOp(SubtractionOp deo)
visitSubtractionOp in interface ExprPredicatevisitSubtractionOp in class ErrorPredicatepublic void visitMultiplicationOp(MultiplicationOp deo)
visitMultiplicationOp in interface ExprPredicatevisitMultiplicationOp in class ErrorPredicatepublic void visitDivisionOp(DivisionOp deo)
visitDivisionOp in interface ExprPredicatevisitDivisionOp in class ErrorPredicatepublic void visitRemainderOp(RemainderOp deo)
visitRemainderOp in interface ExprPredicatevisitRemainderOp in class ErrorPredicatepublic void visitExponentiationOp(ExponentiationOp deo)
visitExponentiationOp in interface ExprPredicatevisitExponentiationOp in class ErrorPredicatepublic void visitPreDecrementOp(PreDecrementOp io)
visitPreDecrementOp in interface ExprPredicatevisitPreDecrementOp in class ErrorPredicatepublic void visitPreIncrementOp(PreIncrementOp io)
visitPreIncrementOp in interface ExprPredicatevisitPreIncrementOp in class ErrorPredicatepublic void visitPostDecrementOp(PostDecrementOp io)
visitPostDecrementOp in interface ExprPredicatevisitPostDecrementOp in class ErrorPredicatepublic void visitPostIncrementOp(PostIncrementOp io)
visitPostIncrementOp in interface ExprPredicatevisitPostIncrementOp in class ErrorPredicatepublic void visitEqualityOp(EqualityOp deo)
visitEqualityOp in interface ExprPredicatevisitEqualityOp in class ErrorPredicatepublic void visitGreaterEqualOp(GreaterEqualOp deo)
visitGreaterEqualOp in interface ExprPredicatevisitGreaterEqualOp in class ErrorPredicatepublic void visitGreaterOp(GreaterOp deo)
visitGreaterOp in interface ExprPredicatevisitGreaterOp in class ErrorPredicatepublic void visitLessOp(LessOp deo)
visitLessOp in interface ExprPredicatevisitLessOp in class ErrorPredicatepublic void visitLessEqualOp(LessEqualOp deo)
visitLessEqualOp in interface ExprPredicatevisitLessEqualOp in class ErrorPredicatepublic void visitNotEqualOp(NotEqualOp deo)
visitNotEqualOp in interface ExprPredicatevisitNotEqualOp in class ErrorPredicatepublic void visitBitComplementOp(BitComplementOp deo)
visitBitComplementOp in interface ExprPredicatevisitBitComplementOp in class ErrorPredicatepublic void visitBitAndOp(BitAndOp deo)
visitBitAndOp in interface ExprPredicatevisitBitAndOp in class ErrorPredicatepublic void visitBitXorOp(BitXorOp deo)
visitBitXorOp in interface ExprPredicatevisitBitXorOp in class ErrorPredicatepublic void visitBitOrOp(BitOrOp deo)
visitBitOrOp in interface ExprPredicatevisitBitOrOp in class ErrorPredicatepublic void visitBitShiftOp(BitShiftOp deo)
visitBitShiftOp in interface ExprPredicatevisitBitShiftOp in class ErrorPredicatepublic void visitMultiplicationAssignmentOp(MultiplicationAssignmentOp deo)
visitMultiplicationAssignmentOp in interface ExprPredicatevisitMultiplicationAssignmentOp in class ErrorPredicatepublic void visitDivisionAssignmentOp(DivisionAssignmentOp deo)
visitDivisionAssignmentOp in interface ExprPredicatevisitDivisionAssignmentOp in class ErrorPredicatepublic void visitRemainderAssignmentOp(RemainderAssignmentOp deo)
visitRemainderAssignmentOp in interface ExprPredicatevisitRemainderAssignmentOp in class ErrorPredicatepublic void visitAdditionAssignmentOp(AdditionAssignmentOp deo)
visitAdditionAssignmentOp in interface ExprPredicatevisitAdditionAssignmentOp in class ErrorPredicatepublic void visitSubtractionAssignmentOp(SubtractionAssignmentOp deo)
visitSubtractionAssignmentOp in interface ExprPredicatevisitSubtractionAssignmentOp in class ErrorPredicatepublic void visitBitShiftAssignmentOp(BitShiftAssignmentOp deo)
visitBitShiftAssignmentOp in interface ExprPredicatevisitBitShiftAssignmentOp in class ErrorPredicatepublic void visitBitAndAssignmentOp(BitAndAssignmentOp deo)
visitBitAndAssignmentOp in interface ExprPredicatevisitBitAndAssignmentOp in class ErrorPredicatepublic void visitBitXorAssignmentOp(BitXorAssignmentOp deo)
visitBitXorAssignmentOp in interface ExprPredicatevisitBitXorAssignmentOp in class ErrorPredicatepublic void visitBitOrAssignmentOp(BitOrAssignmentOp deo)
visitBitOrAssignmentOp in interface ExprPredicatevisitBitOrAssignmentOp in class ErrorPredicatepublic void visitNotOp(NotOp deo)
visitNotOp in interface ExprPredicatevisitNotOp in class ErrorPredicatepublic void visitAndOp(AndOp deo)
visitAndOp in interface ExprPredicatevisitAndOp in class ErrorPredicatepublic void visitOrOp(OrOp deo)
visitOrOp in interface ExprPredicatevisitOrOp in class ErrorPredicatepublic void visitAndConditionalOp(AndConditionalOp cs)
(a && b)
 to the series of CFG nodes.
 Converted to
 t = 0 if (a) then if (b) then t = 1 twhere
t is the result value.
visitAndConditionalOp in interface ExprPredicatevisitAndConditionalOp in class ErrorPredicatepublic void visitOrConditionalOp(OrConditionalOp cs)
(a || b)
 to the series of CFG nodes.
 Converted to
 t = 0 if (a) then t = 1 else if (b) then t = 1 twhere
t is the result value.
visitOrConditionalOp in interface ExprPredicatevisitOrConditionalOp in class ErrorPredicatepublic void visitExpressionIfOp(ExpressionIfOp cs)
visitExpressionIfOp in interface ExprPredicatevisitExpressionIfOp in class ErrorPredicatepublic void visitAddressOp(AddressOp aa)
visitAddressOp in interface ExprPredicatevisitAddressOp in class ErrorPredicatepublic void visitDereferenceOp(DereferenceOp dr)
visitDereferenceOp in interface ExprPredicatevisitDereferenceOp in class ErrorPredicatepublic void visitNilOp(NilOp deo)
visitNilOp in interface ExprPredicatevisitNilOp in class ErrorPredicatepublic void visitSelectOp(SelectOp s)
visitSelectOp in interface ExprPredicatevisitSelectOp in class ErrorPredicatepublic void visitSelectIndirectOp(SelectIndirectOp s)
visitSelectIndirectOp in interface ExprPredicatevisitSelectIndirectOp in class ErrorPredicatepublic void visitSubscriptValueOp(SubscriptValueOp sub)
visitSubscriptValueOp in interface ExprPredicatevisitSubscriptValueOp in class ErrorPredicatepublic void visitSubscriptAddressOp(SubscriptAddressOp sub)
visitSubscriptAddressOp in interface ExprPredicatevisitSubscriptAddressOp in class ErrorPredicatepublic void visitCallFunctionOp(CallFunctionOp co)
visitCallFunctionOp in interface ExprPredicatevisitCallFunctionOp in class ErrorPredicatepublic void visitTypeConversionOp(TypeConversionOp op)
visitTypeConversionOp in interface ExprPredicatevisitTypeConversionOp in class ErrorPredicatepublic void visitComplexOp(ComplexOp op)
visitComplexOp in interface ExprPredicatevisitComplexOp in class ErrorPredicate| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||