2 types derived from BasicBlock
Microsoft.CodeAnalysis (2)
CodeGen\BasicBlock.cs (2)
656
private class PooledBasicBlock :
BasicBlock
675
internal class BasicBlockWithHandlerScope :
BasicBlock
92 references to BasicBlock
Microsoft.CodeAnalysis (90)
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);
135
public
BasicBlock
NextBlock;
193
public
BasicBlock
BranchBlock
197
BasicBlock
result = null;
287
var
branchBlock = BranchBlock;
365
var
next = this.NextNontrivial;
388
private
BasicBlock
NextNontrivial
392
var
next = this.NextBlock;
404
private bool TryOptimizeSameAsNext(
BasicBlock
next, ref int delta)
442
private bool TryOptimizeBranchOverUncondBranch(
BasicBlock
next, ref int delta)
457
var
toRemove = this.NextBlock;
458
var
branchBlock = this.BranchBlock;
491
private bool TryOptimizeBranchToNextOrRet(
BasicBlock
next, ref int delta)
520
private bool TryOptimizeBranchToEquivalent(
BasicBlock
next, ref int delta)
557
private static bool AreIdentical(
BasicBlock
one,
BasicBlock
another)
670
BasicBlock
.Pool.Free(this);
736
public void GetBranchBlocks(ArrayBuilder<
BasicBlock
> branchBlocksBuilder)
CodeGen\ILBuilder.cs (46)
30
internal readonly
BasicBlock
leaderBlock;
33
private
BasicBlock
_lastCompleteBlock;
34
private
BasicBlock
_currentBlock;
86
private
BasicBlock
GetCurrentBlock()
102
var
block = _scopeManager.CreateBlock(this);
116
private void UpdatesForCreatedBlock(
BasicBlock
block)
174
BasicBlock
current = this.GetCurrentBlock();
259
ArrayBuilder<
BasicBlock
> reachableBlocks = ArrayBuilder<
BasicBlock
>.GetInstance();
269
private static void PushReachableBlockToProcess(ArrayBuilder<
BasicBlock
> reachableBlocks,
BasicBlock
block)
280
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 MarkReachableFromFilter(ArrayBuilder<
BasicBlock
> reachableBlocks,
BasicBlock
block)
476
private static void MarkReachableFromSwitch(ArrayBuilder<
BasicBlock
> reachableBlocks,
BasicBlock
block)
479
var blockBuilder = ArrayBuilder<
BasicBlock
>.GetInstance();
482
foreach (
var
targetBlock in blockBuilder)
517
var
targetBlock = labelInfo.bb;
523
BasicBlock
targetsTarget = null;
577
var
targetBlock = labelInfo.bb;
583
BasicBlock
targetsTarget = null;
676
var
current = leaderBlock;
702
var
current = leaderBlock;
712
var
current = leaderBlock;
729
var
current = leaderBlock;
763
private static bool IsSpecialEndHandlerBlock(
BasicBlock
block)
777
var
current = leaderBlock;
832
var
current = leaderBlock;
891
for (
var
block = leaderBlock; block != null; block = block.NextBlock)
925
var blockBuilder = ArrayBuilder<
BasicBlock
>.GetInstance();
928
foreach (
var
branchBlock in blockBuilder)
1017
var
curBlock = GetCurrentBlock();
1216
private bool AllBlocks(Func<
BasicBlock
, bool> predicate)
1218
var
current = leaderBlock;
1238
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 (14)
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;
606
public
BasicBlock
LastFilterConditionBlock => _lastFilterConditionBlock;
634
public override
BasicBlock
CreateBlock(ILBuilder builder)
Microsoft.CodeAnalysis.Test.Utilities (2)
Metadata\ILBuilderVisualizer.cs (2)
164
var
current = builder.leaderBlock;
223
var
branchBlock = block.BranchBlock;