at.dms.kjc.sir
Class SIRToStreamIt

java.lang.Object
  extended by at.dms.kjc.sir.SIRToStreamIt
All Implemented Interfaces:
Constants, CodeGenerator, KjcVisitor, AttributeStreamVisitor, SLIRVisitor

public class SIRToStreamIt
extends Object
implements Constants, SLIRVisitor, AttributeStreamVisitor, CodeGenerator

Dump an SIR tree into a StreamIt program.

Version:
$Id: SIRToStreamIt.java,v 1.42 2007/11/26 20:30:12 rabbah Exp $
Author:
David Maze <dmaze@cag.lcs.mit.edu>

Field Summary
protected  String className
           
protected  boolean declOnly
           
protected  boolean isStruct
           
protected  boolean nl
           
protected  int portalCount
           
protected  Map<SIRPortal,String> portalNames
           
protected  SIROperator theStream
           
protected  boolean toplevel
           
 
Fields inherited from interface at.dms.kjc.Constants
CMP_VERSION, JAV_CLASS, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_THIS, JAV_THROWABLE, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LE, OPE_LNOT, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BIT, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_SHORT, TID_VECTOR, TID_VOID, VECTOR_EMPTY
 
Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INLINE, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_EXCEPTIONS, ATT_GENERIC, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_SOURCEFILE, ATT_SYNTHETIC, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Method Summary
 void close()
          Close the stream at the end
static void generateCode(JClassDeclaration flat)
          Generates code for and sends to System.err.
 CodegenPrintWriter getPrinter()
           
 String getString()
           
protected  void printType(CType s)
           
 void processGlobal(SIRGlobal self)
           
static void run(JPhylum phylum)
          Top-level entry point for running on a kopi phylum.
static void run(SIRStream str)
          Entry point for a stream without interfaces or structs.
static void run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs)
          Top-level entry point.
static void run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRGlobal[] globals)
           
static void run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, StringBuffer buffer)
          Top-level entry point that writes output to buffer param.
static void runBeforeCompiler(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs)
          Top-level entry point if you are processing SIR that has not been compiled at all.
static void runNonRecursive(SIRStream str)
           
