2 types derived from BasicBlock
Microsoft.CodeAnalysis (2)
CodeGen\BasicBlock.cs (2)
657
private class PooledBasicBlock :
BasicBlock
676
internal class BasicBlockWithHandlerScope :
BasicBlock
93 references to BasicBlock
Microsoft.CodeAnalysis (87)
CodeGen\BasicBlock.cs (20)
56
public static readonly ObjectPool<
BasicBlock
> Pool = CreatePool(32);
57
private static ObjectPool<
BasicBlock
> CreatePool(int size)
59
return new ObjectPool<
BasicBlock
>(() => new PooledBasicBlock(), size);
136
public
BasicBlock
NextBlock;
194
public
BasicBlock
BranchBlock
198
BasicBlock
result = null;
288
var
branchBlock = BranchBlock;
366
var
next = this.NextNontrivial;
389
private
BasicBlock
NextNontrivial
393
var
next = this.NextBlock;
405
private bool TryOptimizeSameAsNext(
BasicBlock
next, ref int delta)
443
private bool TryOptimizeBranchOverUncondBranch(
BasicBlock
next, ref int delta)
458
var
toRemove = this.NextBlock;
459
var
branchBlock = this.BranchBlock;
492
private bool TryOptimizeBranchToNextOrRet(
BasicBlock
next, ref int delta)
521
private bool TryOptimizeBranchToEquivalent(
BasicBlock
next, ref int delta)
558
private static bool AreIdentical(
BasicBlock
one,
BasicBlock
another)
671
BasicBlock
.Pool.Free(this);
737
public void GetBranchBlocks(ArrayBuilder<
BasicBlock
> branchBlocksBuilder)
CodeGen\ILBuilder.cs (44)
32
internal readonly
BasicBlock
leaderBlock;
35
private
BasicBlock
_lastCompleteBlock;
36
private
BasicBlock
_currentBlock;
90
private
BasicBlock
GetCurrentBlock()
106
var
block = _scopeManager.CreateBlock(this);
120
private void UpdatesForCreatedBlock(
BasicBlock
block)
178
BasicBlock
current = this.GetCurrentBlock();
263
ArrayBuilder<
BasicBlock
> reachableBlocks = ArrayBuilder<
BasicBlock
>.GetInstance();
273
private static void PushReachableBlockToProcess(ArrayBuilder<
BasicBlock
> reachableBlocks,
BasicBlock
block)
284
private static void MarkReachableFrom(ArrayBuilder<
BasicBlock
> reachableBlocks,
BasicBlock
block)
331
private static void MarkReachableFromBranch(ArrayBuilder<
BasicBlock
> reachableBlocks,
BasicBlock
block)
333
var
branchBlock = block.BranchBlock;
355
private static void RedirectBranchToBlockedDestination(
BasicBlock
block, object blockedDest)
362
var
newBranchBlock = block.BranchBlock;
372
private static object BlockedBranchDestination(
BasicBlock
src,
BasicBlock
dest)
425
private static void MarkReachableFromTry(ArrayBuilder<
BasicBlock
> reachableBlocks,
BasicBlock
block)
467
private static void MarkReachableFromSwitch(ArrayBuilder<
BasicBlock
> reachableBlocks,
BasicBlock
block)
470
var blockBuilder = ArrayBuilder<
BasicBlock
>.GetInstance();
473
foreach (
var
targetBlock in blockBuilder)
508
var
targetBlock = labelInfo.bb;
514
BasicBlock
targetsTarget = null;
568
var
targetBlock = labelInfo.bb;
574
BasicBlock
targetsTarget = null;
667
var
current = leaderBlock;
693
var
current = leaderBlock;
703
var
current = leaderBlock;
720
var
current = leaderBlock;
754
private static bool IsSpecialEndHandlerBlock(
BasicBlock
block)
768
var
current = leaderBlock;
823
var
current = leaderBlock;
882
for (
var
block = leaderBlock; block != null; block = block.NextBlock)
916
var blockBuilder = ArrayBuilder<
BasicBlock
>.GetInstance();
919
foreach (
var
branchBlock in blockBuilder)
1008
var
curBlock = GetCurrentBlock();
1207
private bool AllBlocks(Func<
BasicBlock
, bool> predicate)
1209
var
current = leaderBlock;
1229
BasicBlock
curBlock = GetCurrentBlock();
CodeGen\ILBuilderEmit.cs (7)
120
var
block = this.GetCurrentBlock();
195
var
block = this.GetCurrentBlock();
316
var
block = this.GetCurrentBlock();
325
var
block = this.GetCurrentBlock();
342
var
block = this.GetCurrentBlock();
351
private
BasicBlock
FinishFilterCondition()
353
var
block = this.GetCurrentBlock();
CodeGen\LabelInfo.cs (3)
22
internal readonly
BasicBlock
? bb;
42
internal LabelInfo(
BasicBlock
? bb, int stack, bool targetOfConditionalBranches)
49
internal LabelInfo WithNewTarget(
BasicBlock
? bb)
CodeGen\LocalScopeManager.cs (13)
93
internal
BasicBlock
CreateBlock(ILBuilder builder)
321
protected ImmutableArray<
BasicBlock
>.Builder Blocks;
380
public virtual
BasicBlock
CreateBlock(ILBuilder builder)
383
var
block = enclosingHandler == null ?
391
private static
BasicBlock
AllocatePooledBlock(ILBuilder builder)
393
var
block =
BasicBlock
.Pool.Allocate();
405
protected void AddBlock(
BasicBlock
block)
409
Blocks = ImmutableArray.CreateBuilder<
BasicBlock
>(4);
437
var
block = Blocks[i];
482
var
block = Blocks[i];
550
private
BasicBlock
_lastFilterConditionBlock;
632
public override
BasicBlock
CreateBlock(ILBuilder builder)
Microsoft.CodeAnalysis.Test.Utilities (6)
Metadata\ILBuilderVisualizer.cs (6)
163
var
current = builder.leaderBlock;
194
private static void DumpBlockIL(ILBuilder.
BasicBlock
block, StringBuilder sb)
206
private static void DumpBasicBlockIL(ILBuilder.
BasicBlock
block, StringBuilder sb)
222
var
branchBlock = block.BranchBlock;
250
var blockBuilder = ArrayBuilder<ILBuilder.
BasicBlock
>.GetInstance();
253
foreach (
var
branchBlock in blockBuilder)