p.print(Util.networkSendPrefix(dynamicOutput, Util.getBaseType(tapeType)));
p.print(Util.networkSendPrefix(dynamicOutput, CommonUtils.getBaseType(tapeType)));
    private void pushArray(SIRPushExpression self,                            CType tapeType,                           JExpression val)     {        assert !dynamicOutput : "pushing of non-scalars at SSG boundary not supported yet";        CType baseType = ((CArrayType)tapeType).getBaseType();        String dims[] = Util.makeString(((CArrayType)tapeType).getDims());        String ARRAY_INDEX = "ARRAY_PUSH_INDEX";        //start a new block        p.print("{\n");        //print the decls of the loop indices        p.print ("  int ");        for (int i = 0; i < dims.length; i++) {            p.print(ARRAY_INDEX + i);            if (i < dims.length - 1)                p.print(", ");        }        p.print(";\n");        //print the for loops        for (int i = 0; i < dims.length; i++) {            p.print("for (" + ARRAY_INDEX + i + " = 0; " +                    ARRAY_INDEX + i + " < " + dims[i] + " ; " +                    ARRAY_INDEX + i + "++)\n");        }//        if(KjcOptions.altcodegen || KjcOptions.decoupled) {            p.print("{\n");            p.print(Util.networkSendPrefix(dynamicOutput, Util.getBaseType(tapeType)));            val.accept(this);            for (int i = 0; i < dims.length; i++) {                p.print("[" + ARRAY_INDEX + i + "]");            }            p.print(Util.networkSendSuffix(dynamicOutput));            p.print(";\n}\n");//        } else {//            p.print("{");//            p.print("static_send((" + baseType + ") ");//            val.accept(this);//            for (int i = 0; i < dims.length; i++) {//                p.print("[" + ARRAY_INDEX + i + "]");//            }//            p.print(");\n}\n");//        }        p.print("}\n");    }