static void runOnGlobal(SIRGlobal global)
           
 void visitAnyStream(SIROperator op)
           
 void visitArgs(JExpression[] args, int base)
          prints an array length expression
 void visitArrayAccessExpression(JArrayAccessExpression self, JExpression prefix, JExpression accessor)
          prints an array length expression
 void visitArrayInitializer(JArrayInitializer self, JExpression[] elems)
          prints an array initializer expression
 void visitArrayLengthExpression(JArrayLengthExpression self, JExpression prefix)
          prints an array length expression
 void visitAssignmentExpression(JAssignmentExpression self, JExpression left, JExpression right)
          prints an assignment expression
 void visitBinaryExpression(JBinaryExpression self, String oper, JExpression left, JExpression right)
          prints an array allocator expression
 void visitBitwiseComplementExpression(JUnaryExpression self, JExpression expr)
          prints a bitwise complement expression
 void visitBitwiseExpression(JBitwiseExpression self, int oper, JExpression left, JExpression right)
          prints a compound assignment expression
 void visitBlockStatement(JBlock self, JavaStyleComment[] comments)
          prints an expression statement
 void visitBooleanLiteral(boolean value)
          prints a boolean literal
 void visitBreakStatement(JBreakStatement self, String label)
          prints a break statement
 void visitByteLiteral(byte value)
          prints a byte literal
 void visitCastExpression(JCastExpression self, JExpression expr, CType type)
          prints a cast expression
 void visitCatchClause(JCatchClause self, JFormalParameter exception, JBlock body)
          prints an array length expression
 void visitCharLiteral(char value)
          prints a character literal
 void visitClassBody(JTypeDeclaration[] decls, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JPhylum[] body)
          visits a class body
 void visitClassDeclaration(JClassDeclaration self, int modifiers, String ident, String superName, CClassType[] interfaces, JPhylum[] body, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JTypeDeclaration[] decls)
          prints a class declaration
 void visitClassExpression(JClassExpression self, CType type)
          prints a class expression
 void visitClassImport(String name)
          prints an array length expression
 void visitComment(JavaStyleComment comment)
          prints an array length expression
 void visitComments(JavaStyleComment[] comments)
          prints an array length expression
 void visitCompilationUnit(JCompilationUnit self, JPackageName packageName, JPackageImport[] importedPackages, JClassImport[] importedClasses, JTypeDeclaration[] typeDeclarations)
          prints a compilation unit
 void visitCompoundAssignmentExpression(JCompoundAssignmentExpression self, int oper, JExpression left, JExpression right)
          prints a compound expression
 void visitCompoundStatement(JCompoundStatement self, JStatement[] body)
          prints a compound statement
 void visitCompoundStatement(JStatement[] body)
          prints a compound statement
 void visitConditionalExpression(JConditionalExpression self, JExpression cond, JExpression left, JExpression right)
          prints a conditional expression
 void visitConstructorCall(JConstructorCall self, boolean functorIsThis, JExpression[] params)
          prints an array length expression
 void visitConstructorDeclaration(JConstructorDeclaration self, int modifiers, String ident, JFormalParameter[] parameters, CClassType[] exceptions, JConstructorBlock body)
          prints a method declaration
 void visitContinueStatement(JContinueStatement self, String label)
          prints a continue statement
 void visitCreatePortalExpression(SIRCreatePortal self)
           
 void visitDoStatement(JDoStatement self, JExpression cond, JStatement body)
          prints a do statement
 void visitDoubleLiteral(double value)
          prints a double literal
 void visitDynamicToken(SIRDynamicToken self)
          Visits a dynamic token.
 void visitEmittedTextExpression(JEmittedTextExpression self, Object[] parts)
           
 void visitEmptyStatement(JEmptyStatement self)
          prints a empty statement
 void visitEqualityExpression(JEqualityExpression self, boolean equal, JExpression left, JExpression right)
          prints an equality expression
 void visitExpressionListStatement(JExpressionListStatement self, JExpression[] expr)
          prints an expression list statement
 void visitExpressionStatement(JExpressionStatement self, JExpression expr)
          prints an expression statement
 Object visitFeedbackLoop(SIRFeedbackLoop self, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JMethodDeclaration init, JMethodDeclaration initPath)
           
 void visitFieldDeclaration(JFieldDeclaration self, int modifiers, CType type, String ident, JExpression expr)
          prints a field declaration
 void visitFieldExpression(JFieldAccessExpression self, JExpression left, String ident)
          prints a field expression
 void visitFileReader(LIRFileReader self)
          Visits a file reader.
 void visitFileWriter(LIRFileWriter self)
          Visits a file writer.
 Object visitFilter(SIRFilter self, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JMethodDeclaration init, JMethodDeclaration work, CType inputType, CType outputType)
           
 void visitFloatLiteral(float value)
          prints a float literal
 void visitFormalParameters(JFormalParameter self, boolean isFinal, CType type, String ident)
          prints an array length expression
 void visitForStatement(JForStatement self, JStatement init, JExpression cond, JStatement incr, JStatement body)
          prints a for statement
 void visitFunctionPointer(LIRFunctionPointer self, String name)
          Visits a function pointer.
 void visitIdentity(LIRIdentity self)
          Visits an identity filter.
 void visitIfStatement(JIfStatement self, JExpression cond, JStatement thenClause, JStatement elseClause)
          prints a if statement
 void visitInitStatement(SIRInitStatement self, SIRStream stream)
          Visits an init statement.
 void visitInnerClassDeclaration(JClassDeclaration self, int modifiers, String ident, String superName, CClassType[] interfaces, JTypeDeclaration[] decls, JPhylum[] body, JFieldDeclaration[] fields, JMethodDeclaration[] methods)
          prints a class declaration
 void visitInstanceofExpression(JInstanceofExpression self, JExpression expr, CType dest)
          prints an instanceof expression
 void visitInterfaceDeclaration(JInterfaceDeclaration self, int modifiers, String ident, CClassType[] interfaces, JPhylum[] body, JMethodDeclaration[] methods)
          prints an interface declaration
 void visitInterfaceTable(SIRInterfaceTable self)
           
 void visitIntLiteral(int value)
          prints a int literal
 void visitJavadoc(JavadocComment comment)
          prints an array length expression
 Object visitJoiner(SIRJoiner self, SIRJoinType type, JExpression[] weights)
           
 void visitLabeledStatement(JLabeledStatement self, String label, JStatement stmt)
          prints a labeled statement
 void visitLatency(SIRLatency self)
          Visits a latency.
 void visitLatencyMax(SIRLatencyMax self)
          Visits a max latency.
 void visitLatencyRange(SIRLatencyRange self)
          Visits a latency range.
 void visitLatencySet(SIRLatencySet self)
          Visits a latency set.
 void visitLocalVariableExpression(JLocalVariableExpression self, String ident)
          prints a local variable expression
 void visitLogicalComplementExpression(JUnaryExpression self, JExpression expr)
          prints a logical complement expression
 void visitLongLiteral(long value)
          prints a long literal
 void visitMainFunction(LIRMainFunction self, String typeName, LIRFunctionPointer init, List<JStatement> initStatements)
          Visits a main function contents.
 void visitMarker(SIRMarker self)
          Visit SIRMarker.
 void visitMessageStatement(SIRMessageStatement self, JExpression portal, String iname, String ident, JExpression[] params, SIRLatency latency)
          Visits a message statement.
 void visitMethodCallExpression(JMethodCallExpression self, JExpression prefix, String ident, JExpression[] args)
          prints a method call expression
 void visitMethodDeclaration(JMethodDeclaration self, int modifiers, CType returnType, String ident, JFormalParameter[] parameters, CClassType[] exceptions, JBlock body)
          prints a method declaration
 void visitNameExpression(JNameExpression self, JExpression prefix, String ident)
          prints a name expression
 void visitNewArrayExpression(JNewArrayExpression self, CType type, JExpression[] dims, JArrayInitializer init)
          prints an array allocator expression
 void visitNode(LIRNode self)
          Visits an LIR node.
 void visitNullLiteral()
          prints a null literal
 void visitPackageImport(String name)
          prints an array length expression
 void visitPackageName(String name)
          prints an array length expression
 void visitParenthesedExpression(JParenthesedExpression self, JExpression expr)
          prints a parenthesed expression
 void visitPeekExpression(SIRPeekExpression self, CType tapeType, JExpression num)
          Visits a peek expression.
 Object visitPhasedFilter(SIRPhasedFilter self, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JMethodDeclaration init, JMethodDeclaration work, JMethodDeclaration[] initPhases, JMethodDeclaration[] phases, CType inputType, CType outputType)
           
 Object visitPipeline(SIRPipeline self, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JMethodDeclaration init)
           
 void visitPopExpression(SIRPopExpression self, CType tapeType)
          Visits a pop expression.
 void visitPortal(SIRPortal self)
          Visits a message-receiving portal.
 void visitPostfixExpression(JPostfixExpression self, int oper, JExpression expr)
          prints a postfix expression
 void visitPrefixExpression(JPrefixExpression self, int oper, JExpression expr)
          prints a prefix expression
 void visitPrintStatement(SIRPrintStatement self, JExpression exp)
          Visits a print statement.
 void visitPushExpression(SIRPushExpression self, CType tapeType, JExpression val)
          Visits a push expression.
 void visitQualifiedAnonymousCreation(JQualifiedAnonymousCreation self, JExpression prefix, String ident, JExpression[] params, JClassDeclaration decl)
          Prints an unqualified anonymous class instance creation expression.
 void visitQualifiedInstanceCreation(JQualifiedInstanceCreation self, JExpression prefix, String ident, JExpression[] params)
          Prints an unqualified instance creation expression.
 void visitRangeExpression(SIRRangeExpression self)
          Visits a range expression.
 void visitRegisterReceiver(LIRRegisterReceiver self, JExpression streamContext, SIRPortal portal, String childName, SIRInterfaceTable itable)
          Visits an LIR register-receiver statement.
 void visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
          Visits a register-receiver statement.
 void visitRegSenderStatement(SIRRegSenderStatement self, String fn, SIRLatency latency)
          Visits a register-sender statement.
 void visitRelationalExpression(JRelationalExpression self, int oper, JExpression left, JExpression right)
          prints a shift expressiona
 void visitReturnStatement(JReturnStatement self, JExpression expr)
          prints a return statement
 void visitSetBodyOfFeedback(LIRSetBodyOfFeedback self, JExpression streamContext, JExpression childContext, CType inputType, CType outputType, int inputSize, int outputSize)
          Visits a set body of feedback loop.
 void visitSetChild(LIRSetChild self, JExpression streamContext, JExpression childContext)
          Visits a child registration node.
 void visitSetChild(LIRSetChild self, JExpression streamContext, String childType, String childName)
          Visits a child registration node.
 void visitSetDecode(LIRSetDecode self, JExpression streamContext, LIRFunctionPointer fp)
          Visits a decoder registration node.
 void visitSetDelay(LIRSetDelay self, JExpression data, JExpression streamContext, int delay, CType type, LIRFunctionPointer fp)
          Visits a feedback loop delay node.
 void visitSetEncode(LIRSetEncode self, JExpression streamContext, LIRFunctionPointer fp)
          Visits an encoder registration node.
 void visitSetJoiner(LIRSetJoiner self, JExpression streamContext, SIRJoinType type, int ways, int[] weights)
          Visits a joiner-setting node.
 void visitSetLoopOfFeedback(LIRSetLoopOfFeedback self, JExpression streamContext, JExpression childContext, CType inputType, CType outputType, int inputSize, int outputSize)
          Visits a set loop of feedback loop.
 void visitSetParallelStream(LIRSetParallelStream self, JExpression streamContext, JExpression childContext, int position, CType inputType, CType outputType, int inputSize, int outputSize)
          Visits a set a parallel stream.
 void visitSetPeek(LIRSetPeek self, JExpression streamContext, int peek)
          Visits a peek-rate-setting node.
 void visitSetPop(LIRSetPop self, JExpression streamContext, int pop)
          Visits a pop-rate-setting node.
 void visitSetPush(LIRSetPush self, JExpression streamContext, int push)
          Visits a push-rate-setting node.
 void visitSetSplitter(LIRSetSplitter self, JExpression streamContext, SIRSplitType type, int ways, int[] weights)
          Visits a splitter-setting node.
 void visitSetStreamType(LIRSetStreamType self, JExpression streamContext, LIRStreamType streamType)
          Visits a stream-type-setting node.
 void visitSetTape(LIRSetTape self, JExpression streamContext, JExpression srcStruct, JExpression dstStruct, CType type, int size)
          Visits a tape registerer.
 void visitSetWork(LIRSetWork self, JExpression streamContext, LIRFunctionPointer fn)
          Visits a work-function-setting node.
 void visitShiftExpression(JShiftExpression self, int oper, JExpression left, JExpression right)
          prints a shift expression
 void visitShortLiteral(short value)
          prints a short literal
 Object visitSplitJoin(SIRSplitJoin self, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JMethodDeclaration init, SIRSplitter splitter, SIRJoiner joiner)
           
 Object visitSplitter(SIRSplitter self, SIRSplitType type, JExpression[] weights)
           
 void visitStringLiteral(String value)
          prints a string literal
 Object visitStructure(SIRStructure self, JFieldDeclaration[] fields)
           
 void visitSuperExpression(JSuperExpression self)
          prints a super expression
 void visitSwitchGroup(JSwitchGroup self, JSwitchLabel[] labels, JStatement[] stmts)
          prints an array length expression
 void visitSwitchLabel(JSwitchLabel self, JExpression expr)
          prints an array length expression
 void visitSwitchStatement(JSwitchStatement self, JExpression expr, JSwitchGroup[] body)
          prints a switch statement
 void visitSynchronizedStatement(JSynchronizedStatement self, JExpression cond, JStatement body)
          prints a synchronized statement
 void visitThisExpression(JThisExpression self, JExpression prefix)
          prints a this expression
 void visitThrowStatement(JThrowStatement self, JExpression expr)
          prints a throw statement
 void visitTryCatchStatement(JTryCatchStatement self, JBlock tryClause, JCatchClause[] catchClauses)
          prints a try-catch statement
 void visitTryFinallyStatement(JTryFinallyStatement self, JBlock tryClause, JBlock finallyClause)
          prints a try-finally statement
 void visitTypeDeclarationStatement(JTypeDeclarationStatement self, JTypeDeclaration decl)
          prints a type declaration statement
 void visitTypeNameExpression(JTypeNameExpression self, CType type)
          prints a type name expression
 void visitUnaryMinusExpression(JUnaryExpression self, JExpression expr)
          prints an unary minus expression
 void visitUnaryPlusExpression(JUnaryExpression self, JExpression expr)
          prints an unary plus expression
 void visitUnaryPromoteExpression(JUnaryPromote self, JExpression expr, CType type)
          prints a cast expression
 void visitUnqualifiedAnonymousCreation(JUnqualifiedAnonymousCreation self, CClassType type, JExpression[] params, JClassDeclaration decl)
          Prints an unqualified anonymous class instance creation expression.
 void visitUnqualifiedInstanceCreation(JUnqualifiedInstanceCreation self, CClassType type, JExpression[] params)
          Prints an unqualified instance creation expression.
 void visitVariableDeclarationStatement(JVariableDeclarationStatement self, JVariableDefinition[] vars)
          prints a variable declaration statement
 void visitVariableDefinition(JVariableDefinition self, int modifiers, CType type, String ident, JExpression expr)
          prints a variable declaration statement
 void visitVectorLiteral(JVectorLiteral self, JLiteral scalar)
          Print vector literal expression as scalar expression followed by "v";
 void visitWhileStatement(JWhileStatement self, JExpression cond, JStatement body)
          prints a while statement
 void visitWorkEntry(LIRWorkEntry self)
          Visits a work function entry.
 void visitWorkExit(LIRWorkExit self)
          Visits a work function exit.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

