} else { System.out.println("Children All Identities! Ignoring.");
    private void fuseAll() {	// how many tiles we have occupied	int count = 0;	// whether or not we're done trying to fuse	boolean done = false;	boolean aggressive = false;	do {	    // get how many tiles we have	    RawFlattener flattener = new RawFlattener(str);	    count = flattener.getNumTiles();	    System.out.println("Partitioner detects " + count + " tiles.");	    StreamItDot.printGraph(str, "during-fusion.dot");	    if (count>target) {		// get the containers in the order of work for filters		// immediately contained		StreamItDot.printGraph(str, "partition.dot");		WorkList list = WorkEstimate.getWorkEstimate(str).getSortedContainerWork();		// work up through this list until we fuse something		for (int i=0; i<list.size(); i++) {		    SIRContainer cont = list.getContainer(i);		    if (cont instanceof SIRSplitJoin) {			System.out.println("trying to fuse " + cont.size() + "-way split " + cont);			List children=cont.getChildren();			boolean attempt=false;			for(int j=0;j<children.size();j++) {			    SIROperator child=(SIROperator)children.get(j);			    if((!(child instanceof SIRSplitter))&&(!(child instanceof SIRJoiner))&&!(child instanceof SIRIdentity)) {				//System.out.println("FOUND:"+children.get(j));				attempt=true;			    }			} if(aggressive||attempt) {			    SIRStream newstr = FuseSplit.fuse((SIRSplitJoin)cont);			    // if we fused something, quit loop			    if (newstr!=cont) { 				aggressive=false;				break;			    }			} else {			    System.out.println("Children All Identities! Ignoring.");			}		    } else if (cont instanceof SIRPipeline) {			System.out.println("trying to fuse " + (count-target) + " from " 					   + cont.size() + "-long pipe " + cont);			int num = FusePipe.fuse((SIRPipeline)cont, count-target);			if (num!=0) { break; }		    }		    // if we made it to the end of the last loop, then		    // we're done trying to fuse (we didn't reach target.)		    if (i==list.size()-1) { 			if(aggressive)			    done=true;			else			    aggressive = true;		    }		}	    }	} while (count>target && !done);    }