/// <summary> /// Sets the branch target. /// </summary> /// <param name="block">The basic block.</param> public void AddBranchTarget(BasicBlock block) { Debug.Assert(block != null); (branchTargets ?? (branchTargets = new List <BasicBlock>(1))).Add(block); Block?.AddBranchInstruction(this); }
public void UpdateBranchTarget(int index, BasicBlock block) { // no change, skip update if (branchTargets[index] == block) return; Block.RemoveBranchInstruction(this); branchTargets[index] = block; Block.AddBranchInstruction(this); }
/// <summary> /// Sets the branch target. /// </summary> /// <param name="block">The basic block.</param> public void AddBranchTarget(BasicBlock block) { Debug.Assert(block != null); if (branchTargets == null) { branchTargets = new List <BasicBlock>(1); } branchTargets.Add(block); if (Block != null) { Block.AddBranchInstruction(this); } }