5 instantiations of SwitchBucket
Microsoft.CodeAnalysis (5)
CodeGen\SwitchIntegralJumpTableEmitter.cs (4)
243crumbled.Add(new SwitchBucket(_sortedCaseLabels, uncrumbled.StartLabelIndex, uncrumbled.EndLabelIndex, isDegenerate: true)); 248crumbled.Add(new SwitchBucket(_sortedCaseLabels, uncrumbled.StartLabelIndex, degenerateSplit - 1, isDegenerate: true)); 249crumbled.Add(new SwitchBucket(_sortedCaseLabels, degenerateSplit, uncrumbled.EndLabelIndex, isDegenerate: true)); 261return new SwitchBucket(_sortedCaseLabels, startLabelIndex);
CodeGen\SwitchIntegralJumpTableEmitter.SwitchBucket.cs (1)
309this = new SwitchBucket(_allLabels, prevBucket._startLabelIndex, _endLabelIndex);
15 references to SwitchBucket
Microsoft.CodeAnalysis (15)
CodeGen\SwitchIntegralJumpTableEmitter.cs (12)
133ImmutableArray<SwitchBucket> switchBuckets = this.GenerateSwitchBuckets(startLabelIndex, endLabelIndex); 185private ImmutableArray<SwitchBucket> GenerateSwitchBuckets(int startLabelIndex, int endLabelIndex) 191var switchBucketsStack = ArrayBuilder<SwitchBucket>.GetInstance(); 198SwitchBucket newBucket = CreateNextBucket(curStartLabelIndex, endLabelIndex); 207SwitchBucket prevBucket = switchBucketsStack.Peek(); 230var crumbled = ArrayBuilder<SwitchBucket>.GetInstance(); 231foreach (var uncrumbled in switchBucketsStack) 258private SwitchBucket CreateNextBucket(int startLabelIndex, int endLabelIndex) 268private void EmitSwitchBucketsLinearLeaf(ImmutableArray<SwitchBucket> switchBuckets, int low, int high) 282private void EmitSwitchBuckets(ImmutableArray<SwitchBucket> switchBuckets, int low, int high) 327private void EmitSwitchBucket(SwitchBucket switchBucket, object bucketFallThroughLabel) 362private object[] CreateBucketLabels(SwitchBucket switchBucket)
CodeGen\SwitchIntegralJumpTableEmitter.SwitchBucket.cs (3)
282internal static bool MergeIsAdvantageous(SwitchBucket bucket1, SwitchBucket bucket2) 304internal bool TryMergeWith(SwitchBucket prevBucket)