1 write to Ordinal
Microsoft.CodeAnalysis (1)
Operations\BasicBlock.cs (1)
41Ordinal = ordinal;
221 references to Ordinal
GenerateDocumentationAndConfigFiles (16)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
src\roslyn\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) 229if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 242toVisit.Add(branch.Destination.Ordinal); 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 393toVisit.Add(entryBlock.Ordinal);
ILLink.RoslynAnalyzer (1)
DataFlow\ControlFlowGraphProxy.cs (1)
30return base.ToString() + $"[{Block.Ordinal}]";
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\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
src\roslyn\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) 229if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 242toVisit.Add(branch.Destination.Ordinal); 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 393toVisit.Add(entryBlock.Ordinal);
Microsoft.CodeAnalysis.AnalyzerUtilities (67)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
src\roslyn\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\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\ControlFlowBranchExtensions.cs (2)
12controlFlowBranch.Source.Ordinal >= controlFlowBranch.Destination.Ordinal;
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysis.cs (36)
70using var pendingBlocksNeedingAtLeastOnePass = PooledSortedSet<int>.GetInstance(cfg.Blocks.Select(b => b.Ordinal)); 114worklist.Add(entry.Ordinal); 137blockToUniqueInputFlowMap[block.Ordinal] = null; 147worklist.Add(block.Ordinal); 151pendingBlocksNeedingAtLeastOnePass.Add(block.Ordinal); 202unreachableBlocks.Add(block.Ordinal); 254var isUnreachableBlock = unreachableBlocks.Contains(block.Ordinal); 263inputDataFromInfeasibleBranchesMap.TryGetValue(block.Ordinal, out var currentInfeasibleData)) 269inputDataFromInfeasibleBranchesMap.Remove(block.Ordinal); 280Debug.Assert(block.EnclosingRegion.FirstBlockOrdinal == block.Ordinal); 285blockToUniqueInputFlowMap[block.Ordinal] = null; 300block.EnclosingRegion.EnclosingRegion.FirstBlockOrdinal == block.Ordinal) 366var isBackEdge = block.Ordinal >= successorBlock.Ordinal; 367if (isUnreachableBlock && !unreachableBlocks.Contains(successorBlock.Ordinal)) 376if (inputDataFromInfeasibleBranchesMap.TryGetValue(successorBlock.Ordinal, out TAnalysisData currentInfeasibleData)) 384inputDataFromInfeasibleBranchesMap[successorBlock.Ordinal] = newSuccessorInput; 398blockToUniqueInputFlowMap.TryGetValue(successorBlock.Ordinal, out var uniqueInputBranchOpt) && 400uniqueInputBranchOpt.Value.Ordinal != block.Ordinal || 409blockToUniqueInputFlowMap[successorBlock.Ordinal] = null; 443blockToUniqueInputFlowMap[successorBlock.Ordinal] = (block.Ordinal, blockToSuccessorBranchKind); 454var dominatorBlockOrdinal = loopRangeMap[successorBlock.Ordinal]; 455Debug.Assert(dominatorBlockOrdinal >= block.Ordinal); 456Debug.Assert(dominatorBlockOrdinal >= successorBlock.Ordinal); 458for (int i = successorBlock.Ordinal; i <= dominatorBlockOrdinal + 1; i++) 466worklist.Add(successorBlock.Ordinal); 498if (catchRegion == null || sourceBlock.Ordinal >= catchRegion.FirstBlockOrdinal) 587predecessorWithBranch.predecessorBlock.Ordinal < block.Ordinal && 588pendingBlocksNeedingAtLeastOnePass.Contains(predecessorWithBranch.predecessorBlock.Ordinal)); 594if (block.EnclosingRegion?.FirstBlockOrdinal == block.Ordinal) 625if (finallyBlockSuccessorsMap.TryGetValue(basicBlock.Ordinal, out var finallySuccessors)) 817if (branch?.Destination != null && branch.IsBackEdge() && !loopRangeMap.ContainsKey(branch.Destination.Ordinal)) 819var maxSuccessorOrdinal = Math.Max(branch.Destination.GetMaxSuccessorOrdinal(), branch.Source.Ordinal); 826loopRangeMap.Add(branch.Destination.Ordinal, maxSuccessorOrdinal);
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (1)
479block.EnclosingRegion.LastBlockOrdinal == block.Ordinal)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\ThrownExceptionInfo.cs (1)
23BasicBlockOrdinal = block.Ordinal;
src\roslyn\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) 229if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 242toVisit.Add(branch.Destination.Ordinal); 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 393toVisit.Add(entryBlock.Ordinal);
Microsoft.CodeAnalysis.CodeStyle (16)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
src\roslyn\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) 229if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 242toVisit.Add(branch.Destination.Ordinal); 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 393toVisit.Add(entryBlock.Ordinal);
Microsoft.CodeAnalysis.NetAnalyzers (51)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\Extensions\BasicBlockExtensions.cs (11)
124if (ordinalToCompare != basicBlock.Ordinal) 164if (basicBlock.EnclosingRegion?.FirstBlockOrdinal != basicBlock.Ordinal) 173if (enclosingRegion?.FirstBlockOrdinal != basicBlock.Ordinal) 190=> Math.Max(basicBlock.FallThroughSuccessor?.Destination?.Ordinal ?? -1, 191basicBlock.ConditionalSuccessor?.Destination?.Ordinal ?? -1); 211processedOrdinals.Add(sourceBlock.Ordinal); 217Debug.Assert(ordinal < basicBlock.Ordinal); 245if (!processedOrdinals.Contains(destinationBlock.Ordinal)) 247unprocessedOrdinals.Add(destinationBlock.Ordinal); 250return destinationBlock.Ordinal <= basicBlock.Ordinal;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\Extensions\ControlFlowBranchExtensions.cs (2)
11controlFlowBranch.Source.Ordinal >= controlFlowBranch.Destination.Ordinal;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysis.cs (36)
68using var pendingBlocksNeedingAtLeastOnePass = PooledSortedSet<int>.GetInstance(cfg.Blocks.Select(b => b.Ordinal)); 112worklist.Add(entry.Ordinal); 135blockToUniqueInputFlowMap[block.Ordinal] = null; 145worklist.Add(block.Ordinal); 149pendingBlocksNeedingAtLeastOnePass.Add(block.Ordinal); 200unreachableBlocks.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) 590if (predecessorBlock.Ordinal < block.Ordinal && pendingBlocksNeedingAtLeastOnePass.Contains(predecessorBlock.Ordinal)) 602if (block.EnclosingRegion?.FirstBlockOrdinal == block.Ordinal) 633if (finallyBlockSuccessorsMap.TryGetValue(basicBlock.Ordinal, out var finallySuccessors)) 825if (branch?.Destination != null && branch.IsBackEdge() && !loopRangeMap.ContainsKey(branch.Destination.Ordinal)) 827var maxSuccessorOrdinal = Math.Max(branch.Destination.GetMaxSuccessorOrdinal(), branch.Source.Ordinal); 834loopRangeMap.Add(branch.Destination.Ordinal, maxSuccessorOrdinal);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (1)
476block.EnclosingRegion.LastBlockOrdinal == block.Ordinal)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\ThrownExceptionInfo.cs (1)
21BasicBlockOrdinal = block.Ordinal;
Microsoft.CodeAnalysis.ResxSourceGenerator (16)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
src\roslyn\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) 229if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 242toVisit.Add(branch.Destination.Ordinal); 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 393toVisit.Add(entryBlock.Ordinal);
Microsoft.CodeAnalysis.Workspaces (16)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
src\roslyn\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) 229if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 242toVisit.Add(branch.Destination.Ordinal); 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 393toVisit.Add(entryBlock.Ordinal);
Roslyn.Diagnostics.Analyzers (16)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (3)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
src\roslyn\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) 229if (StepThroughFinally(current.EnclosingRegion, branch.Destination.Ordinal, ref currentAnalsisData)) 242toVisit.Add(branch.Destination.Ordinal); 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal); 393toVisit.Add(entryBlock.Ordinal);