className

protected String className

isStruct

protected boolean isStruct

toplevel

protected boolean toplevel

nl

protected boolean nl

declOnly

protected boolean declOnly

portalCount

protected int portalCount

portalNames

protected Map<SIRPortal,String> portalNames

theStream

protected SIROperator theStream
Method Detail

getPrinter

public CodegenPrintWriter getPrinter()
Specified by:
getPrinter in interface CodeGenerator
Returns:
a printer for interleaving code created inside code generators with code created outside of descendents of classes implementing CodeGenerator.

runBeforeCompiler

public static void runBeforeCompiler(SIRStream str,
                                     JInterfaceDeclaration[] interfaces,
                                     SIRInterfaceTable[] interfaceTables,
                                     SIRStructure[] structs)
Top-level entry point if you are processing SIR that has not been compiled at all. -- i.e., the stream graph has not been unrolled. This includes the stream graph unrolling as part of its processing. If you are using 'static' sections and have not yet run StaticProp you may get error messages about non-constant parameters etc.


run

public static void run(SIRStream str,
                       JInterfaceDeclaration[] interfaces,
                       SIRInterfaceTable[] interfaceTables,
                       SIRStructure[] structs,
                       StringBuffer buffer)
Top-level entry point that writes output to buffer param. For use on stream graphs that have already been expanded in the compiler.


run

public static void run(SIRStream str,
                       JInterfaceDeclaration[] interfaces,
                       SIRInterfaceTable[] interfaceTables,
                       SIRStructure[] structs)
