loops.addStatement(GenerateCCode.makeForLoop(assignment,
loops.addStatement(GenerateCCode.makeDoLoop(assignment,
    private JStatement getRRCode(JBlock enclosingBlock, int mult, boolean isInit)    {	JBlock loops = new JBlock(null, new JStatement[0], null);		JVariableDefinition induction = 	    GenerateCCode.newIntLocal(RRCOUNTER, myUniqueID, 0);		//add the decl of the induction variable	enclosingBlock.addStatementFirst(new JVariableDeclarationStatement					(null, induction, null));		for (int i = 0; i < node.ways; i++) {	    JVariableDefinition innerVar = 		GenerateCCode.newIntLocal(RRINNERVAR + myUniqueID + "_", i, 0);	    	    FusionState downstream = FusionState.getFusionState(node.edges[i]);	    //add the decl of the induction variable	    enclosingBlock.addStatementFirst(new JVariableDeclarationStatement					     (null, innerVar, null));	    JLocalVariableExpression incomingBuffer = 		new JLocalVariableExpression(null,					     getBufferVar(null, isInit));	    JLocalVariableExpression outgoingBuffer = 		new JLocalVariableExpression		(null,		 downstream.getBufferVar(node, isInit));	    	    //if init outgoing[induction * weights[i] + innervar]	    //if steady outgoing[induction * weights[i] + innervar + peekbuffersize_outgoing]	    JAddExpression outgoingIndex = 		new JAddExpression(null,				   new JMultExpression(null, 						       new JLocalVariableExpression(null, induction),						       new JIntLiteral(node.weights[i])),				   new JLocalVariableExpression(null, innerVar));	    	    if (!isInit && downstream.getPeekBufferSize() > 0) 		outgoingIndex = new JAddExpression(null,						   outgoingIndex,						   new JIntLiteral(downstream.getPeekBufferSize()));	    //incoming[induction * totalWeights + partialSum + innerVar]	    JAddExpression incomingIndex = 		new JAddExpression(null,				   new JMultExpression(null,						       new JLocalVariableExpression(null, induction),						       new JIntLiteral(node.getTotalOutgoingWeights())),				   new JAddExpression(null,						      new JIntLiteral(node.getPartialOutgoingSum(i)),						      new JLocalVariableExpression(null, innerVar)));	    JArrayAccessExpression outgoingAccess = 		new JArrayAccessExpression(null,					   outgoingBuffer, outgoingIndex);	    	    JArrayAccessExpression incomingAccess = 		new JArrayAccessExpression(null,					   incomingBuffer, incomingIndex);	    	    JExpressionStatement assignment = 		new JExpressionStatement(null,					 new JAssignmentExpression(null,								   outgoingAccess,								   incomingAccess),					 null);	    loops.addStatement(GenerateCCode.makeForLoop(assignment,							 innerVar,							 new JIntLiteral(node.weights[i])));	}		return GenerateCCode.makeForLoop(loops, induction, new JIntLiteral(mult));    }