public BlockRange(InstructionBlock start, InstructionBlock end) { this.Start = start; this.End = end; }
private void RegisterBlock(InstructionBlock block) { this.blocks.Add(block.First.Offset, block); }
private void ComputeExceptionSuccessor(ExceptionHandler handler) { InstructionBlock block = this.GetBlock(handler.HandlerStart); this.GetBlock(handler.TryStart).AddExceptionSuccessor(block); }
private void ComputeInstructionData(HashSet <InstructionBlock> visited, int stackHeight, InstructionBlock block) { if (!visited.Contains(block)) { visited.Add(block); foreach (Instruction instruction in block) { stackHeight = this.ComputeInstructionData(stackHeight, instruction); } foreach (InstructionBlock block2 in block.Successors) { this.ComputeInstructionData(visited, stackHeight, block2); } } }