Beispiel #1
0
 private void MarkPartitioningVertices(int startInstructionBlockIndex)
 {
     V_0 = this.cfg.get_Blocks()[startInstructionBlockIndex];
     V_1 = this.FindMostDistantSuccessor(V_0);
     if (InstructionBlock.op_Equality(V_1, null))
     {
         return;
     }
     if (V_1.get_Index() == this.cfg.get_Blocks().Count <InstructionBlock>() - 1)
     {
         return;
     }
     V_2 = null;
     V_3 = V_0.get_Index() + 1;
     while (V_3 <= V_1.get_Index())
     {
         if (!InstructionBlock.op_Equality(V_2, null))
         {
             V_4 = this.FindMostDistantSuccessor(this.cfg.get_Blocks()[V_3]);
             if (V_4.get_Index() > V_2.get_Index())
             {
                 V_2 = V_4;
             }
         }
         else
         {
             V_2 = this.FindMostDistantSuccessor(this.cfg.get_Blocks()[V_3]);
         }
         V_3 = V_3 + 1;
     }
     if ((long)V_1.get_Index() < (ulong)this.mostDistantInstructionBlockIndexReached)
     {
         if (InstructionBlock.op_Inequality(V_2, null) && (long)V_2.get_Index() > (ulong)this.mostDistantInstructionBlockIndexReached)
         {
             this.mostDistantInstructionBlockIndexReached = V_2.get_Index();
         }
     }
     else
     {
         if (!InstructionBlock.op_Inequality(V_2, null))
         {
             this.verticesThatPartitionGraph.Add(V_1);
         }
         else
         {
             if (V_2.get_Index() <= V_1.get_Index())
             {
                 this.verticesThatPartitionGraph.Add(V_1);
             }
         }
     }
     this.MarkPartitioningVertices(V_1.get_Index());
     return;
 }
Beispiel #2
0
 public void RemoveFromSuccessors(InstructionBlock toBeRemoved)
 {
     V_0 = new InstructionBlock[(int)this.get_Successors().Length - 1];
     V_1 = 0;
     V_2 = 0;
     while (V_1 < (int)this.get_Successors().Length)
     {
         if (InstructionBlock.op_Inequality(this.get_Successors()[V_1], toBeRemoved))
         {
             stackVariable24      = V_2;
             V_2                  = stackVariable24 + 1;
             V_0[stackVariable24] = this.get_Successors()[V_1];
         }
         V_1 = V_1 + 1;
     }
     this.set_Successors(V_0);
     return;
 }