Esempio n. 1
0
 private void EnableMoves(List <Node> nodes)
 {
     foreach (Node n in nodes)
     {
         foreach (Move m in NodeMoves(n))
         {
             if (ActiveMoves.Contains(m))
             {
                 ActiveMoves.Remove(m);
                 WorklistMoves.Add(m);
             }
         }
     }
 }
Esempio n. 2
0
 private void FreezeMoves(Node u)
 {
     foreach (Move m in NodeMoves(u))
     {
         Node x = GetNodeByTemp(m.Dst);
         Node y = GetNodeByTemp(m.Src);
         Node v;
         if (GetAlias(y) == GetAlias(u))
         {
             v = GetAlias(x);
         }
         else
         {
             v = GetAlias(y);
         }
         ActiveMoves.Remove(m);
         FrozenMoves.Add(m);
         if (NodeMoves(v).Count == 0 && v.Degree < K)
         {
             FreezeWorklist.Remove(v);
             SimplifyWorklist.Add(v);
         }
     }
 }