Top-level entry point. For use on stream graphs that have already been expanded in the compiler.


run

public static void run(SIRStream str)
Entry point for a stream without interfaces or structs.


run

public static void run(JPhylum phylum)
Top-level entry point for running on a kopi phylum.


run

public static void run(SIRStream str,
                       JInterfaceDeclaration[] interfaces,
                       SIRInterfaceTable[] interfaceTables,
                       SIRStructure[] structs,
                       SIRGlobal[] globals)

runOnGlobal

public static void runOnGlobal(SIRGlobal global)

runNonRecursive

public static void runNonRecursive(SIRStream str)

generateCode

public static void generateCode(JClassDeclaration flat)
Generates code for and sends to System.err.


close

public void close()
Close the stream at the end


getString

public String getString()

visitAnyStream

public void visitAnyStream(SIROperator op)

visitStructure

public Object visitStructure(SIRStructure self,
                             JFieldDeclaration[] fields)
Specified by:
visitStructure in interface AttributeStreamVisitor

processGlobal

public void processGlobal(SIRGlobal self)

visitFilter

public Object visitFilter(SIRFilter self,
                          JFieldDeclaration[] fields,
                          JMethodDeclaration[] methods,
                          JMethodDeclaration init,
                          JMethodDeclaration work,
                          CType inputType,
                          CType outputType)
Specified by:
visitFilter in interface AttributeStreamVisitor

visitPhasedFilter

public Object visitPhasedFilter(SIRPhasedFilter self,
                                JFieldDeclaration[] fields,
                                JMethodDeclaration[] methods,
                                JMethodDeclaration init,
                                JMethodDeclaration work,
                                JMethodDeclaration[] initPhases,
                                JMethodDeclaration[] phases,
                                CType inputType,
                                CType outputType)
Specified by:
visitPhasedFilter in interface AttributeStreamVisitor

visitSplitter

public Object visitSplitter(SIRSplitter self,
                            SIRSplitType type,
                            JExpression[] weights)
Specified by:
visitSplitter in interface AttributeStreamVisitor

visitJoiner

public Object visitJoiner(SIRJoiner self,
                          SIRJoinType type,
                          JExpression[] weights)
Specified by:
visitJoiner in interface AttributeStreamVisitor

visitPipeline

public Object visitPipeline(SIRPipeline self,
                            JFieldDeclaration[] fields,
                            JMethodDeclaration[] methods,
                            JMethodDeclaration init)
Specified by:
visitPipeline in interface AttributeStreamVisitor

visitSplitJoin

public Object visitSplitJoin(SIRSplitJoin self,
                             JFieldDeclaration[] fields,
                             JMethodDeclaration[] methods,
                             JMethodDeclaration init,
                             SIRSplitter splitter,
                             SIRJoiner joiner)
Specified by:
visitSplitJoin in interface AttributeStreamVisitor

visitFeedbackLoop

public Object visitFeedbackLoop(SIRFeedbackLoop self,
                                JFieldDeclaration[] fields,
                                JMethodDeclaration[] methods,
                                JMethodDeclaration init,
                                JMethodDeclaration initPath)
Specified by:
visitFeedbackLoop in interface AttributeStreamVisitor

visitCompilationUnit

public void visitCompilationUnit(JCompilationUnit self,
                                 JPackageName packageName,
                                 JPackageImport[] importedPackages,
                                 JClassImport[] importedClasses,
                                 JTypeDeclaration[] typeDeclarations)
prints a compilation unit

Specified by:
visitCompilationUnit in interface KjcVisitor

visitClassDeclaration

public void visitClassDeclaration(JClassDeclaration self,
                                  int modifiers,
                                  String ident,
                                  String superName,
                                  CClassType[] interfaces,
                                  JPhylum[] body,
                                  JFieldDeclaration[] fields,
                                  JMethodDeclaration[] methods,
                                  JTypeDeclaration[] decls)
prints a class declaration

Specified by:
visitClassDeclaration in interface KjcVisitor

visitClassBody

public void visitClassBody(JTypeDeclaration[] decls,
                           JFieldDeclaration[] fields,
                           JMethodDeclaration[] methods,
                           JPhylum[] body)
Description copied from interface: KjcVisitor
visits a class body

Specified by:
visitClassBody in interface KjcVisitor

visitInnerClassDeclaration

public void visitInnerClassDeclaration(JClassDeclaration self,
                                       int modifiers,
                                       String ident,
                                       String superName,
                                       CClassType[] interfaces,
                                       JTypeDeclaration[] decls,
                                       JPhylum[] body,
                                       JFieldDeclaration[] fields,
                                       JMethodDeclaration[] methods)
prints a class declaration

Specified by:
visitInnerClassDeclaration in interface KjcVisitor

visitInterfaceDeclaration

public void visitInterfaceDeclaration(JInterfaceDeclaration self,
                                      int modifiers,
                                      String ident,
                                      CClassType[] interfaces,
                                      JPhylum[] body,
                                      JMethodDeclaration[] methods)
prints an interface declaration

Specified by:
visitInterfaceDeclaration in interface KjcVisitor

visitFieldDeclaration

public void visitFieldDeclaration(JFieldDeclaration self,
                                  int modifiers,
                                  CType type,
                                  String ident,
                                  JExpression expr)
prints a field declaration

Specified by:
visitFieldDeclaration in interface KjcVisitor

visitMethodDeclaration

public void visitMethodDeclaration(JMethodDeclaration self,
                                   int modifiers,
                                   CType returnType,
                                   String ident,
                                   JFormalParameter[] parameters,
                                   CClassType[] exceptions,
                                   JBlock body)
prints a method declaration

Specified by:
visitMethodDeclaration in interface KjcVisitor

visitConstructorDeclaration

public void visitConstructorDeclaration(JConstructorDeclaration self,
                                        int modifiers,
                                        String ident,
                                        JFormalParameter[] parameters,
                                        CClassType[] exceptions,
                                        JConstructorBlock body)
prints a method declaration

Specified by:
visitConstructorDeclaration in interface KjcVisitor

visitWhileStatement

public void visitWhileStatement(JWhileStatement self,
                                JExpression cond,
                                JStatement body)
prints a while statement

Specified by:
visitWhileStatement in interface KjcVisitor

visitVariableDeclarationStatement

public void visitVariableDeclarationStatement(JVariableDeclarationStatement self,
                                              JVariableDefinition[] vars)
prints a variable declaration statement

Specified by:
visitVariableDeclarationStatement in interface KjcVisitor

