15 types derived from GenericLookupResult
ILCompiler.Compiler (15)
Compiler\DependencyAnalysis\GenericLookupResult.cs (15)
188public sealed class TypeHandleGenericLookupResult : GenericLookupResult 247public sealed class NecessaryTypeHandleGenericLookupResult : GenericLookupResult 305public sealed class MetadataTypeHandleGenericLookupResult : GenericLookupResult 363public sealed class UnwrapNullableTypeHandleGenericLookupResult : GenericLookupResult 426internal sealed class MethodHandleGenericLookupResult : GenericLookupResult 491internal sealed class FieldHandleGenericLookupResult : GenericLookupResult 547public sealed class MethodDictionaryGenericLookupResult : GenericLookupResult 611internal sealed class MethodEntryGenericLookupResult : GenericLookupResult 693internal sealed class VirtualDispatchCellGenericLookupResult : GenericLookupResult 773internal sealed class TypeNonGCStaticBaseGenericLookupResult : GenericLookupResult 830internal sealed class TypeThreadStaticBaseIndexGenericLookupResult : GenericLookupResult 886public sealed class TypeGCStaticBaseGenericLookupResult : GenericLookupResult 943internal sealed class ObjectAllocatorGenericLookupResult : GenericLookupResult 995internal sealed class DefaultConstructorLookupResult : GenericLookupResult 1048internal sealed class ConstrainedMethodUseLookupResult : GenericLookupResult
154 references to GenericLookupResult
ILCompiler.Compiler (154)
Compiler\Compilation.cs (1)
425GenericLookupResult lookup = ReadyToRunGenericHelperNode.GetLookupSignature(_nodeFactory, lookupKind, targetOfLookup);
Compiler\DelegateCreationInfo.cs (1)
111public GenericLookupResult GetLookupKind(NodeFactory factory)
Compiler\DependencyAnalysis\DictionaryLayoutNode.cs (36)
16/// generic type or generic method. Maintains a bag of <see cref="GenericLookupResult"/> associated 20/// The generic dictionary doesn't have any dependent nodes because <see cref="GenericLookupResult"/> 75public abstract void EnsureEntry(GenericLookupResult entry); 80public abstract bool TryGetSlotForEntry(GenericLookupResult entry, out int slot); 82public abstract IEnumerable<GenericLookupResult> Entries 92public virtual IEnumerable<GenericLookupResult> FixedEntries => Entries; 112foreach (var entry in Entries) 124IEnumerable<GenericLookupResult> entriesToEmit = fixedLayoutOnly ? FixedEntries : Entries; 126foreach (GenericLookupResult lookupResult in entriesToEmit) 144foreach (GenericLookupResult lookupResult in FixedEntries) 170foreach (var lookupSignature in FixedEntries) 192private readonly GenericLookupResult[] _layout; 193private readonly GenericLookupResult[] _discardedSlots; 199public PrecomputedDictionaryLayoutNode(TypeSystemEntity owningMethodOrType, GenericLookupResult[] layout, GenericLookupResult[] discardedSlots) 206public override void EnsureEntry(GenericLookupResult entry) 211public override bool TryGetSlotForEntry(GenericLookupResult entry, out int slot) 252public override IEnumerable<GenericLookupResult> Entries 263private sealed class EntryHashTable : LockFreeReaderHashtable<GenericLookupResult, GenericLookupResult> 265protected override bool CompareKeyToValue(GenericLookupResult key, GenericLookupResult value) => Equals(key, value); 266protected override bool CompareValueToValue(GenericLookupResult value1, GenericLookupResult value2) => Equals(value1, value2); 267protected override GenericLookupResult CreateValueFromKey(GenericLookupResult key) => key; 268protected override int GetKeyHashCode(GenericLookupResult key) => key.GetHashCode(); 269protected override int GetValueHashCode(GenericLookupResult value) => value.GetHashCode(); 273private volatile GenericLookupResult[] _layout; 282public override void EnsureEntry(GenericLookupResult entry) 290GenericLookupResult[] layout = new GenericLookupResult[_entries.Count]; 292foreach (GenericLookupResult entry in EntryHashTable.Enumerator.Get(_entries)) 297var comparer = new GenericLookupResult.Comparer(TypeSystemComparer.Instance); 304public override bool TryGetSlotForEntry(GenericLookupResult entry, out int slot) 319public override IEnumerable<GenericLookupResult> Entries
Compiler\DependencyAnalysis\GenericLookupResult.cs (37)
78protected abstract int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer); 79protected abstract bool EqualsImpl(GenericLookupResult obj); 84GenericLookupResult other = obj as GenericLookupResult; 147public class Comparer : IComparer<GenericLookupResult> 156public int Compare(GenericLookupResult x, GenericLookupResult y) 228protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 238protected override bool EqualsImpl(GenericLookupResult obj) 286protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 296protected override bool EqualsImpl(GenericLookupResult obj) 344protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 354protected override bool EqualsImpl(GenericLookupResult obj) 407protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 417protected override bool EqualsImpl(GenericLookupResult obj) 472protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 482protected override bool EqualsImpl(GenericLookupResult obj) 528protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 538protected override bool EqualsImpl(GenericLookupResult obj) 592protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 602protected override bool EqualsImpl(GenericLookupResult obj) 668protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 683protected override bool EqualsImpl(GenericLookupResult obj) 754protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 764protected override bool EqualsImpl(GenericLookupResult obj) 811protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 821protected override bool EqualsImpl(GenericLookupResult obj) 867protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 877protected override bool EqualsImpl(GenericLookupResult obj) 924protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 934protected override bool EqualsImpl(GenericLookupResult obj) 979protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 989protected override bool EqualsImpl(GenericLookupResult obj) 1032protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 1042protected override bool EqualsImpl(GenericLookupResult obj) 1159protected override int CompareToImpl(GenericLookupResult other, TypeSystemComparer comparer) 1178protected override bool EqualsImpl(GenericLookupResult obj)
Compiler\DependencyAnalysis\NodeFactory.GenericLookups.cs (46)
10/// See: <see cref="GenericLookupResult"/>. 25_typeSymbols = new NodeCache<TypeDesc, GenericLookupResult>(type => 30_necessaryTypeSymbols = new NodeCache<TypeDesc, GenericLookupResult>(type => 35_metadataTypeSymbols = new NodeCache<TypeDesc, GenericLookupResult>(type => 40_unwrapNullableSymbols = new NodeCache<TypeDesc, GenericLookupResult>(type => 45_methodHandles = new NodeCache<MethodDesc, GenericLookupResult>(method => 50_fieldHandles = new NodeCache<FieldDesc, GenericLookupResult>(field => 55_methodDictionaries = new NodeCache<MethodDesc, GenericLookupResult>(method => 60_methodEntrypoints = new NodeCache<MethodKey, GenericLookupResult>(key => 65_virtualDispatchCells = new NodeCache<MethodDesc, GenericLookupResult>(method => 70_typeThreadStaticBaseIndexSymbols = new NodeCache<TypeDesc, GenericLookupResult>(type => 75_typeGCStaticBaseSymbols = new NodeCache<TypeDesc, GenericLookupResult>(type => 80_typeNonGCStaticBaseSymbols = new NodeCache<TypeDesc, GenericLookupResult>(type => 85_objectAllocators = new NodeCache<TypeDesc, GenericLookupResult>(type => 90_defaultCtors = new NodeCache<TypeDesc, GenericLookupResult>(type => 95_constrainedMethodUses = new NodeCache<ConstrainedMethodUseKey, GenericLookupResult>(constrainedMethodUse => 101private NodeCache<TypeDesc, GenericLookupResult> _typeSymbols; 103public GenericLookupResult Type(TypeDesc type) 108private NodeCache<TypeDesc, GenericLookupResult> _necessaryTypeSymbols; 110public GenericLookupResult NecessaryType(TypeDesc type) 115private NodeCache<TypeDesc, GenericLookupResult> _metadataTypeSymbols; 117public GenericLookupResult MetadataType(TypeDesc type) 122private NodeCache<TypeDesc, GenericLookupResult> _unwrapNullableSymbols; 124public GenericLookupResult UnwrapNullableType(TypeDesc type) 140private NodeCache<MethodDesc, GenericLookupResult> _methodHandles; 142public GenericLookupResult MethodHandle(MethodDesc method) 147private NodeCache<FieldDesc, GenericLookupResult> _fieldHandles; 149public GenericLookupResult FieldHandle(FieldDesc field) 154private NodeCache<TypeDesc, GenericLookupResult> _typeThreadStaticBaseIndexSymbols; 156public GenericLookupResult TypeThreadStaticBaseIndex(TypeDesc type) 161private NodeCache<TypeDesc, GenericLookupResult> _typeGCStaticBaseSymbols; 163public GenericLookupResult TypeGCStaticBase(TypeDesc type) 168private NodeCache<TypeDesc, GenericLookupResult> _typeNonGCStaticBaseSymbols; 170public GenericLookupResult TypeNonGCStaticBase(TypeDesc type) 175private NodeCache<MethodDesc, GenericLookupResult> _methodDictionaries; 177public GenericLookupResult MethodDictionary(MethodDesc method) 182private NodeCache<MethodDesc, GenericLookupResult> _virtualDispatchCells; 184public GenericLookupResult VirtualDispatchCell(MethodDesc method) 189private NodeCache<MethodKey, GenericLookupResult> _methodEntrypoints; 191public GenericLookupResult MethodEntry(MethodDesc method, bool isUnboxingThunk = false) 196private NodeCache<TypeDesc, GenericLookupResult> _objectAllocators; 198public GenericLookupResult ObjectAllocator(TypeDesc type) 203private NodeCache<TypeDesc, GenericLookupResult> _defaultCtors; 205public GenericLookupResult DefaultCtorLookupResult(TypeDesc type) 210private NodeCache<ConstrainedMethodUseKey, GenericLookupResult> _constrainedMethodUses; 211public GenericLookupResult ConstrainedMethodUse(MethodDesc constrainedMethod, TypeDesc constraintType, bool directCall)
Compiler\DependencyAnalysis\ReadyToRunGenericHelperNode.cs (4)
21protected readonly GenericLookupResult _lookupSignature; 32public GenericLookupResult LookupSignature => _lookupSignature; 52public static GenericLookupResult GetLookupSignature(NodeFactory factory, ReadyToRunHelperId id, object target) 266GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(type);
Compiler\DependencyAnalysis\Target_ARM\ARMReadyToRunGenericHelperNode.cs (3)
24protected void EmitDictionaryLookup(NodeFactory factory, ref ARMEmitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly) 107GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target); 138GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target);
Compiler\DependencyAnalysis\Target_ARM64\ARM64ReadyToRunGenericHelperNode.cs (3)
24protected void EmitDictionaryLookup(NodeFactory factory, ref ARM64Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly) 106GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target); 136GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target);
Compiler\DependencyAnalysis\Target_LoongArch64\LoongArch64ReadyToRunGenericHelperNode.cs (3)
24protected void EmitDictionaryLookup(NodeFactory factory, ref LoongArch64Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly) 107GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target); 138GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target);
Compiler\DependencyAnalysis\Target_RiscV64\RiscV64ReadyToRunGenericHelperNode.cs (3)
24protected void EmitDictionaryLookup(NodeFactory factory, ref RiscV64Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly) 105GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target); 135GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target);
Compiler\DependencyAnalysis\Target_X64\X64ReadyToRunGenericHelperNode.cs (3)
24protected void EmitDictionaryLookup(NodeFactory factory, ref X64Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly) 112GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target); 143GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target);
Compiler\DependencyAnalysis\Target_X86\X86ReadyToRunGenericHelperNode.cs (3)
16protected void EmitDictionaryLookup(NodeFactory factory, ref X86Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly) 99GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target); 128GenericLookupResult nonGcRegionLookup = factory.GenericLookup.TypeNonGCStaticBase(target);
Compiler\ILScanner.cs (11)
346private Dictionary<TypeSystemEntity, (GenericLookupResult[] Slots, GenericLookupResult[] DiscardedSlots)> _layouts = new(); 356GenericLookupResult[] layout = OptimizeSlots(factory, layoutNode.Entries, out GenericLookupResult[] discarded); 371private static GenericLookupResult[] OptimizeSlots(NodeFactory factory, IEnumerable<GenericLookupResult> slots, out GenericLookupResult[] discarded) 373ArrayBuilder<GenericLookupResult> slotBuilder = default; 374ArrayBuilder<GenericLookupResult> discardedBuilder = default; 379foreach (GenericLookupResult lookupResult in slots) 394foreach (GenericLookupResult lookupResult in slots)