Exemple #1
0
 public override void AccumLeaveTrys(IMSet <BasicBlock> visited, ISeq <LeaveTryBasicBlock> acc, int depth)
 {
     if (!visited.Contains(this))
     {
         visited.Add(this);
         Target.AccumLeaveTrys(visited, acc, depth);
     }
 }
Exemple #2
0
 public override void AccumLeaveTrys(IMSet <BasicBlock> visited, ISeq <LeaveTryBasicBlock> acc, int depth)
 {
     if (!visited.Contains(this))
     {
         visited.Add(this);
         // Remember, this basic block is for 'leaves' which don't acutally leave any try context,
         // in other words are just a fancy way of emptying the stack.
         Target.AccumLeaveTrys(visited, acc, depth);
     }
 }
Exemple #3
0
 public override void AccumLeaveTrys(IMSet <BasicBlock> visited, ISeq <LeaveTryBasicBlock> acc, int depth)
 {
     if (!visited.Contains(this))
     {
         visited.Add(this);
         foreach (var bb in CaseTargets)
         {
             bb.AccumLeaveTrys(visited, acc, depth);
         }
         Fallthrough.AccumLeaveTrys(visited, acc, depth);
     }
 }
Exemple #4
0
 public override void AccumLeaveTrys(IMSet <BasicBlock> visited, ISeq <LeaveTryBasicBlock> acc, int depth)
 {
     if (!visited.Contains(this))
     {
         visited.Add(this);
         depth -= HandlerPopCount;
         if (depth >= 0)
         {
             Target.AccumLeaveTrys(visited, acc, depth);
         }
     }
 }
Exemple #5
0
 public override void AccumLeaveTrys(IMSet <BasicBlock> visited, ISeq <LeaveTryBasicBlock> acc, int depth)
 {
     if (!visited.Contains(this))
     {
         visited.Add(this);
         Body.AccumLeaveTrys(visited, acc, depth + 1);
         foreach (var h in Handlers)
         {
             h.AccumLeaveTrys(visited, acc, depth + 1);
         }
     }
 }
Exemple #6
0
 public override void AccumLeaveTrys(IMSet <BasicBlock> visited, ISeq <LeaveTryBasicBlock> acc, int depth)
 {
     if (!visited.Contains(this))
     {
         visited.Add(this);
         if (depth == 0)
         {
             // Only include leave's from the try we started from, not inner trys
             acc.Add(this);
         }
         else
         {
             depth -= HandlerPopCount;
             if (depth >= 0)
             {
                 Target.AccumLeaveTrys(visited, acc, depth);
             }
         }
     }
 }