visitVariableDefinition

public void visitVariableDefinition(JVariableDefinition self,
                                    int modifiers,
                                    CType type,
                                    String ident,
                                    JExpression expr)
prints a variable declaration statement

Specified by:
visitVariableDefinition in interface KjcVisitor

visitTryCatchStatement

public void visitTryCatchStatement(JTryCatchStatement self,
                                   JBlock tryClause,
                                   JCatchClause[] catchClauses)
prints a try-catch statement

Specified by:
visitTryCatchStatement in interface KjcVisitor

visitTryFinallyStatement

public void visitTryFinallyStatement(JTryFinallyStatement self,
                                     JBlock tryClause,
                                     JBlock finallyClause)
prints a try-finally statement

Specified by:
visitTryFinallyStatement in interface KjcVisitor

visitThrowStatement

public void visitThrowStatement(JThrowStatement self,
                                JExpression expr)
prints a throw statement

Specified by:
visitThrowStatement in interface KjcVisitor

visitSynchronizedStatement

public void visitSynchronizedStatement(JSynchronizedStatement self,
                                       JExpression cond,
                                       JStatement body)
prints a synchronized statement

Specified by:
visitSynchronizedStatement in interface KjcVisitor

visitSwitchStatement

public void visitSwitchStatement(JSwitchStatement self,
                                 JExpression expr,
                                 JSwitchGroup[] body)
prints a switch statement

Specified by:
visitSwitchStatement in interface KjcVisitor

visitReturnStatement

public void visitReturnStatement(JReturnStatement self,
                                 JExpression expr)
prints a return statement

Specified by:
visitReturnStatement in interface KjcVisitor

visitLabeledStatement

public void visitLabeledStatement(JLabeledStatement self,
                                  String label,
                                  JStatement stmt)
prints a labeled statement

Specified by:
visitLabeledStatement in interface KjcVisitor

visitIfStatement

public void visitIfStatement(JIfStatement self,
                             JExpression cond,
                             JStatement thenClause,
                             JStatement elseClause)
prints a if statement

Specified by:
visitIfStatement in interface KjcVisitor

visitForStatement

public void visitForStatement(JForStatement self,
                              JStatement init,
                              JExpression cond,
                              JStatement incr,
                              JStatement body)
prints a for statement

Specified by:
visitForStatement in interface KjcVisitor

visitCompoundStatement

public void visitCompoundStatement(JCompoundStatement self,
                                   JStatement[] body)
prints a compound statement

Specified by:
visitCompoundStatement in interface KjcVisitor

visitCompoundStatement

public void visitCompoundStatement(JStatement[] body)
prints a compound statement


visitExpressionStatement

public void visitExpressionStatement(JExpressionStatement self,
                                     JExpression expr)
prints an expression statement

Specified by:
visitExpressionStatement in interface KjcVisitor

visitExpressionListStatement

public void visitExpressionListStatement(JExpressionListStatement self,
                                         JExpression[] expr)
prints an expression list statement

Specified by:
visitExpressionListStatement in interface KjcVisitor

visitEmptyStatement

public void visitEmptyStatement(JEmptyStatement self)
prints a empty statement

Specified by:
visitEmptyStatement in interface KjcVisitor

visitDoStatement

public void visitDoStatement(JDoStatement self,
                             JExpression cond,
                             JStatement body)
prints a do statement

Specified by:
visitDoStatement in interface KjcVisitor

visitContinueStatement

public void visitContinueStatement(JContinueStatement self,
                                   String label)
prints a continue statement

Specified by:
visitContinueStatement in interface KjcVisitor

visitBreakStatement

public void visitBreakStatement(JBreakStatement self,
                                String label)
prints a break statement

Specified by:
visitBreakStatement in interface KjcVisitor

visitBlockStatement

public void visitBlockStatement(JBlock self,
                                JavaStyleComment[] comments)
prints an expression statement

Specified by:
visitBlockStatement in interface KjcVisitor

visitTypeDeclarationStatement

public void visitTypeDeclarationStatement(JTypeDeclarationStatement self,
                                          JTypeDeclaration decl)
prints a type declaration statement

Specified by:
visitTypeDeclarationStatement in interface KjcVisitor

visitUnaryPlusExpression

public void visitUnaryPlusExpression(JUnaryExpression self,
                                     JExpression expr)
prints an unary plus expression

Specified by:
visitUnaryPlusExpression in interface KjcVisitor

visitUnaryMinusExpression

public void visitUnaryMinusExpression(JUnaryExpression self,
                                      JExpression expr)
prints an unary minus expression

Specified by:
visitUnaryMinusExpression in interface KjcVisitor

visitBitwiseComplementExpression

public void visitBitwiseComplementExpression(JUnaryExpression self,
                                             JExpression expr)
prints a bitwise complement expression

Specified by:
visitBitwiseComplementExpression in interface KjcVisitor

visitLogicalComplementExpression

public void visitLogicalComplementExpression(JUnaryExpression self,
                                             JExpression expr)
prints a logical complement expression

Specified by:
visitLogicalComplementExpression in interface KjcVisitor

visitTypeNameExpression

public void visitTypeNameExpression(JTypeNameExpression self,
                                    CType type)
prints a type name expression

Specified by:
visitTypeNameExpression in interface KjcVisitor

visitThisExpression

public void visitThisExpression(JThisExpression self,
                                JExpression prefix)
prints a this expression

Specified by:
visitThisExpression in interface KjcVisitor

visitSuperExpression

public void visitSuperExpression(JSuperExpression self)
prints a super expression

Specified by:
visitSuperExpression in interface KjcVisitor

visitShiftExpression

public void visitShiftExpression(JShiftExpression self,
                                 int oper,
                                 JExpression left,
                                 JExpression right)
prints a shift expression

Specified by:
visitShiftExpression in interface KjcVisitor

visitRelationalExpression

public void visitRelationalExpression(JRelationalExpression self,
                                      int oper,
                                      JExpression left,
                                      JExpression right)
prints a shift expressiona

Specified by:
visitRelationalExpression in interface KjcVisitor

visitPrefixExpression

public void visitPrefixExpression(JPrefixExpression self,
                                  int oper,
                                  JExpression expr)
prints a prefix expression

Specified by:
visitPrefixExpression in interface KjcVisitor

visitPostfixExpression

public void visitPostfixExpression(JPostfixExpression self,
                                   int oper,
                                   JExpression expr)
prints a postfix expression

Specified by:
visitPostfixExpression in interface KjcVisitor

visitParenthesedExpression

