41 instantiations of RegionBuilder
Microsoft.CodeAnalysis (41)
Operations\ControlFlowGraphBuilder.cs (41)
116
var root = new
RegionBuilder
(ControlFlowRegionKind.Root);
122
builder.EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime));
1386
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
1484
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
1524
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.ErroneousBody));
1639
var resultCaptureRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, isStackSpillRegion: true);
1835
frameOpt.RegionBuilderOpt = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, isStackSpillRegion: true);
3570
var locals = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
3660
tryAndFinallyRegion = new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally);
3662
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
3668
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndCatch));
3669
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
3691
filterAndHandlerRegion = new
RegionBuilder
(ControlFlowRegionKind.FilterAndHandler, catchClause.ExceptionType, catchClause.Locals);
3694
var filterRegion = new
RegionBuilder
(ControlFlowRegionKind.Filter, catchClause.ExceptionType);
3710
var handlerRegion = new
RegionBuilder
(ControlFlowRegionKind.Catch, catchClause.ExceptionType,
3758
var finallyRegion = new
RegionBuilder
(ControlFlowRegionKind.Finally);
3952
var usingRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
4071
resourceRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
4081
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4082
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4114
var finallyRegion = new
RegionBuilder
(ControlFlowRegionKind.Finally);
4302
var lockRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime,
4353
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4354
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4396
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Finally));
4451
var enumeratorCaptureRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
4476
regionForCollection = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: ImmutableArray.Create(local));
4493
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4494
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4507
var localsRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
4742
var loopRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
5464
var switchRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
5729
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
5745
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.ConditionLocals));
5773
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
5831
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.StaticLocalInitializer));
6789
var constructorRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
6849
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime));
7270
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: initializer.Locals));
7716
var armScopeRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: arm.Locals);
7917
var innerCaptureRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
96 references to RegionBuilder
Microsoft.CodeAnalysis (96)
Operations\ControlFlowGraphBuilder.cs (86)
34
private readonly PooledDictionary<BasicBlockBuilder,
RegionBuilder
> _regionMap;
36
private
RegionBuilder
? _currentRegion;
69
_regionMap = PooledDictionary<BasicBlockBuilder,
RegionBuilder
>.GetInstance();
73
private
RegionBuilder
CurrentRegionRequired
116
var
root = new RegionBuilder(ControlFlowRegionKind.Root);
494
private static void Pack(ArrayBuilder<BasicBlockBuilder> blocks,
RegionBuilder
root, PooledDictionary<BasicBlockBuilder,
RegionBuilder
> regionMap)
511
private static bool PackRegions(
RegionBuilder
root, ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<BasicBlockBuilder,
RegionBuilder
> regionMap)
515
bool PackRegion(
RegionBuilder
region)
524
RegionBuilder
r = region.Regions[i];
552
RegionBuilder
subRegion = region.Regions[0];
571
RegionBuilder
subRegion = region.Regions[i];
614
private static void MergeSubRegionAndFree(
RegionBuilder
subRegion, ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<BasicBlockBuilder,
RegionBuilder
> regionMap, bool canHaveEmptyRegion = false)
618
RegionBuilder
enclosing = subRegion.Enclosing;
638
foreach (
RegionBuilder
r in subRegion.Regions)
670
private static bool PackBlocks(ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<BasicBlockBuilder,
RegionBuilder
> regionMap)
672
ArrayBuilder<
RegionBuilder
>? fromCurrent = null;
673
ArrayBuilder<
RegionBuilder
>? fromDestination = null;
674
ArrayBuilder<
RegionBuilder
>? fromPredecessor = null;
729
RegionBuilder
currentRegion = regionMap[block];
743
RegionBuilder
currentRegion = regionMap[block];
758
RegionBuilder
tryAndFinally = currentRegion.Enclosing;
762
RegionBuilder
@try = tryAndFinally.Regions.First();
782
RegionBuilder
tryAndFinallyEnclosing = tryAndFinally.Enclosing;
838
RegionBuilder
? implicitEntryRegion = tryGetImplicitEntryRegion(block, currentRegion);
887
RegionBuilder
? destinationRegionOpt = next.Destination == null ? null : regionMap[next.Destination];
963
RegionBuilder
currentRegion = regionMap[block];
1014
RegionBuilder
? tryGetImplicitEntryRegion(BasicBlockBuilder block, [DisallowNull]
RegionBuilder
? currentRegion)
1038
void removeBlock(BasicBlockBuilder block,
RegionBuilder
region)
1051
RegionBuilder
enclosing = region.Enclosing;
1064
RegionBuilder
enclosing = region.Enclosing;
1101
bool checkBranchesFromPredecessors(ArrayBuilder<BasicBlockBuilder> predecessors,
RegionBuilder
currentRegion,
RegionBuilder
? destinationRegionOpt)
1105
RegionBuilder
predecessorRegion = regionMap[predecessor];
1148
void collectAncestorsAndSelf([DisallowNull]
RegionBuilder
? from, [NotNull] ref ArrayBuilder<
RegionBuilder
>? builder)
1152
builder = ArrayBuilder<
RegionBuilder
>.GetInstance();
1170
int getIndexOfLastLeftRegion(ArrayBuilder<
RegionBuilder
> from, ArrayBuilder<
RegionBuilder
> to)
1322
private void EnterRegion(
RegionBuilder
region, bool spillingStack = false)
1348
RegionBuilder
enclosed = _currentRegion;
1639
var
resultCaptureRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, isStackSpillRegion: true);
1691
/// and corresponding <see cref="
RegionBuilder
"/> if one was allocated to
1699
private
RegionBuilder
? _lazyRegionBuilder;
1701
public
RegionBuilder
? RegionBuilderOpt
1743
RegionBuilder
toMerge = _currentRegion;
1772
RegionBuilder
? toLeave = frame.RegionBuilderOpt;
1791
private void LeaveRegionsUpTo(
RegionBuilder
resultCaptureRegion)
1799
private int GetNextCaptureId(
RegionBuilder
owner)
1857
RegionBuilder
? currentSpillRegion = currentFrame.RegionBuilderOpt;
1886
RegionBuilder
candidate = CurrentRegionRequired;
2341
var
resultCaptureRegion = CurrentRegionRequired;
2424
var
resultCaptureRegion = CurrentRegionRequired;
2461
var
resultCaptureRegion = CurrentRegionRequired;
2562
var
resultCaptureRegion = CurrentRegionRequired;
2670
var
resultCaptureRegion = CurrentRegionRequired;
2756
RegionBuilder
? current = _currentRegion;
3041
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3101
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3358
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3570
var
locals = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
3656
RegionBuilder
? tryAndFinallyRegion = null;
3682
RegionBuilder
? filterAndHandlerRegion = null;
3694
var
filterRegion = new RegionBuilder(ControlFlowRegionKind.Filter, catchClause.ExceptionType);
3710
var
handlerRegion = new RegionBuilder(ControlFlowRegionKind.Catch, catchClause.ExceptionType,
3758
var
finallyRegion = new RegionBuilder(ControlFlowRegionKind.Finally);
3952
var
usingRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
4067
RegionBuilder
? resourceRegion = null;
4114
var
finallyRegion = new RegionBuilder(ControlFlowRegionKind.Finally);
4302
var
lockRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime,
4451
var
enumeratorCaptureRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime);
4456
RegionBuilder
? regionForCollection = null;
4507
var
localsRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
4742
var
loopRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
4876
RegionBuilder
currentRegion = CurrentRegionRequired;
5464
var
switchRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
6434
RegionBuilder
owner = CurrentRegionRequired;
6786
RegionBuilder
resultRegion = CurrentRegionRequired;
6789
var
constructorRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime);
7708
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
7716
var
armScopeRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: arm.Locals);
7914
var
outerCaptureRegion = CurrentRegionRequired;
7917
var
innerCaptureRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime);
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (10)
18
public
RegionBuilder
? Enclosing { get; private set; } = null;
22
public ArrayBuilder<
RegionBuilder
>? Regions = null;
128
public void Add(
RegionBuilder
region)
132
Regions = ArrayBuilder<
RegionBuilder
>.GetInstance();
183
public void Remove(
RegionBuilder
region)
201
public void ReplaceRegion(
RegionBuilder
toReplace, ArrayBuilder<
RegionBuilder
> replaceWith)
223
RegionBuilder
single = replaceWith[0];
237
foreach (
RegionBuilder
region in replaceWith)
323
foreach (
RegionBuilder
region in Regions)