if (ClusterBackend.debugPrint)
if (ClusterBackend.debugging)
    public static void generateCode(FlatNode node) {        SIRFilter contentsAsFilter = (SIRFilter) node.contents;        // make sure SIRPopExpression's only pop one element        // code generation doesn't handle generating multiple pops        // from a single SIRPopExpression        //RemoveMultiPops.doit(contentsAsFilter);                FlatIRToCluster toC = new FlatIRToCluster(contentsAsFilter);        // the code below only deals with user-defined filters.        // on a PredefinedFilter we need to go generate special code.        if (node.contents instanceof SIRPredefinedFilter) {            IterFactory.createFactory().createIter(contentsAsFilter)                .accept(toC);            return;        }        // FieldInitMover.moveStreamInitialAssignments(contentsAsFilter;        // FieldProp.doPropagate(contentsAsFilter);        // Optimizations        if (ClusterBackend.debugPrint)            System.out.println("Optimizing "                               + ((SIRFilter) node.contents).getName() + "...");        Set<JLocalVariable> destroyed_vars = new HashSet<JLocalVariable>();        // ArrayDestroyer arrayDest=new ArrayDestroyer();        for (int i = 0; i < contentsAsFilter.getMethods().length; i++) {            // do not optimize init work function            if (node.contents instanceof SIRTwoStageFilter) {                JMethodDeclaration init_work = ((SIRTwoStageFilter) node.contents)                    .getInitWork();                if (contentsAsFilter.getMethods()[i].equals(init_work)) {                    continue;                }            }            Unroller unroller;            do {                do {                    // System.out.println("Unrolling..");                    unroller = new Unroller(new Hashtable());                    (contentsAsFilter).getMethods()[i].accept(unroller);                } while (unroller.hasUnrolled());                // System.out.println("Constant Propagating..");                (contentsAsFilter).getMethods()[i].accept(new Propagator(                                                                         new Hashtable()));                // System.out.println("Unrolling..");                unroller = new Unroller(new Hashtable());                (contentsAsFilter).getMethods()[i].accept(unroller);            } while (unroller.hasUnrolled());            // System.out.println("Flattening..");            (contentsAsFilter).getMethods()[i].accept(new BlockFlattener());            // System.out.println("Analyzing Branches..");            // (contentsAsFilter).getMethods()[i].accept(new            // BranchAnalyzer());            // System.out.println("Constant Propagating..");            (contentsAsFilter).getMethods()[i].accept(new Propagator(                                                                     new Hashtable()));            if (KjcOptions.destroyfieldarray) {                ArrayDestroyer arrayDest = new ArrayDestroyer();                (contentsAsFilter).getMethods()[i].accept(arrayDest);                arrayDest.addDestroyedLocals(destroyed_vars);            }            (contentsAsFilter).getMethods()[i].accept(new VarDeclRaiser());        }        // if(KjcOptions.destroyfieldarray) {        // arrayDest.destroyFieldArrays(contentsAsFilter);        // }        DeadCodeElimination.doit(contentsAsFilter);        IterFactory.createFactory().createIter(contentsAsFilter).accept(toC);    }