int itemsReceiving = itemsNeededToFire(filterInfo, iteration, init) *
int itemsReceiving = filterInfo.itemsNeededToFire(iteration, init) *
    private static void createReceiveCode(int iteration, FilterTraceNode node, Trace parent, 				   FilterInfo filterInfo, boolean init, boolean primePump, RawTile tile,				   RawChip rawChip)     {	//if this is the init and it is the first time executing	//and a twostage filter, use initpop and multiply this	//by the size of the type it is receiving	int itemsReceiving = itemsNeededToFire(filterInfo, iteration, init) *	    Util.getTypeSize(node.getFilter().getInputType());	//the source of the data, either a device or another raw tile	ComputeNode sourceNode = null;		if (node.getPrevious().isFilterTrace())	    sourceNode = rawChip.getTile(((FilterTraceNode)node.getPrevious()).getX(), 					 ((FilterTraceNode)node.getPrevious()).getY());	else {	    if (KjcOptions.magicdram && node.getPrevious().isInputTrace() &&		tile.hasIODevice()) 		sourceNode = tile.getIODevice();	    else 		return;	}		for (int j = 0; j < itemsReceiving; j++) {	    RouteIns ins = new RouteIns(tile);	    //add the route from the source tile to this	    //tile's compute processor	    ins.addRoute(sourceNode,			 tile);	    //append the instruction to the appropriate schedule	    //for the primepump append to the end of the init stage	    //so set final arg to true if init or primepump	    tile.getSwitchCode().appendIns(ins, (init || primePump));	}    }