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));
1387
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
1485
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
1525
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.ErroneousBody));
1646
var resultCaptureRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, isStackSpillRegion: true);
1842
frameOpt.RegionBuilderOpt = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, isStackSpillRegion: true);
3578
var locals = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
3668
tryAndFinallyRegion = new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally);
3670
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
3676
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndCatch));
3677
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
3699
filterAndHandlerRegion = new
RegionBuilder
(ControlFlowRegionKind.FilterAndHandler, catchClause.ExceptionType, catchClause.Locals);
3702
var filterRegion = new
RegionBuilder
(ControlFlowRegionKind.Filter, catchClause.ExceptionType);
3718
var handlerRegion = new
RegionBuilder
(ControlFlowRegionKind.Catch, catchClause.ExceptionType,
3766
var finallyRegion = new
RegionBuilder
(ControlFlowRegionKind.Finally);
3960
var usingRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
4079
resourceRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
4089
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4090
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4122
var finallyRegion = new
RegionBuilder
(ControlFlowRegionKind.Finally);
4310
var lockRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime,
4361
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4362
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4404
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Finally));
4459
var enumeratorCaptureRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
4484
regionForCollection = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: ImmutableArray.Create(local));
4501
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.TryAndFinally));
4502
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.Try));
4515
var localsRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
4750
var loopRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
5472
var switchRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: locals);
5737
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
5753
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.ConditionLocals));
5781
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals));
5839
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.StaticLocalInitializer));
6819
var constructorRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime);
6879
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime));
7300
EnterRegion(new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: initializer.Locals));
7780
var armScopeRegion = new
RegionBuilder
(ControlFlowRegionKind.LocalLifetime, locals: arm.Locals);
7981
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)
1323
private void EnterRegion(
RegionBuilder
region, bool spillingStack = false)
1349
RegionBuilder
enclosed = _currentRegion;
1646
var
resultCaptureRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, isStackSpillRegion: true);
1698
/// and corresponding <see cref="
RegionBuilder
"/> if one was allocated to
1706
private
RegionBuilder
? _lazyRegionBuilder;
1708
public
RegionBuilder
? RegionBuilderOpt
1750
RegionBuilder
toMerge = _currentRegion;
1779
RegionBuilder
? toLeave = frame.RegionBuilderOpt;
1798
private void LeaveRegionsUpTo(
RegionBuilder
resultCaptureRegion)
1806
private int GetNextCaptureId(
RegionBuilder
owner)
1865
RegionBuilder
? currentSpillRegion = currentFrame.RegionBuilderOpt;
1894
RegionBuilder
candidate = CurrentRegionRequired;
2349
var
resultCaptureRegion = CurrentRegionRequired;
2432
var
resultCaptureRegion = CurrentRegionRequired;
2469
var
resultCaptureRegion = CurrentRegionRequired;
2570
var
resultCaptureRegion = CurrentRegionRequired;
2678
var
resultCaptureRegion = CurrentRegionRequired;
2764
RegionBuilder
? current = _currentRegion;
3049
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3109
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3366
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
3578
var
locals = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
3664
RegionBuilder
? tryAndFinallyRegion = null;
3690
RegionBuilder
? filterAndHandlerRegion = null;
3702
var
filterRegion = new RegionBuilder(ControlFlowRegionKind.Filter, catchClause.ExceptionType);
3718
var
handlerRegion = new RegionBuilder(ControlFlowRegionKind.Catch, catchClause.ExceptionType,
3766
var
finallyRegion = new RegionBuilder(ControlFlowRegionKind.Finally);
3960
var
usingRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
4075
RegionBuilder
? resourceRegion = null;
4122
var
finallyRegion = new RegionBuilder(ControlFlowRegionKind.Finally);
4310
var
lockRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime,
4459
var
enumeratorCaptureRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime);
4464
RegionBuilder
? regionForCollection = null;
4515
var
localsRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: operation.Locals);
4750
var
loopRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
4884
RegionBuilder
currentRegion = CurrentRegionRequired;
5472
var
switchRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: locals);
6442
RegionBuilder
owner = CurrentRegionRequired;
6816
RegionBuilder
resultRegion = CurrentRegionRequired;
6819
var
constructorRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime);
7772
RegionBuilder
resultCaptureRegion = CurrentRegionRequired;
7780
var
armScopeRegion = new RegionBuilder(ControlFlowRegionKind.LocalLifetime, locals: arm.Locals);
7978
var
outerCaptureRegion = CurrentRegionRequired;
7981
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)