if (KjcOptions.destroyfieldarray) { method.accept(arrayDest); }
    public void optimize(SIRCodeUnit unit) {        ArrayDestroyer arrayDest=new ArrayDestroyer();        for (JMethodDeclaration method : unit.getMethods()) {            if (! optimizeThisMethod(unit,method)) {                continue;            }            Unroller unroller;            do {                do {                    unroller = new Unroller(new Hashtable<JLocalVariable,JLiteral>());                    method.accept(unroller);                } while (unroller.hasUnrolled());                method.accept(new Propagator(new Hashtable<JLocalVariable,Object>()));                unroller = new Unroller(new Hashtable<JLocalVariable,JLiteral>());                method.accept(unroller);            } while (unroller.hasUnrolled());            method.accept(new BlockFlattener());            method.accept(new Propagator(new Hashtable<JLocalVariable,Object>()));            method.accept(arrayDest);            method.accept(new VarDeclRaiser());        }        if (KjcOptions.destroyfieldarray) {            arrayDest.destroyFieldArrays(unit);        }        DeadCodeElimination.doit(unit);    }