public Program(IL.Program program) { // Copy properties from the base class. FunctionList = program.FunctionList.ToList().ConvertAll((IL.Function func) => new Function(func)); EnvList = program.EnvList; Main = new Function(program.Main); }
static public Program Optimize(IL.Program program) { Program = program; OptimizedProgram = new Program(Program); OptimizedProgram = LocalOptimization.Optimize(OptimizedProgram); OptimizedProgram = ControlFlow.Core.Optimize(OptimizedProgram); TailRecursion.Optimize(OptimizedProgram); return(OptimizedProgram); }
static public IL.Program Optimize(IL.Program program) { Program = program; OptimizeAllFunctions(); return(Program); }
public static Program Optimize(IL.Program program) { return(new Program(program)); }