HashMap<String, String> exprPrinter = irGen.genExprPrinter(sched._aleg, sched._ast.condsTop, sched);
HashMap<String, String> exprToCall = irGen.genExprToCall(sched._aleg, sched._ast.condsTop, sched, exprPrinter);
LoopRecoverer ir = new LoopRecoverer(sched);
String visitOut =
backend.preVisits(sched._aleg, sched)
+ irGen.visits(sched._aleg, ir, sched.binding, sched.computeVisitOrders(), sched.classMap, exprToCall, exprPrinter, sched)
+ backend.postVisits(sched._aleg, sched);
String visitDispatches = irGen.visitDispatchers(sched.numVisits(), sched._aleg, sched.buSubInorderBuIn, sched.buSubInorderBus);
String fHeaders = irGen.functionHeaders(sched._ast);
String output = backend.output("", visitOut, visitDispatches, outputDir, false, false, sched._ast, sched, fHeaders, sched.binding, sched._aleg);