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));
1395
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
1493
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
1533
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.ErroneousBody));
1654
var resultCaptureRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, isStackSpillRegion: true);
1850
frameOpt.RegionBuilderOpt = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, isStackSpillRegion: true);
3586
var locals = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
3676
tryAndFinallyRegion = new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally);
3678
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
3684
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndCatch));
3685
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
3707
filterAndHandlerRegion = new
RegionBuilder
(ControlFlowRegionKind.FilterAndHandler, catchClause.ExceptionType, catchClause.Locals);
3710
var filterRegion = new
RegionBuilder
(ControlFlowRegionKind.Filter, catchClause.ExceptionType);
3726
var handlerRegion = new
RegionBuilder
(ControlFlowRegionKind.Catch, catchClause.ExceptionType,
3774
var finallyRegion = new
RegionBuilder
(ControlFlowRegionKind.Finally);
3968
var usingRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
4088
resourceRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
4098
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4099
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4131
var finallyRegion = new
RegionBuilder
(ControlFlowRegionKind.Finally);
4319
var lockRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime,
4370
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4371
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4413
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Finally));
4468
var enumeratorCaptureRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
4493
regionForCollection = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: ImmutableArray.Create(local));
4510
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4511
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4524
var localsRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
4759
var loopRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
5481
var switchRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
5746
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
5762
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.ConditionLocals));
5790
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
5848
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.StaticLocalInitializer));
6828
var constructorRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
6888
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime));
7312
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: initializer.Locals));
7792
var armScopeRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: arm.Locals);
7993
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);
502
private static void Pack(ArrayBuilder<BasicBlockBuilder> blocks,
RegionBuilder
root, PooledDictionary<BasicBlockBuilder,
RegionBuilder
> regionMap)
519
private static bool PackRegions(
RegionBuilder
root, ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<BasicBlockBuilder,
RegionBuilder
> regionMap)
523
bool PackRegion(
RegionBuilder
region)
532
RegionBuilder
r = region.Regions[i];
560
RegionBuilder
subRegion = region.Regions[0];
579
RegionBuilder
subRegion = region.Regions[i];
622
private static void MergeSubRegionAndFree(
RegionBuilder
subRegion, ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<BasicBlockBuilder,
RegionBuilder
> regionMap, bool canHaveEmptyRegion = false)
626
RegionBuilder
enclosing = subRegion.Enclosing;
646
foreach (
RegionBuilder
r in subRegion.Regions)
678
private static bool PackBlocks(ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<BasicBlockBuilder,
RegionBuilder
> regionMap)
680
ArrayBuilder<
RegionBuilder
>? fromCurrent = null;
681
ArrayBuilder<
RegionBuilder
>? fromDestination = null;
682
ArrayBuilder<
RegionBuilder
>? fromPredecessor = null;
737
RegionBuilder
currentRegion = regionMap[block];
751
RegionBuilder
currentRegion = regionMap[block];
766
RegionBuilder
tryAndFinally = currentRegion.Enclosing;
770
RegionBuilder
@try = tryAndFinally.Regions.First();
790
RegionBuilder
tryAndFinallyEnclosing = tryAndFinally.Enclosing;
846
RegionBuilder
? implicitEntryRegion = tryGetImplicitEntryRegion(block, currentRegion);
895
RegionBuilder
? destinationRegionOpt = next.Destination == null ? null : regionMap[next.Destination];
971
RegionBuilder
currentRegion = regionMap[block];
1022
RegionBuilder
? tryGetImplicitEntryRegion(BasicBlockBuilder block, [DisallowNull]
RegionBuilder
? currentRegion)
1046
void removeBlock(BasicBlockBuilder block,
RegionBuilder
region)
1059
RegionBuilder
enclosing = region.Enclosing;
1072
RegionBuilder
enclosing = region.Enclosing;
1109
bool checkBranchesFromPredecessors(ArrayBuilder<BasicBlockBuilder> predecessors,
RegionBuilder
currentRegion,
RegionBuilder
? destinationRegionOpt)
1113
RegionBuilder
predecessorRegion = regionMap[predecessor];
1156
void collectAncestorsAndSelf([DisallowNull]
RegionBuilder
? from, [NotNull] ref ArrayBuilder<
RegionBuilder
>? builder)
1160
builder = ArrayBuilder<
RegionBuilder
>.GetInstance();
1178
int getIndexOfLastLeftRegion(ArrayBuilder<
RegionBuilder
> from, ArrayBuilder<
RegionBuilder
> to)
1331
private void EnterRegion(
RegionBuilder
region, bool spillingStack = false)
1357
RegionBuilder
enclosed = _currentRegion;
1654
var
resultCaptureRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, isStackSpillRegion: true);
1706
/// and corresponding <see cref="
RegionBuilder
"/> if one was allocated to
1714
private
RegionBuilder
? _lazyRegionBuilder;
1716
public
RegionBuilder
? RegionBuilderOpt
1758
RegionBuilder
toMerge = _currentRegion;
1787
RegionBuilder
? toLeave = frame.RegionBuilderOpt;
1806
private void LeaveRegionsUpTo(
RegionBuilder
resultCaptureRegion)
1814
private int GetNextCaptureId(
RegionBuilder
owner)
1873
RegionBuilder
? currentSpillRegion = currentFrame.RegionBuilderOpt;
1902
RegionBuilder
candidate = CurrentRegionRequired;
2357
var
resultCaptureRegion = CurrentRegionRequired;
2440
var
resultCaptureRegion = CurrentRegionRequired;
2477
var
resultCaptureRegion = CurrentRegionRequired;
2578
var
resultCaptureRegion = CurrentRegionRequired;
2686
var
resultCaptureRegion = CurrentRegionRequired;
2772
RegionBuilder
? current = _currentRegion;
3057
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3117
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3374
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3586
var
locals = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
3672
RegionBuilder
? tryAndFinallyRegion = null;
3698
RegionBuilder
? filterAndHandlerRegion = null;
3710
var
filterRegion = new RegionBuilder(ControlFlowRegionKind.Filter, catchClause.ExceptionType);
3726
var
handlerRegion = new RegionBuilder(ControlFlowRegionKind.Catch, catchClause.ExceptionType,
3774
var
finallyRegion = new RegionBuilder(ControlFlowRegionKind.Finally);
3968
var
usingRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
4084
RegionBuilder
? resourceRegion = null;
4131
var
finallyRegion = new RegionBuilder(ControlFlowRegionKind.Finally);
4319
var
lockRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime,
4468
var
enumeratorCaptureRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime);
4473
RegionBuilder
? regionForCollection = null;
4524
var
localsRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
4759
var
loopRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
4893
RegionBuilder
currentRegion = CurrentRegionRequired;
5481
var
switchRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
6451
RegionBuilder
owner = CurrentRegionRequired;
6825
RegionBuilder
resultRegion = CurrentRegionRequired;
6828
var
constructorRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime);
7784
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
7792
var
armScopeRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: arm.Locals);
7990
var
outerCaptureRegion = CurrentRegionRequired;
7993
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)