2 types derived from BasicBlock
Microsoft.CodeAnalysis (2)
CodeGen\BasicBlock.cs (2)
657private class PooledBasicBlock : BasicBlock 676internal class BasicBlockWithHandlerScope : BasicBlock
93 references to BasicBlock
Microsoft.CodeAnalysis (87)
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); 136public BasicBlock NextBlock; 194public BasicBlock BranchBlock 198BasicBlock result = null; 288var branchBlock = BranchBlock; 366var next = this.NextNontrivial; 389private BasicBlock NextNontrivial 393var next = this.NextBlock; 405private bool TryOptimizeSameAsNext(BasicBlock next, ref int delta) 443private bool TryOptimizeBranchOverUncondBranch(BasicBlock next, ref int delta) 458var toRemove = this.NextBlock; 459var branchBlock = this.BranchBlock; 492private bool TryOptimizeBranchToNextOrRet(BasicBlock next, ref int delta) 521private bool TryOptimizeBranchToEquivalent(BasicBlock next, ref int delta) 558private static bool AreIdentical(BasicBlock one, BasicBlock another) 671BasicBlock.Pool.Free(this); 737public void GetBranchBlocks(ArrayBuilder<BasicBlock> branchBlocksBuilder)
CodeGen\ILBuilder.cs (44)
32internal readonly BasicBlock leaderBlock; 35private BasicBlock _lastCompleteBlock; 36private BasicBlock _currentBlock; 90private BasicBlock GetCurrentBlock() 106var block = _scopeManager.CreateBlock(this); 120private void UpdatesForCreatedBlock(BasicBlock block) 178BasicBlock current = this.GetCurrentBlock(); 263ArrayBuilder<BasicBlock> reachableBlocks = ArrayBuilder<BasicBlock>.GetInstance(); 273private static void PushReachableBlockToProcess(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 284private static void MarkReachableFrom(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 331private static void MarkReachableFromBranch(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 333var branchBlock = block.BranchBlock; 355private static void RedirectBranchToBlockedDestination(BasicBlock block, object blockedDest) 362var newBranchBlock = block.BranchBlock; 372private static object BlockedBranchDestination(BasicBlock src, BasicBlock dest) 425private static void MarkReachableFromTry(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 467private static void MarkReachableFromSwitch(ArrayBuilder<BasicBlock> reachableBlocks, BasicBlock block) 470var blockBuilder = ArrayBuilder<BasicBlock>.GetInstance(); 473foreach (var targetBlock in blockBuilder) 508var targetBlock = labelInfo.bb; 514BasicBlock targetsTarget = null; 568var targetBlock = labelInfo.bb; 574BasicBlock targetsTarget = null; 667var current = leaderBlock; 693var current = leaderBlock; 703var current = leaderBlock; 720var current = leaderBlock; 754private static bool IsSpecialEndHandlerBlock(BasicBlock block) 768var current = leaderBlock; 823var current = leaderBlock; 882for (var block = leaderBlock; block != null; block = block.NextBlock) 916var blockBuilder = ArrayBuilder<BasicBlock>.GetInstance(); 919foreach (var branchBlock in blockBuilder) 1008var curBlock = GetCurrentBlock(); 1207private bool AllBlocks(Func<BasicBlock, bool> predicate) 1209var current = leaderBlock; 1229BasicBlock curBlock = GetCurrentBlock();
CodeGen\ILBuilderEmit.cs (7)
120var block = this.GetCurrentBlock(); 195var block = this.GetCurrentBlock(); 316var block = this.GetCurrentBlock(); 325var block = this.GetCurrentBlock(); 342var block = this.GetCurrentBlock(); 351private BasicBlock FinishFilterCondition() 353var 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 (13)
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; 632public override BasicBlock CreateBlock(ILBuilder builder)
Microsoft.CodeAnalysis.Test.Utilities (6)
Metadata\ILBuilderVisualizer.cs (6)
163var current = builder.leaderBlock; 194private static void DumpBlockIL(ILBuilder.BasicBlock block, StringBuilder sb) 206private static void DumpBasicBlockIL(ILBuilder.BasicBlock block, StringBuilder sb) 222var branchBlock = block.BranchBlock; 250var blockBuilder = ArrayBuilder<ILBuilder.BasicBlock>.GetInstance(); 253foreach (var branchBlock in blockBuilder)