/// <summary> /// Populates the given transformation manager with O1 optimizations. /// </summary> /// <param name="builder">The transformation manager to populate.</param> /// <param name="contextFlags">The context flags.</param> public static void AddO1Optimizations( this Transformer.Builder builder, ContextFlags contextFlags) { var dce = new DeadCodeElimination(); builder.AddBasicOptimizations(contextFlags); builder.Add(dce); builder.Add(new SSAConstruction()); builder.Add(dce); builder.Add(new InferAddressSpaces()); }
/// <summary> /// Populates the given transformation manager with O2 optimizations. /// </summary> /// <param name="builder">The transformation manager to populate.</param> /// <param name="contextFlags">The context flags.</param> public static void AddO2Optimizations( this Transformer.Builder builder, ContextFlags contextFlags) { var dce = new DeadCodeElimination(); builder.AddBasicOptimizations(contextFlags); builder.Add(dce); builder.Add(new SSAConstruction()); builder.Add(new LowerStructures()); builder.Add(dce); builder.Add(new IfConversion(IfConversionFlags.Default)); builder.Add(dce); builder.Add(new SimplifyControlFlow()); builder.Add(new InferAddressSpaces()); }