public void visitParenthesedExpression(JParenthesedExpression self,
                                       JExpression expr)
prints a parenthesed expression

Specified by:
visitParenthesedExpression in interface KjcVisitor

visitQualifiedAnonymousCreation

public void visitQualifiedAnonymousCreation(JQualifiedAnonymousCreation self,
                                            JExpression prefix,
                                            String ident,
                                            JExpression[] params,
                                            JClassDeclaration decl)
Prints an unqualified anonymous class instance creation expression.

Specified by:
visitQualifiedAnonymousCreation in interface KjcVisitor

visitQualifiedInstanceCreation

public void visitQualifiedInstanceCreation(JQualifiedInstanceCreation self,
                                           JExpression prefix,
                                           String ident,
                                           JExpression[] params)
Prints an unqualified instance creation expression.

Specified by:
visitQualifiedInstanceCreation in interface KjcVisitor

visitUnqualifiedAnonymousCreation

public void visitUnqualifiedAnonymousCreation(JUnqualifiedAnonymousCreation self,
                                              CClassType type,
                                              JExpression[] params,
                                              JClassDeclaration decl)
Prints an unqualified anonymous class instance creation expression.

Specified by:
visitUnqualifiedAnonymousCreation in interface KjcVisitor

visitUnqualifiedInstanceCreation

public void visitUnqualifiedInstanceCreation(JUnqualifiedInstanceCreation self,
                                             CClassType type,
                                             JExpression[] params)
Prints an unqualified instance creation expression.

Specified by:
visitUnqualifiedInstanceCreation in interface KjcVisitor

visitNewArrayExpression

public void visitNewArrayExpression(JNewArrayExpression self,
                                    CType type,
                                    JExpression[] dims,
                                    JArrayInitializer init)
prints an array allocator expression

Specified by:
visitNewArrayExpression in interface KjcVisitor

visitNameExpression

public void visitNameExpression(JNameExpression self,
                                JExpression prefix,
                                String ident)
prints a name expression

Specified by:
visitNameExpression in interface KjcVisitor

visitBinaryExpression

public void visitBinaryExpression(JBinaryExpression self,
                                  String oper,
                                  JExpression left,
                                  JExpression right)
prints an array allocator expression

Specified by:
visitBinaryExpression in interface KjcVisitor

visitMethodCallExpression

public void visitMethodCallExpression(JMethodCallExpression self,
                                      JExpression prefix,
                                      String ident,
                                      JExpression[] args)
prints a method call expression

Specified by:
visitMethodCallExpression in interface KjcVisitor

visitLocalVariableExpression

public void visitLocalVariableExpression(JLocalVariableExpression self,
                                         String ident)
prints a local variable expression

Specified by:
visitLocalVariableExpression in interface KjcVisitor

visitInstanceofExpression

public void visitInstanceofExpression(JInstanceofExpression self,
                                      JExpression expr,
                                      CType dest)
prints an instanceof expression

Specified by:
visitInstanceofExpression in interface KjcVisitor

visitEqualityExpression

public void visitEqualityExpression(JEqualityExpression self,
                                    boolean equal,
                                    JExpression left,
                                    JExpression right)
prints an equality expression

Specified by:
visitEqualityExpression in interface KjcVisitor

visitConditionalExpression

public void visitConditionalExpression(JConditionalExpression self,
                                       JExpression cond,
                                       JExpression left,
                                       JExpression right)
prints a conditional expression

Specified by:
visitConditionalExpression in interface KjcVisitor

visitCompoundAssignmentExpression

public void visitCompoundAssignmentExpression(JCompoundAssignmentExpression self,
                                              int oper,
                                              JExpression left,
                                              JExpression right)
prints a compound expression

Specified by:
visitCompoundAssignmentExpression in interface KjcVisitor

visitFieldExpression

public void visitFieldExpression(JFieldAccessExpression self,
                                 JExpression left,
                                 String ident)
prints a field expression

Specified by:
visitFieldExpression in interface KjcVisitor

visitClassExpression

public void visitClassExpression(JClassExpression self,
                                 CType type)
prints a class expression

Specified by:
visitClassExpression in interface KjcVisitor

visitCastExpression

public void visitCastExpression(JCastExpression self,
                                JExpression expr,
                                CType type)
prints a cast expression

Specified by:
visitCastExpression in interface KjcVisitor

visitUnaryPromoteExpression

public void visitUnaryPromoteExpression(JUnaryPromote self,
                                        JExpression expr,
                                        CType type)
prints a cast expression

Specified by:
visitUnaryPromoteExpression in interface KjcVisitor

visitBitwiseExpression

public void visitBitwiseExpression(JBitwiseExpression self,
                                   int oper,
                                   JExpression left,
                                   JExpression right)
prints a compound assignment expression

Specified by:
visitBitwiseExpression in interface KjcVisitor

visitAssignmentExpression

public void visitAssignmentExpression(JAssignmentExpression self,
                                      JExpression left,
                                      JExpression right)
prints an assignment expression

Specified by:
visitAssignmentExpression in interface KjcVisitor

visitArrayLengthExpression

public void visitArrayLengthExpression(JArrayLengthExpression self,
                                       JExpression prefix)
prints an array length expression

Specified by:
visitArrayLengthExpression in interface KjcVisitor

visitArrayAccessExpression

public void visitArrayAccessExpression(JArrayAccessExpression self,
                                       JExpression prefix,
                                       JExpression accessor)
prints an array length expression

Specified by:
visitArrayAccessExpression in interface KjcVisitor

visitComments

public void visitComments(JavaStyleComment[] comments)
prints an array length expression

Specified by:
visitComments in interface KjcVisitor

visitComment

public void visitComment(JavaStyleComment comment)
prints an array length expression

Specified by:
visitComment in interface KjcVisitor

visitJavadoc

public void visitJavadoc(JavadocComment comment)
prints an array length expression

Specified by:
visitJavadoc in interface KjcVisitor

visitCreatePortalExpression

public void visitCreatePortalExpression(SIRCreatePortal self)
Specified by:
visitCreatePortalExpression in interface SLIRVisitor

visitInitStatement

public void visitInitStatement(SIRInitStatement self,
                               SIRStream stream)
Description copied from interface: SLIRVisitor
Visits an init statement.

Specified by:
visitInitStatement in interface SLIRVisitor

visitInterfaceTable

public void visitInterfaceTable(SIRInterfaceTable self)
Specified by:
visitInterfaceTable in interface SLIRVisitor

visitLatency

public void visitLatency(SIRLatency self)
Description copied from interface: SLIRVisitor
Visits a latency.

