/// <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(); }
/// <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(); }
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); }
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); }