2 types derived from BasicBlock
Microsoft.CodeAnalysis (2)
CodeGen\BasicBlock.cs (2)
656private class PooledBasicBlock : BasicBlock 675internal class BasicBlockWithHandlerScope : BasicBlock
92 references to BasicBlock
Microsoft.CodeAnalysis (90)
CodeGen\BasicBlock.cs (20)
56public static readonly ObjectPool<BasicBlock> Pool = CreatePool(32); 57private static ObjectPool<BasicBlock> CreatePool(int size) 59return new ObjectPool<BasicBlock>(() => new PooledBasicBlock(), size); 135public BasicBlock NextBlock; 193public BasicBlock BranchBlock 197BasicBlock result = null; 287var branchBlock = BranchBlock; 365var next = this.NextNontrivial; 388private BasicBlock NextNontrivial 392var next = this.NextBlock; 404private bool TryOptimizeSameAsNext(BasicBlock next, ref int delta) 442private bool TryOptimizeBranchOverUncondBranch(BasicBlock next, ref int delta) 457var toRemove = this.NextBlock; 458var branchBlock = this.BranchBlock; 491private bool TryOptimizeBranchToNextOrRet(BasicBlock next, ref int delta) 520private bool TryOptimizeBranchToEquivalent(BasicBlock next, ref int delta) 557private static bool AreIdentical(BasicBlock one, BasicBlock another) 670BasicBlock.Pool.Free(this); 736public void GetBranchBlocks(ArrayBuilder<BasicBlock> branchBlocksBuilder)
CodeGen\ILBuilder.cs (46)
31internal readonly BasicBlock leaderBlock; 34private BasicBlock? _lastCompleteBlock; 35private BasicBlock? _currentBlock; 89private BasicBlock GetCurrentBlock() 106var block = _scopeManager.CreateBlock(this); 122private void UpdatesForCreatedBlock(BasicBlock block) 185BasicBlock current = this.GetCurrentBlock(); 271ArrayBuilder<BasicBlock> reachableBlocks = ArrayBuilder<BasicBlock>.GetInstance(); 281private static void PushReachableBlockToProcess(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 292private static void MarkReachableFrom(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 343private static void MarkReachableFromBranch(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 345var branchBlock = block.BranchBlock; 367private static void RedirectBranchToBlockedDestination(BasicBlock block, object blockedDest) 374var newBranchBlock = block.BranchBlock; 384private static object? BlockedBranchDestination(BasicBlock src, BasicBlock dest) 437private static void MarkReachableFromTry(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 479private static void MarkReachableFromFilter(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 488private static void MarkReachableFromSwitch(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 491var blockBuilder = ArrayBuilder<BasicBlock>.GetInstance(); 494foreach (var targetBlock in blockBuilder) 529var targetBlock = labelInfo.bb; 535BasicBlock? targetsTarget = null; 589var targetBlock = labelInfo.bb; 595BasicBlock? targetsTarget = null; 688var current = leaderBlock; 714var current = leaderBlock; 724var current = leaderBlock; 741var current = leaderBlock; 775private static bool IsSpecialEndHandlerBlock(BasicBlock block) 789var current = leaderBlock; 844var current = leaderBlock; 903for (var block = leaderBlock; block != null; block = block.NextBlock) 939var blockBuilder = ArrayBuilder<BasicBlock>.GetInstance(); 942foreach (var branchBlock in blockBuilder) 1031var curBlock = GetCurrentBlock(); 1230private bool AllBlocks(Func<BasicBlock, bool> predicate) 1232var current = leaderBlock; 1252BasicBlock curBlock = GetCurrentBlock();
CodeGen\ILBuilderEmit.cs (7)
112var block = this.GetCurrentBlock(); 187var block = this.GetCurrentBlock(); 313var block = this.GetCurrentBlock(); 322var block = this.GetCurrentBlock(); 339var block = this.GetCurrentBlock(); 348private BasicBlock FinishFilterCondition() 350var block = this.GetCurrentBlock();
CodeGen\LabelInfo.cs (3)
22internal readonly BasicBlock? bb; 42internal LabelInfo(BasicBlock? bb, int stack, bool targetOfConditionalBranches) 49internal LabelInfo WithNewTarget(BasicBlock? bb)
CodeGen\LocalScopeManager.cs (14)
93internal BasicBlock CreateBlock(ILBuilder builder) 321protected ImmutableArray<BasicBlock>.Builder Blocks; 380public virtual BasicBlock CreateBlock(ILBuilder builder) 383var block = enclosingHandler == null ? 391private static BasicBlock AllocatePooledBlock(ILBuilder builder) 393var block = BasicBlock.Pool.Allocate(); 405protected void AddBlock(BasicBlock block) 409Blocks = ImmutableArray.CreateBuilder<BasicBlock>(4); 437var block = Blocks[i]; 482var block = Blocks[i]; 550private BasicBlock _lastFilterConditionBlock; 606public BasicBlock LastFilterConditionBlock => _lastFilterConditionBlock; 634public override BasicBlock CreateBlock(ILBuilder builder)
Microsoft.CodeAnalysis.Test.Utilities (2)
Metadata\ILBuilderVisualizer.cs (2)
166var current = builder.leaderBlock; 227var branchBlock = block.BranchBlock;