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