JBlock workBlock = (JBlock)ObjectDeepCloner.deepCopy(filter.getWork().getBody()); block.addStatement(workBlock);
for (int i = 0; i < unrollFactor; i++) { JBlock workBlock = (JBlock)ObjectDeepCloner. deepCopy(filter.getWork().getBody()); block.addStatement(workBlock); }
    JStatement generateSteadyStateLoop(SIRFilter filter)     {	JBlock block = new JBlock(null, new JStatement[0], null);		//add the statements to receive pop items into the buffer	block.addStatement	    (makeForLoop(receiveCode(filter),			 exeIndex,			 new JIntLiteral(filter.getPopInt())));		//clone and inline the work function	JBlock workBlock = 	    (JBlock)ObjectDeepCloner.deepCopy(filter.getWork().getBody());	block.addStatement(workBlock);		//return the infinite loop	return new JWhileStatement(null, 				   new JBooleanLiteral(null, true),				   block, 				   null);    }