/// <summary> /// Populates the given transformation manager with O1 optimizations. /// </summary> /// <param name="builder">The transformation manager to populate.</param> /// <param name="inliningMode">The inlining mode to use.</param> public static void AddO1Optimizations( this Transformer.Builder builder, InliningMode inliningMode) { builder.AddBasicOptimizations(inliningMode); builder.AddStructureOptimizations(); builder.AddLoopOptimizations(); builder.AddConditionalOptimizations(); builder.AddAddressSpaceOptimizations(); }
/// <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) { builder.AddBasicOptimizations(contextFlags); builder.AddStructureOptimizations(); builder.AddLoopOptimizations(); builder.AddConditionalOptimizations(); builder.AddAddressSpaceOptimizations(); }
/// <summary> /// Populates the given transformation manager with O2 optimizations. /// </summary> /// <param name="builder">The transformation manager to populate.</param> /// <param name="inliningMode">The inlining mode to use.</param> public static void AddO2Optimizations( this Transformer.Builder builder, InliningMode inliningMode) { builder.AddBasicOptimizations(inliningMode); builder.AddStructureOptimizations(); builder.AddLoopOptimizations(); // Append experimental if-condition conversion pass builder.Add(new IfConditionConversion()); // Remove all temporarily generated values that are no longer required builder.Add(new DeadCodeElimination()); builder.AddConditionalOptimizations(); builder.AddAddressSpaceOptimizations(); }
/// <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) { builder.AddBasicOptimizations(contextFlags); builder.AddStructureOptimizations(); builder.AddLoopOptimizations(); // Converts local memory arrays into structure values builder.Add(new SSAStructureConstruction()); // Append experimental if-condition conversion pass builder.Add(new IfConditionConversion()); // Remove all temporarily generated values that are no longer required builder.Add(new DeadCodeElimination()); builder.AddConditionalOptimizations(); builder.AddAddressSpaceOptimizations(); }