Specified by:
visitLatency in interface SLIRVisitor

visitLatencyMax

public void visitLatencyMax(SIRLatencyMax self)
Description copied from interface: SLIRVisitor
Visits a max latency.

Specified by:
visitLatencyMax in interface SLIRVisitor

visitLatencyRange

public void visitLatencyRange(SIRLatencyRange self)
Description copied from interface: SLIRVisitor
Visits a latency range.

Specified by:
visitLatencyRange in interface SLIRVisitor

visitLatencySet

public void visitLatencySet(SIRLatencySet self)
Description copied from interface: SLIRVisitor
Visits a latency set.

Specified by:
visitLatencySet in interface SLIRVisitor

visitMessageStatement

public void visitMessageStatement(SIRMessageStatement self,
                                  JExpression portal,
                                  String iname,
                                  String ident,
                                  JExpression[] params,
                                  SIRLatency latency)
Description copied from interface: SLIRVisitor
Visits a message statement.

Specified by:
visitMessageStatement in interface SLIRVisitor

visitRangeExpression

public void visitRangeExpression(SIRRangeExpression self)
Description copied from interface: SLIRVisitor
Visits a range expression.

Specified by:
visitRangeExpression in interface SLIRVisitor

visitDynamicToken

public void visitDynamicToken(SIRDynamicToken self)
Description copied from interface: SLIRVisitor
Visits a dynamic token.

Specified by:
visitDynamicToken in interface SLIRVisitor

visitPeekExpression

public void visitPeekExpression(SIRPeekExpression self,
                                CType tapeType,
                                JExpression num)
Description copied from interface: SLIRVisitor
Visits a peek expression.

Specified by:
visitPeekExpression in interface SLIRVisitor

visitPopExpression

public void visitPopExpression(SIRPopExpression self,
                               CType tapeType)
Description copied from interface: SLIRVisitor
Visits a pop expression.

Specified by:
visitPopExpression in interface SLIRVisitor

visitPortal

public void visitPortal(SIRPortal self)
Description copied from interface: SLIRVisitor
Visits a message-receiving portal.

Specified by:
visitPortal in interface SLIRVisitor

visitPrintStatement

public void visitPrintStatement(SIRPrintStatement self,
                                JExpression exp)
Description copied from interface: SLIRVisitor
Visits a print statement.

Specified by:
visitPrintStatement in interface SLIRVisitor

visitPushExpression

public void visitPushExpression(SIRPushExpression self,
                                CType tapeType,
                                JExpression val)
Description copied from interface: SLIRVisitor
Visits a push expression.

Specified by:
visitPushExpression in interface SLIRVisitor

visitRegReceiverStatement

public void visitRegReceiverStatement(SIRRegReceiverStatement self,
                                      JExpression portal,
                                      SIRStream receiver,
                                      JMethodDeclaration[] methods)
Description copied from interface: SLIRVisitor
Visits a register-receiver statement.

Specified by:
visitRegReceiverStatement in interface SLIRVisitor

visitRegSenderStatement

public void visitRegSenderStatement(SIRRegSenderStatement self,
                                    String fn,
                                    SIRLatency latency)
Description copied from interface: SLIRVisitor
Visits a register-sender statement.

Specified by:
visitRegSenderStatement in interface SLIRVisitor

visitMarker

public void visitMarker(SIRMarker self)
Description copied from interface: SLIRVisitor
Visit SIRMarker.

Specified by:
visitMarker in interface SLIRVisitor

visitFileReader

public void visitFileReader(LIRFileReader self)
Visits a file reader.

Specified by:
visitFileReader in interface SLIRVisitor

visitFileWriter

public void visitFileWriter(LIRFileWriter self)
Visits a file writer.

Specified by:
visitFileWriter in interface SLIRVisitor

visitIdentity

public void visitIdentity(LIRIdentity self)
Visits an identity filter.

Specified by:
visitIdentity in interface SLIRVisitor

visitSetChild

public void visitSetChild(LIRSetChild self,
                          JExpression streamContext,
                          String childType,
                          String childName)
Description copied from interface: SLIRVisitor
Visits a child registration node.

Specified by:
visitSetChild in interface SLIRVisitor

visitSetTape

public void visitSetTape(LIRSetTape self,
                         JExpression streamContext,
                         JExpression srcStruct,
                         JExpression dstStruct,
                         CType type,
                         int size)
Description copied from interface: SLIRVisitor
Visits a tape registerer.

Specified by:
visitSetTape in interface SLIRVisitor

visitFunctionPointer

public void visitFunctionPointer(LIRFunctionPointer self,
                                 String name)
Visits a function pointer.

Specified by:
visitFunctionPointer in interface SLIRVisitor

visitNode

public void visitNode(LIRNode self)
Visits an LIR node.

Specified by:
visitNode in interface SLIRVisitor

visitRegisterReceiver

public void visitRegisterReceiver(LIRRegisterReceiver self,
                                  JExpression streamContext,
                                  SIRPortal portal,
                                  String childName,
                                  SIRInterfaceTable itable)
Visits an LIR register-receiver statement.

Specified by:
visitRegisterReceiver in interface SLIRVisitor

visitSetChild

public void visitSetChild(LIRSetChild self,
                          JExpression streamContext,
                          JExpression childContext)
Visits a child registration node.


visitSetDecode

public void visitSetDecode(LIRSetDecode self,
                           JExpression streamContext,
                           LIRFunctionPointer fp)
Visits a decoder registration node.

Specified by:
visitSetDecode in interface SLIRVisitor

visitSetDelay

public void visitSetDelay(LIRSetDelay self,
                          JExpression data,
                          JExpression streamContext,
                          int delay,
                          CType type,
                          LIRFunctionPointer fp)
Visits a feedback loop delay node.

Specified by:
visitSetDelay in interface SLIRVisitor

visitSetEncode

public void visitSetEncode(LIRSetEncode self,
                           JExpression streamContext,
                           LIRFunctionPointer fp)
Visits an encoder registration node.

Specified by:
visitSetEncode in interface SLIRVisitor

visitSetJoiner

public void visitSetJoiner(LIRSetJoiner self,
                           JExpression streamContext,
                           SIRJoinType type,
                           int ways,
                           int[] weights)
Visits a joiner-setting node.

Specified by:
visitSetJoiner in interface SLIRVisitor

visitSetPeek

public void visitSetPeek(LIRSetPeek self,
                         JExpression streamContext,
                         int peek)
Visits a peek-rate-setting node.

Specified by:
visitSetPeek in interface SLIRVisitor

visitSetPop

