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);
3559
var locals = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
3649
tryAndFinallyRegion = new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally);
3651
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
3657
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndCatch));
3658
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
3680
filterAndHandlerRegion = new
RegionBuilder
(ControlFlowRegionKind.FilterAndHandler, catchClause.ExceptionType, catchClause.Locals);
3683
var filterRegion = new
RegionBuilder
(ControlFlowRegionKind.Filter, catchClause.ExceptionType);
3699
var handlerRegion = new
RegionBuilder
(ControlFlowRegionKind.Catch, catchClause.ExceptionType,
3747
var finallyRegion = new
RegionBuilder
(ControlFlowRegionKind.Finally);
3940
var usingRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
4057
resourceRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
4067
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4068
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4099
var finallyRegion = new
RegionBuilder
(ControlFlowRegionKind.Finally);
4227
var lockRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime,
4278
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4279
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4321
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Finally));
4376
var enumeratorCaptureRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
4401
regionForCollection = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: ImmutableArray.Create(local));
4418
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4419
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4432
var localsRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
4651
var loopRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
5373
var switchRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
5638
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
5654
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.ConditionLocals));
5682
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
5740
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.StaticLocalInitializer));
6557
var constructorRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
6617
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime));
7038
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: initializer.Locals));
7484
var armScopeRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: arm.Locals);
7685
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;
2330
var
resultCaptureRegion = CurrentRegionRequired;
2413
var
resultCaptureRegion = CurrentRegionRequired;
2450
var
resultCaptureRegion = CurrentRegionRequired;
2551
var
resultCaptureRegion = CurrentRegionRequired;
2659
var
resultCaptureRegion = CurrentRegionRequired;
2745
RegionBuilder
? current = _currentRegion;
3030
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3090
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3347
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3559
var
locals = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
3645
RegionBuilder
? tryAndFinallyRegion = null;
3671
RegionBuilder
? filterAndHandlerRegion = null;
3683
var
filterRegion = new RegionBuilder(ControlFlowRegionKind.Filter, catchClause.ExceptionType);
3699
var
handlerRegion = new RegionBuilder(ControlFlowRegionKind.Catch, catchClause.ExceptionType,
3747
var
finallyRegion = new RegionBuilder(ControlFlowRegionKind.Finally);
3940
var
usingRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
4053
RegionBuilder
? resourceRegion = null;
4099
var
finallyRegion = new RegionBuilder(ControlFlowRegionKind.Finally);
4227
var
lockRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime,
4376
var
enumeratorCaptureRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime);
4381
RegionBuilder
? regionForCollection = null;
4432
var
localsRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
4651
var
loopRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
4785
RegionBuilder
currentRegion = CurrentRegionRequired;
5373
var
switchRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
6241
RegionBuilder
owner = CurrentRegionRequired;
6554
RegionBuilder
resultRegion = CurrentRegionRequired;
6557
var
constructorRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime);
7476
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
7484
var
armScopeRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: arm.Locals);
7682
var
outerCaptureRegion = CurrentRegionRequired;
7685
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)