Example #1
0
            /// <summary>
            /// Constructs a new builder.
            /// </summary>
            /// <param name="methodBuilder">The parent method builder.</param>
            /// <param name="block">The parent block.</param>
            internal Builder(Method.Builder methodBuilder, BasicBlock block)
                : base(block)
            {
                MethodBuilder = methodBuilder;

                values         = block.values;
                insertPosition = Count;
                block.CompactTerminator();
            }
Example #2
0
            /// <summary>
            /// Constructs a new builder.
            /// </summary>
            /// <param name="methodBuilder">The parent method builder.</param>
            /// <param name="block">The parent block.</param>
            internal Builder(Method.Builder methodBuilder, BasicBlock block)
                : base(block)
            {
                Debug.Assert(methodBuilder != null, "Invalid method builder");
                Debug.Assert(block != null, "Invalid block");
                MethodBuilder = methodBuilder;

                values         = block.values;
                insertPosition = Count;
                block.CompactTerminator();
            }
Example #3
0
 internal bool GetOrCreateBuilder(
     Method.Builder functionBuilder,
     out Builder resolvedBuilder)
 {
     resolvedBuilder = builder;
     if (resolvedBuilder != null)
     {
         return(false);
     }
     this.AssertNotNull(functionBuilder);
     this.Assert(functionBuilder.Method == Method);
     resolvedBuilder = builder = new Builder(functionBuilder, this);
     return(true);
 }
Example #4
0
 internal bool GetOrCreateBuilder(
     Method.Builder functionBuilder,
     out Builder resolvedBuilder)
 {
     resolvedBuilder = builder;
     if (resolvedBuilder != null)
     {
         return(false);
     }
     Debug.Assert(functionBuilder != null, "Invalid function builder");
     Debug.Assert(functionBuilder.Method == Method, "Invalid IR function");
     resolvedBuilder = builder = new Builder(functionBuilder, this);
     return(true);
 }