if (buffer.redundant()) return;
    private static void generateFilterDRAMCommand(FilterTraceNode filterNode, FilterInfo filterInfo,					    RawTile tile, boolean init, boolean primepump)     {	//only generate a DRAM command for filters connected to input or output trace nodes	if (filterNode.getPrevious() != null &&	    filterNode.getPrevious().isInputTrace()) {	    OffChipBuffer buffer = OffChipBuffer.getBuffer(filterNode.getPrevious(),							   filterNode);	    //don't generate code for redundant buffers	    if (buffer.redundant())		return;	    //get the number of items received	    int items = filterInfo.totalItemsReceived(init, primepump); 	    	    //the transfer size rounded up to by divisible by a cacheline	    int bytes = 		Util.cacheLineDiv((items * Util.getTypeSize(filterNode.getFilter().getInputType())) *				  4);	    	    tile.getComputeCode().addDRAMCommand(true, init || primepump, bytes, buffer);	} 	else if (filterNode.getNext() != null &&		 filterNode.getNext().isOutputTrace()) {	    OffChipBuffer buffer = OffChipBuffer.getBuffer(filterNode,							   filterNode.getNext());	    	    //don't generate code for redundant buffers	    if (buffer.redundant())		return;	    //get the number of items sent	    int items = filterInfo.totalItemsSent(init, primepump);	    	    int bytes = 		Util.cacheLineDiv((items * Util.getTypeSize(filterNode.getFilter().getOutputType())) *				  4);	    	    tile.getComputeCode().addDRAMCommand(false, init || primepump, bytes, buffer);	}    }