1 write to Ordinal
Microsoft.CodeAnalysis (1)
Operations\BasicBlock.cs (1)
41Ordinal = ordinal;
327 references to Ordinal
GenerateDocumentationAndConfigFiles (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
ILLink.RoslynAnalyzer (5)
DataFlow\ControlFlowGraphProxy.cs (1)
30return base.ToString() + $"[{Block.Ordinal}]";
TrimAnalysis\TrimDataFlowAnalysis.cs (4)
115TraceWrite("block " + block.Block.Ordinal + ": "); 132TraceWrite(predProxy.Block.Ordinal + " "); 199var source = branch.Source.Block.Ordinal; 200var target = branch.Destination?.Block.Ordinal;
Metrics (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Metrics.Legacy (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis (6)
Operations\ControlFlowBranch.cs (2)
72result = CollectRegions(Destination.Ordinal, Source.EnclosingRegion).ToImmutableAndFree(); 115ArrayBuilder<ControlFlowRegion> builder = CollectRegions(Source.Ordinal, Destination.EnclosingRegion);
Operations\ControlFlowGraphBuilder.BasicBlockBuilder.cs (2)
271int result = x.Source.Ordinal - y.Source.Ordinal;
Operations\ControlFlowRegion.cs (2)
34/// Ordinal (<see cref="BasicBlock.Ordinal"/>) of the first <see cref="BasicBlock"/> within the region. 39/// Ordinal (<see cref="BasicBlock.Ordinal"/>) of the last <see cref="BasicBlock"/> within the region.
Microsoft.CodeAnalysis.Analyzers (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.AnalyzerUtilities (67)
src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\BasicBlockExtensions.cs (11)
106if (ordinalToCompare != basicBlock.Ordinal) 146if (basicBlock.EnclosingRegion?.FirstBlockOrdinal != basicBlock.Ordinal) 155if (enclosingRegion?.FirstBlockOrdinal != basicBlock.Ordinal) 172=> Math.Max(basicBlock.FallThroughSuccessor?.Destination?.Ordinal ?? -1, 173basicBlock.ConditionalSuccessor?.Destination?.Ordinal ?? -1); 193processedOrdinals.Add(sourceBlock.Ordinal); 199Debug.Assert(ordinal < basicBlock.Ordinal); 227if (!processedOrdinals.Contains(destinationBlock.Ordinal)) 229unprocessedOrdinals.Add(destinationBlock.Ordinal); 232return destinationBlock.Ordinal <= basicBlock.Ordinal;
src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\ControlFlowBranchExtensions.cs (2)
12controlFlowBranch.Source.Ordinal >= controlFlowBranch.Destination.Ordinal;
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysis.cs (36)
71using var pendingBlocksNeedingAtLeastOnePass = PooledSortedSet<int>.GetInstance(cfg.Blocks.Select(b => b.Ordinal)); 115worklist.Add(entry.Ordinal); 138blockToUniqueInputFlowMap[block.Ordinal] = null; 148worklist.Add(block.Ordinal); 152pendingBlocksNeedingAtLeastOnePass.Add(block.Ordinal); 203unreachableBlocks.Add(block.Ordinal); 255var isUnreachableBlock = unreachableBlocks.Contains(block.Ordinal); 264inputDataFromInfeasibleBranchesMap.TryGetValue(block.Ordinal, out var currentInfeasibleData)) 270inputDataFromInfeasibleBranchesMap.Remove(block.Ordinal); 281Debug.Assert(block.EnclosingRegion.FirstBlockOrdinal == block.Ordinal); 286blockToUniqueInputFlowMap[block.Ordinal] = null; 301block.EnclosingRegion.EnclosingRegion.FirstBlockOrdinal == block.Ordinal) 367var isBackEdge = block.Ordinal >= successorBlock.Ordinal; 368if (isUnreachableBlock && !unreachableBlocks.Contains(successorBlock.Ordinal)) 377if (inputDataFromInfeasibleBranchesMap.TryGetValue(successorBlock.Ordinal, out TAnalysisData currentInfeasibleData)) 385inputDataFromInfeasibleBranchesMap[successorBlock.Ordinal] = newSuccessorInput; 399blockToUniqueInputFlowMap.TryGetValue(successorBlock.Ordinal, out var uniqueInputBranchOpt) && 401uniqueInputBranchOpt.Value.Ordinal != block.Ordinal || 410blockToUniqueInputFlowMap[successorBlock.Ordinal] = null; 444blockToUniqueInputFlowMap[successorBlock.Ordinal] = (block.Ordinal, blockToSuccessorBranchKind); 455var dominatorBlockOrdinal = loopRangeMap[successorBlock.Ordinal]; 456Debug.Assert(dominatorBlockOrdinal >= block.Ordinal); 457Debug.Assert(dominatorBlockOrdinal >= successorBlock.Ordinal); 459for (int i = successorBlock.Ordinal; i <= dominatorBlockOrdinal + 1; i++) 467worklist.Add(successorBlock.Ordinal); 499if (catchRegion == null || sourceBlock.Ordinal >= catchRegion.FirstBlockOrdinal) 588predecessorWithBranch.predecessorBlock.Ordinal < block.Ordinal && 589pendingBlocksNeedingAtLeastOnePass.Contains(predecessorWithBranch.predecessorBlock.Ordinal)); 595if (block.EnclosingRegion?.FirstBlockOrdinal == block.Ordinal) 626if (finallyBlockSuccessorsMap.TryGetValue(basicBlock.Ordinal, out var finallySuccessors)) 818if (branch?.Destination != null && branch.IsBackEdge() && !loopRangeMap.ContainsKey(branch.Destination.Ordinal)) 820var maxSuccessorOrdinal = Math.Max(branch.Destination.GetMaxSuccessorOrdinal(), branch.Source.Ordinal); 827loopRangeMap.Add(branch.Destination.Ordinal, maxSuccessorOrdinal);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (1)
479block.EnclosingRegion.LastBlockOrdinal == block.Ordinal)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\ThrownExceptionInfo.cs (1)
23BasicBlockOrdinal = block.Ordinal;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.BannedApiAnalyzers (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.CodeStyle (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.PublicApiAnalyzers (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.ResxSourceGenerator (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.Test.Utilities (41)
Compilation\ControlFlowGraphVerifier.cs (26)
126Assert.Equal(i, block.Ordinal); 173enterRegions(block.EnclosingRegion, block.Ordinal); 195Assert.True(previousPredecessorOrdinal < predecessor.Ordinal); 196previousPredecessorOrdinal = predecessor.Ordinal; 197Assert.Same(blocks[predecessor.Ordinal], predecessor); 251Assert.Same(blocks[conditionalBranch.Destination.Ordinal], conditionalBranch.Destination); 290Assert.Same(blocks[nextBranch.Destination.Ordinal], nextBranch.Destination); 296Assert.Equal(block.EnclosingRegion.LastBlockOrdinal, block.Ordinal); 318if (currentRegion.LastBlockOrdinal == block.Ordinal && i != blocks.Length - 1) 320leaveRegions(block.EnclosingRegion, block.Ordinal); 395if (predecessor.Source.Ordinal >= i) 399if (region.FirstBlockOrdinal != block.Ordinal) 464while (region.LastBlockOrdinal == block.Ordinal) 486for (int i = block.Ordinal; i > 0 && lastOperation == null; i--) 517if (region.LastBlockOrdinal != block.Ordinal && referencedIds.Contains(id)) 522IFlowCaptureReferenceOperation[] referencesAfter = getFlowCaptureReferenceOperationsInRegion(region, block.Ordinal + 1).Where(r => r.Id.Equals(id)).ToArray(); 541foreach (IFlowCaptureOperation candidate in getFlowCaptureOperationsFromBlocksInRegion(region, block.Ordinal)) 568foreach (IFlowCaptureOperation candidate in getFlowCaptureOperationsFromBlocksInRegion(region, block.Ordinal)) 602foreach (IFlowCaptureOperation candidate in getFlowCaptureOperationsFromBlocksInRegion(region, block.Ordinal)) 645foreach (IFlowCaptureOperation candidate in getFlowCaptureOperationsFromBlocksInRegion(region, block.Ordinal)) 688foreach (IFlowCaptureOperation candidate in getFlowCaptureOperationsFromBlocksInRegion(region, block.Ordinal)) 717if (branch.Destination.Ordinal > branch.Source.Ordinal) 754PooledHashSet<CaptureId> entryState = entryStates[block.Ordinal]; 759entryStates[block.Ordinal] = entryState; 1771return $"B{block.Ordinal}{idSuffix}";
Compilation\FlowAnalysis\BasicBlockReachabilityDataFlowAnalyzer.cs (2)
63_visited[basicBlock.Ordinal] = isReachable; 66public override bool GetCurrentAnalysisData(BasicBlock basicBlock) => _visited[basicBlock.Ordinal];
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
Microsoft.CodeAnalysis.Workspaces (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Roslyn.Diagnostics.Analyzers (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Test.Utilities (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Text.Analyzers (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (13)
82toVisit.Add(firstBlock.Ordinal); 105if (unreachableBlock.Ordinal >= firstBlockOrdinal && unreachableBlock.Ordinal <= lastBlockOrdinal) 127if (current.Ordinal < firstBlockOrdinal || current.Ordinal > lastBlockOrdinal) 129outOfRangeBlocksToVisit.Add(current.Ordinal); 133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 176current.Ordinal == lastBlockOrdinal) 184if (current.Ordinal == lastBlockOrdinal) 228if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 241toVisit.Add(branch.Destination.Ordinal); 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 392toVisit.Add(entryBlock.Ordinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))