示例#1
0
 public BlockRange(InstructionBlock start, InstructionBlock end)
 {
     this.Start = start;
     this.End   = end;
 }
示例#2
0
 private void RegisterBlock(InstructionBlock block)
 {
     this.blocks.Add(block.First.Offset, block);
 }
示例#3
0
        private void ComputeExceptionSuccessor(ExceptionHandler handler)
        {
            InstructionBlock block = this.GetBlock(handler.HandlerStart);

            this.GetBlock(handler.TryStart).AddExceptionSuccessor(block);
        }
示例#4
0
 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);
         }
     }
 }