public void visitSetPop(LIRSetPop self,
                        JExpression streamContext,
                        int pop)
Visits a pop-rate-setting node.

Specified by:
visitSetPop in interface SLIRVisitor

visitSetPush

public void visitSetPush(LIRSetPush self,
                         JExpression streamContext,
                         int push)
Visits a push-rate-setting node.

Specified by:
visitSetPush in interface SLIRVisitor

visitSetSplitter

public void visitSetSplitter(LIRSetSplitter self,
                             JExpression streamContext,
                             SIRSplitType type,
                             int ways,
                             int[] weights)
Visits a splitter-setting node.

Specified by:
visitSetSplitter in interface SLIRVisitor

visitSetStreamType

public void visitSetStreamType(LIRSetStreamType self,
                               JExpression streamContext,
                               LIRStreamType streamType)
Visits a stream-type-setting node.

Specified by:
visitSetStreamType in interface SLIRVisitor

visitSetWork

public void visitSetWork(LIRSetWork self,
                         JExpression streamContext,
                         LIRFunctionPointer fn)
Visits a work-function-setting node.

Specified by:
visitSetWork in interface SLIRVisitor

visitMainFunction

public void visitMainFunction(LIRMainFunction self,
                              String typeName,
                              LIRFunctionPointer init,
                              List<JStatement> initStatements)
Description copied from interface: SLIRVisitor
Visits a main function contents.

Specified by:
visitMainFunction in interface SLIRVisitor

visitSetBodyOfFeedback

public void visitSetBodyOfFeedback(LIRSetBodyOfFeedback self,
                                   JExpression streamContext,
                                   JExpression childContext,
                                   CType inputType,
                                   CType outputType,
                                   int inputSize,
                                   int outputSize)
Visits a set body of feedback loop.

Specified by:
visitSetBodyOfFeedback in interface SLIRVisitor

visitSetLoopOfFeedback

public void visitSetLoopOfFeedback(LIRSetLoopOfFeedback self,
                                   JExpression streamContext,
                                   JExpression childContext,
                                   CType inputType,
                                   CType outputType,
                                   int inputSize,
                                   int outputSize)
Visits a set loop of feedback loop.

Specified by:
visitSetLoopOfFeedback in interface SLIRVisitor

visitSetParallelStream

public void visitSetParallelStream(LIRSetParallelStream self,
                                   JExpression streamContext,
                                   JExpression childContext,
                                   int position,
                                   CType inputType,
                                   CType outputType,
                                   int inputSize,
                                   int outputSize)
Visits a set a parallel stream.

Specified by:
visitSetParallelStream in interface SLIRVisitor

visitWorkEntry

public void visitWorkEntry(LIRWorkEntry self)
Visits a work function entry.

Specified by:
visitWorkEntry in interface SLIRVisitor

visitWorkExit

public void visitWorkExit(LIRWorkExit self)
Visits a work function exit.

Specified by:
visitWorkExit in interface SLIRVisitor

visitSwitchLabel

public void visitSwitchLabel(JSwitchLabel self,
                             JExpression expr)
prints an array length expression

Specified by:
visitSwitchLabel in interface KjcVisitor

visitSwitchGroup

public void visitSwitchGroup(JSwitchGroup self,
                             JSwitchLabel[] labels,
                             JStatement[] stmts)
prints an array length expression

Specified by:
visitSwitchGroup in interface KjcVisitor

visitCatchClause

public void visitCatchClause(JCatchClause self,
                             JFormalParameter exception,
                             JBlock body)
prints an array length expression

Specified by:
visitCatchClause in interface KjcVisitor

visitBooleanLiteral

public void visitBooleanLiteral(boolean value)
prints a boolean literal

Specified by:
visitBooleanLiteral in interface KjcVisitor

visitByteLiteral

public void visitByteLiteral(byte value)
prints a byte literal

Specified by:
visitByteLiteral in interface KjcVisitor

visitCharLiteral

public void visitCharLiteral(char value)
prints a character literal

Specified by:
visitCharLiteral in interface KjcVisitor

visitDoubleLiteral

public void visitDoubleLiteral(double value)
prints a double literal

Specified by:
visitDoubleLiteral in interface KjcVisitor

visitFloatLiteral

public void visitFloatLiteral(float value)
prints a float literal

Specified by:
visitFloatLiteral in interface KjcVisitor

visitIntLiteral

public void visitIntLiteral(int value)
prints a int literal

Specified by:
visitIntLiteral in interface KjcVisitor

visitLongLiteral

public void visitLongLiteral(long value)
prints a long literal

Specified by:
visitLongLiteral in interface KjcVisitor

visitShortLiteral

public void visitShortLiteral(short value)
prints a short literal

Specified by:
visitShortLiteral in interface KjcVisitor

visitStringLiteral

public void visitStringLiteral(String value)
prints a string literal

Specified by:
visitStringLiteral in interface KjcVisitor

visitNullLiteral

public void visitNullLiteral()
prints a null literal

Specified by:
visitNullLiteral in interface KjcVisitor

visitPackageName

public void visitPackageName(String name)
prints an array length expression

Specified by:
visitPackageName in interface KjcVisitor

visitPackageImport

public void visitPackageImport(String name)
prints an array length expression

Specified by:
visitPackageImport in interface KjcVisitor

visitClassImport

public void visitClassImport(String name)
prints an array length expression

Specified by:
visitClassImport in interface KjcVisitor

visitFormalParameters

public void visitFormalParameters(JFormalParameter self,
                                  boolean isFinal,
                                  CType type,
                                  String ident)
prints an array length expression

Specified by:
visitFormalParameters in interface KjcVisitor

visitArgs

public void visitArgs(JExpression[] args,
                      int base)
prints an array length expression


visitConstructorCall

public void visitConstructorCall(JConstructorCall self,
                                 boolean functorIsThis,
                                 JExpression[] params)
prints an array length expression

Specified by:
visitConstructorCall in interface KjcVisitor

visitArrayInitializer

public void visitArrayInitializer(JArrayInitializer self,
                                  JExpression[] elems)
prints an array initializer expression

Specified by:
visitArrayInitializer in interface KjcVisitor

visitVectorLiteral

public void visitVectorLiteral(JVectorLiteral self,
                               JLiteral scalar)
Print vector literal expression as scalar expression followed by "v";

Specified by:
visitVectorLiteral in interface SLIRVisitor

printType

protected void printType(CType s)

visitEmittedTextExpression

public void visitEmittedTextExpression(JEmittedTextExpression self,
                                       Object[] parts)
Specified by:
visitEmittedTextExpression in interface KjcVisitor