コード例 #1
0
 internal ValueEnumerator(Enumerator iterator)
 {
     enumerator = iterator;
     // There must be at least a single node
     enumerator.MoveNext();
     valueEnumerator = enumerator.Current.Block.GetEnumerator();
 }
コード例 #2
0
ファイル: Scope.cs プロジェクト: nguyenvuduc/ILGPU
 /// <summary>
 /// Constructs a new basic block enumerator.
 /// </summary>
 /// <param name="scope">The parent function scope.</param>
 internal Enumerator(Scope scope)
 {
     functionEnumerator = scope.GetEnumerator();
     // There must be at least a single block
     functionEnumerator.MoveNext();
     valueEnumerator = functionEnumerator.Current.GetEnumerator();
 }
コード例 #3
0
ファイル: SCCs.cs プロジェクト: saimarpaka/ILGPU
                public bool MoveNext()
                {
                    while (true)
                    {
                        if (valueEnumerator.MoveNext())
                        {
                            return(true);
                        }

                        // Try to move to the next node
                        if (!enumerator.MoveNext())
                        {
                            return(false);
                        }

                        valueEnumerator = enumerator.Current.GetEnumerator();
                    }
                }
コード例 #4
0
                /// <summary cref="IEnumerator.MoveNext"/>
                public bool MoveNext()
                {
                    while (true)
                    {
                        if (valueEnumerator.MoveNext())
                        {
                            return(true);
                        }
                        valueEnumerator.Dispose();

                        // Try to move to the next function
                        if (!functionEnumerator.MoveNext())
                        {
                            return(false);
                        }

                        valueEnumerator = functionEnumerator.Current.GetEnumerator();
                    }
                }