for (int i = 0; i < filterInfo.remaining * Util.getTypeSize(node.getFilter().getInputType()); i++) { if (node.getPrevious().isFilterTrace()) { RouteIns ins = new RouteIns(tile);   ins.addRoute(rawChip.getTile(((FilterTraceNode)node.getPrevious()).getX(), ((FilterTraceNode)node.getPrevious()).getY()), tile); tile.getSwitchCode().appendIns(ins, init); } else if (KjcOptions.magicdram) { InputTraceNode input = (InputTraceNode)node.getPrevious(); createMagicDramLoad(input, node, init, rawChip); } }
appendReceiveInstructions(node, filterInfo.remaining * Util.getTypeSize(node.getFilter().getInputType()), filterInfo, init, false, tile, rawChip);
    private static void createSwitchCodeBuffered(FilterTraceNode node, Trace parent, 						 FilterInfo filterInfo,						 boolean init, RawTile tile,						 RawChip rawChip, int mult)     {	//create the switch code for each firing 	createSwitchCode(node, parent, filterInfo, init, false, tile, rawChip, mult);		//now we must take care of the remaining items on the input tape 	//after the initialization phase if the upstream filter produces more than	//we consume in init	if (init && filterInfo.remaining > 0) {	    for (int i = 0; 		 i < filterInfo.remaining * Util.getTypeSize(node.getFilter().getInputType()); 		 i++) {		if (node.getPrevious().isFilterTrace()) {		    RouteIns ins = new RouteIns(tile);		    //add the route from the source tile to this		    //tile's compute processor		    ins.addRoute(rawChip.getTile(((FilterTraceNode)node.getPrevious()).getX(), 						 ((FilterTraceNode)node.getPrevious()).getY()),				 tile);		    tile.getSwitchCode().appendIns(ins, init);		}   		else if (KjcOptions.magicdram) {		    InputTraceNode input = (InputTraceNode)node.getPrevious();		    createMagicDramLoad(input, node, init, rawChip);		}	    }	}    }