1 write to _compilation
ILCompiler.RyuJit (1)
JitInterface\CorInfoImpl.RyuJit.cs (1)
46_compilation = compilation;
195 references to _compilation
ILCompiler.RyuJit (195)
JitInterface\CorInfoImpl.RyuJit.cs (114)
59MethodDesc asyncResumptionStub = _compilation.TypeSystemContext.GetAsyncResumptionStub(MethodBeingCompiled, _compilation.TypeSystemContext.GeneratedAssembly.GetGlobalModuleType()); 61entryPoint = (void*)ObjectToHandle(_compilation.NodeFactory.MethodEntrypoint(asyncResumptionStub)); 70methodIL ??= _compilation.GetMethodIL(MethodBeingCompiled); 281if (_compilation.NeedsRuntimeLookup(helperId, entity)) 283GenericDictionaryLookup genericLookup = _compilation.ComputeGenericLookup(callerHandle, helperId, entity); 337ISymbolNode constLookup = _compilation.ComputeConstantLookup(helperId, entity); 360pLookup = CreateConstLookupToSymbol(_compilation.NodeFactory.ReadyToRunHelper(helperId, type)); 435targetOfLookup = _compilation.TypeSystemContext.GetMethodForRuntimeDeterminedType(directMethod.GetTypicalMethodDefinition(), (RuntimeDeterminedType)constrainedType); 437targetOfLookup = _compilation.TypeSystemContext.GetMethodForInstantiatedType(directMethod.GetTypicalMethodDefinition(), (InstantiatedType)constrainedType); 461DelegateCreationInfo delegateInfo = _compilation.GetDelegateCtor(delegateTypeDesc, targetMethod, constrainedType, isLdvirtftn); 484pLookup.constLookup = CreateConstLookupToSymbol(_compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelperId.DelegateCtor, delegateInfo)); 640return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.NewFast); 642return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.NewFinalizable); 644return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.NewFastAlign8); 646return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.NewFinalizableAlign8); 648return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.NewFastMisalign); 653return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.NewPtrArrayFast); 655return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.NewArrayFastAlign8); 657return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.NewArrayFast); 660return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.StackProbe); 663return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.GCPoll); 798return _compilation.NodeFactory.MethodEntrypoint(_compilation.NodeFactory.TypeSystemContext.GetCoreLibEntryPoint("System"u8, "Type"u8, "GetTypeFromMethodTable"u8, null)); 800return _compilation.NodeFactory.MethodEntrypoint(_compilation.NodeFactory.TypeSystemContext.GetCoreLibEntryPoint("Internal.Runtime.CompilerHelpers"u8, "SharedCodeHelpers"u8, "GetClassHandleFromMethodParam"u8, null)); 806if ((_compilation._compilationOptions & RyuJitCompilationOptions.ControlFlowGuardAnnotations) != 0 808&& _compilation.NodeFactory.TypeSystemContext.Target.Architecture != TargetArchitecture.X86) 809return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.InterfaceDispatchGuarded); 810return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.InterfaceDispatch); 812if (_compilation.TypeSystemContext.Target.Architecture == TargetArchitecture.Wasm32) 813return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.ResolveInterfaceMethod); 814return _compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.ResolveInterfaceMethodFast); 825return _compilation.NodeFactory.ExternIndirectFunctionSymbol(new Utf8String("__guard_check_icall_fptr"u8)); 827return _compilation.NodeFactory.ExternIndirectFunctionSymbol(new Utf8String("__guard_dispatch_icall_fptr"u8)); 833MethodDesc methodDesc = JitHelper.GetEntryPoint(_compilation.TypeSystemContext, id); 836? _compilation.NodeFactory.ReadyToRunHelper(id) 837: _compilation.NodeFactory.MethodEntrypoint(methodDesc); 852pResult = CreateConstLookupToSymbol(_compilation.NodeFactory.MethodEntrypoint(method)); 862stringObject = _compilation.NodeFactory.SerializedStringObject(""); 867stringObject = _compilation.NodeFactory.SerializedStringObject((string)literal); 957var typeSymbol = _compilation.NecessaryTypeSymbolIfPossible(type); 959RelocType rel = (_compilation.NodeFactory.Target.IsWindows) ? 1062_debugInfo = _compilation.GetDebugInfo(methodIL); 1070return _compilation.NodeFactory.ReadyToRunHelperFromTypeLookup(helperId, helperArgument, callerHandle.OwningType); 1074return _compilation.NodeFactory.ReadyToRunHelperFromDictionaryLookup(helperId, helperArgument, callerHandle); 1094|| _compilation.TypeSystemContext.IsGenericArrayInterfaceType(type)) 1168if (elementType.GetElementSize().AsInt == _compilation.TypeSystemContext.Target.PointerSize) 1188_compilation.DetectGenericCycles(methodIL.OwningMethod, method); 1191return _compilation.NodeFactory.MethodEntrypointOrTentativeMethod(method, isUnboxingThunk); 1278_compilation.NodeFactory.MetadataManager.NoteOverridingMethod(method, directMethod); 1366canDevirt = _compilation.IsEffectivelySealed(targetMethod); 1413lookupMethod = _compilation.TypeSystemContext.GetMethodForRuntimeDeterminedType(targetMethod.GetTypicalMethodDefinition(), (RuntimeDeterminedType)runtimeDeterminedConstrainedType); 1415lookupMethod = _compilation.TypeSystemContext.GetMethodForInstantiatedType(targetMethod.GetTypicalMethodDefinition(), (InstantiatedType)runtimeDeterminedConstrainedType); 1475CreateConstLookupToSymbol(_compilation.NodeFactory.FatFunctionPointer(targetMethod)); 1488targetMethod = _compilation.ExpandIntrinsicForCallsite(targetMethod, methodIL.OwningMethod); 1503_compilation.NodeFactory.StringAllocator(targetMethod) 1539instParam = _compilation.NodeFactory.MethodGenericDictionary(concreteMethod); 1544instParam = _compilation.NodeFactory.ConstructedTypeSymbol(concreteMethod.OwningType); 1581if (!_compilation.NeedsRuntimeLookup(constrainedHelperId, constrainedCallInfo)) 1601MethodDesc targetOfLookup = _compilation.GetTargetOfGenericVirtualMethodCall((MethodDesc)GetRuntimeDeterminedObjectForToken(ref pResolvedToken)); 1603_compilation.DetectGenericCycles( 1623_compilation.NodeFactory.DispatchCell(targetOfLookup 1638|| _compilation.TypeSystemContext.Target.Architecture == TargetArchitecture.Wasm32)) 1640bool isWasm = _compilation.TypeSystemContext.Target.Architecture == TargetArchitecture.Wasm32; 1661_compilation.NodeFactory.DispatchCell(targetMethod 1705_compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelperId.ResolveVirtualFunction, slotDefiningMethod)); 1735ISymbolNode typeHandleSymbol = _compilation.NecessaryTypeSymbolIfPossible(type); 1841DictionaryLayoutNode contextLayout = _compilation.NodeFactory.GenericDictionaryLayout( 1850helperId = _compilation.GetLdTokenHelperForType(td); 1867RuntimeMethodHandleNode methodHandleSymbol = _compilation.NodeFactory.RuntimeMethodHandle(method); 1885int pointerSize = _compilation.TypeSystemContext.Target.PointerSize; 1891Debug.Assert(!methodDesc.CanMethodBeInSealedVTable(_compilation.NodeFactory)); 1898int slot = VirtualMethodSlotHelper.GetVirtualMethodSlot(_compilation.NodeFactory, methodDesc, owningType); 1904if (_compilation.NeedsSlotUseTracking(owningType)) 1905_additionalDependencies.Add(_compilation.NodeFactory.VirtualMethodUse(methodDesc), "Virtual method call"); 1957pLookup = CreateConstLookupToSymbol(_compilation.NodeFactory.DirectPInvokeTarget(md)); 1964*ppCookieVal = (IntPtr*)ObjectToHandle(_compilation.NodeFactory.ExternVariable(new Utf8String("__security_cookie"u8))); 1997if (_compilation.HasLazyStaticConstructor(owningType) && !((MetadataType)owningType).IsBeforeFieldInit) 2017MethodDesc stub = _compilation.PInvokeILProvider.GetCalliStub( 2030if (_compilation.GetMethodIL(method) is Internal.IL.Stubs.PInvokeILStubMethodIL stub) 2054if (_compilation.TypeSystemContext.Target.Architecture == TargetArchitecture.ARM) 2094return (int*)ObjectToHandle(_compilation.NodeFactory.ExternVariable(new Utf8String("RhpTrapThreads"u8))); 2118fieldOffset += _compilation.NodeFactory.ThreadStaticBaseOffset(mt); 2132ISymbolNode node = _compilation.GetFieldRvaData(field); 2137if (_compilation.HasLazyStaticConstructor(field.OwningType)) 2172helper = _compilation.NodeFactory.ReadyToRunHelperFromTypeLookup( 2178helper = _compilation.NodeFactory.ReadyToRunHelperFromDictionaryLookup( 2204ISortableSymbolNode index = _compilation.NodeFactory.TypeThreadStaticIndex(field.OwningType); 2210if (_compilation.HasLazyStaticConstructor(field.OwningType)) 2228baseAddr = _compilation.NodeFactory.TypeGCStaticsSymbol(field.OwningType); 2233baseAddr = _compilation.NodeFactory.TypeNonGCStaticsSymbol(field.OwningType); 2237if (_compilation.HasLazyStaticConstructor(field.OwningType)) 2246_compilation.NodeFactory.ReadyToRunHelper(helperId, field.OwningType)); 2255if (_compilation.IsInitOnly(field)) 2279if (_compilation.TypeSystemContext.IsArrayVariantCastable(type)) 2286return !_compilation.CanReferenceConstructedTypeOrCanonicalFormOfType(type) 2287&& (type == canonType || !_compilation.CanReferenceConstructedMethodTable(canonType)); 2309if (_compilation.IsEffectivelySealed(type)) 2315TypeDesc[] implClasses = _compilation.GetImplementingClasses(type); 2343if (!field.IsThreadStatic && _compilation.IsInitOnly(field) && field.OwningType is MetadataType owningType) 2350PreinitializationManager preinitManager = _compilation.NodeFactory.PreinitializationManager; 2356int targetPtrSize = _compilation.TypeSystemContext.Target.PointerSize; 2372if (value.GetRawData(_compilation.NodeFactory, out object data)) 2421int strDataOffset = _compilation.TypeSystemContext.Target.PointerSize + sizeof(int); // 12 on 64bit 2448return ObjectToHandle(_compilation.NecessaryRuntimeTypeIfPossible(type)); 2474addr.addr = (void*)ObjectToHandle(_compilation.NodeFactory.TypeNonGCStaticsSymbol(type)); 2476offset = -NonGCStaticsNode.GetClassConstructorContextSize(_compilation.NodeFactory.Target); 2486addr.addr = (void*)ObjectToHandle(_compilation.NodeFactory.TypeGCStaticsSymbol(type)); 2491addr.addr = (void*)ObjectToHandle(_compilation.NodeFactory.TypeNonGCStaticsSymbol(type)); 2499pInfo->tlsIndexObject = CreateConstLookupToSymbol(_compilation.NodeFactory.ExternDataSymbol(new Utf8String("_tls_index"u8))); 2500pInfo->tlsRootObject = CreateConstLookupToSymbol(_compilation.NodeFactory.TlsRoot); 2501pInfo->threadStaticBaseSlow = CreateConstLookupToSymbol(_compilation.NodeFactory.HelperEntrypoint(HelperEntrypoint.GetInlinedThreadStaticBaseSlow)); 2502pInfo->tlsGetAddrFtnPtr = CreateConstLookupToSymbol(_compilation.NodeFactory.ReadyToRunHelper(ReadyToRunHelper.TlsGetAddr));
parent\parent\Common\JitInterface\CorInfoImpl.cs (81)
191get => field ??= _compilation.TypeSystemContext.SystemModule.GetType( 211return _compilation.Logger; 434if (_compilation.TypeSystemContext.Target.Architecture != TargetArchitecture.ARM64 435&& _compilation.TypeSystemContext.Target.Architecture != TargetArchitecture.LoongArch64 436&& _compilation.TypeSystemContext.Target.Architecture != TargetArchitecture.RiscV64) 508_compilation.NodeFactory.Target.MinimumFunctionAlignment : 509_compilation.NodeFactory.Target.OptimumFunctionAlignment; 559if (_compilation.NodeFactory.Target.IsWasm && _ehClauses is not null) 613CodeBasedDependencyAlgorithm.AddDependenciesDueToMethodCodePresence(_additionalDependencies, _compilation.NodeFactory, MethodBeingCompiled, methodIL); 697return _compilation.TypeSystemContext.Target.PointerSize; 1059if (_compilation.TypeSystemContext.Target.Architecture == TargetArchitecture.X86) 1199if (_compilation.IsEffectivelySealed(method.GetUnboxedMethod())) 1204if (_compilation.IsEffectivelySealed(method)) 1352method = _compilation.TypeSystemContext.GetMethodForInstantiatedType(method.GetTypicalMethodDefinition(), (InstantiatedType)type); 1378MethodDesc instantiatedMethod = _compilation.TypeSystemContext.GetMethodForInstantiatedType(method.GetTypicalMethodDefinition(), instantiatedCtxType); 1381instantiatedMethod = _compilation.TypeSystemContext.GetInstantiatedMethod(instantiatedMethod, method.Instantiation); 1390if (!_compilation.CanInline(MethodBeingCompiled, method)) 1394MethodIL methodIL = method.IsUnboxingThunk() ? null : _compilation.GetMethodIL(method); 1433var calleeIL = _compilation.GetMethodIL(calleeMethod); 1442if (_compilation.CanInline(callerMethod, calleeMethod)) 1474var methodIL = _compilation.GetMethodIL(HandleToObject(ftn)); 1520decl = _compilation.TypeSystemContext.GetMethodForInstantiatedType(decl.GetTypicalMethodDefinition(), (InstantiatedType)ownerTypeDesc); 1524MethodDesc originalImpl = _compilation.ResolveVirtualMethod(decl, objType, out info->detail); 1694info->instParamLookup.constLookup = CreateConstLookupToSymbol(_compilation.NodeFactory.ConstructedTypeSymbol(originalImpl.OwningType)); 1733MethodILScope scope = jitInterface._compilation.GetMethodIL(methodWithToken.Method); 1793MetadataType placeholderType = _compilation.TypeSystemContext.SystemModule.GetType("System"u8, "SZGenericArrayEnumerator`1"u8, throwIfNotFound: false); 1991result = _compilation.TypeSystemContext.GetAsyncVariantMethod((MethodDesc)result); 2066_compilation.TypeSystemContext.EnsureLoadableMethod(method); 2079_compilation.NodeFactory.MetadataManager.GetDependenciesDueToAccess(_additionalDependencies, _compilation.NodeFactory, (MethodIL)methodIL, method); 2085? _compilation.TypeSystemContext.GetAsyncVariantMethod(method) 2116_compilation.TypeSystemContext.EnsureLoadableType(owningClass); 2120_compilation.NodeFactory.MetadataManager.GetDependenciesDueToAccess(_additionalDependencies, _compilation.NodeFactory, (MethodIL)methodIL, field); 2147_compilation.TypeSystemContext.EnsureLoadableType(type); 2186if (_compilation.IsFatPointerCandidate(methodIL.OwningMethod, methodSig)) 2215return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(result)); 2393if (_compilation.IsEffectivelySealed(type)) 2970!_compilation.HasLazyStaticConstructor(type) 3070return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.Object)); 3073return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.TypedReference)); 3076return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.RuntimeTypeHandle)); 3079return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.RuntimeFieldHandle)); 3082return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.RuntimeMethodHandle)); 3085ThrowHelper.ThrowTypeLoadException("System", "RuntimeArgumentHandle", _compilation.TypeSystemContext.SystemModule); 3089return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.String)); 3092return ObjectToHandle(_compilation.TypeSystemContext.SystemModule.GetKnownType("System"u8, "RuntimeType"u8)); 3095return ObjectToHandle(_compilation.TypeSystemContext.SystemModule.GetKnownType("System.Numerics"u8, "Vector`1"u8)); 3290return _compilation.IsEffectivelySealed(type); 3404return (void*)ObjectToHandle(_compilation.GetFieldRvaData(fd)); 3686if (_compilation.NodeFactory.Target.IsWasm) 3691else if (_compilation.NodeFactory.Target.IsWindows) 3701pEEInfoOut.osType = TargetToOs(_compilation.NodeFactory.Target); 3706DefType continuation = _compilation.TypeSystemContext.ContinuationType; 3712DefType asyncHelpers = _compilation.TypeSystemContext.SystemModule.GetKnownType("System.Runtime.CompilerServices"u8, "AsyncHelpers"u8); 3728NodeFactory factory = _compilation.NodeFactory; 3739WasmTypeNode typeNode = _compilation.NodeFactory.WasmTypeNode(typeArray); 3756CompilerTypeSystemContext context = _compilation.TypeSystemContext; 3837CompilerTypeSystemContext context = _compilation.TypeSystemContext; 3906return ObjectToHandle(_compilation.TypeSystemContext.GetContinuationType(gcMapBuilder.ToGCMap())); 4056HandleToObject(structHnd), _compilation.TypeSystemContext.Target.Architecture); 4392=> (chunk.flags & CorJitAllocMemFlag.CORJIT_ALLOCMEM_HAS_POINTERS_TO_CODE) != 0 && !_compilation.TypeSystemContext.Target.IsWindows; 4531var target = _compilation.TypeSystemContext.Target; 4838switch (_compilation.TypeSystemContext.Target.Architecture) 4857return (uint)node.GetAlignment(_compilation.NodeFactory); 4866TargetArchitecture arch = _compilation.TypeSystemContext.Target.Architecture; 4933return owningMetadataType.Module == _compilation.TypeSystemContext.SystemModule; 4942flags.InstructionSetFlags.Add(_compilation.InstructionSetSupport.OptimisticFlags); 4952TargetArchitecture targetArchitecture = _compilation.TypeSystemContext.Target.Architecture; 4959Debug.Assert(_compilation.InstructionSetSupport.IsInstructionSetSupported(InstructionSet.X86_X86Base)); 4963Debug.Assert(_compilation.InstructionSetSupport.IsInstructionSetSupported(InstructionSet.ARM64_AdvSimd)); 4967if (targetArchitecture == TargetArchitecture.ARM && !_compilation.TypeSystemContext.Target.IsWindows) 5022|| (_compilation.TypeSystemContext.IsSpecialUnboxingThunk(this.MethodBeingCompiled) && _compilation.TypeSystemContext.GetTargetOfSpecialUnboxingThunk(this.MethodBeingCompiled).IsAsyncCall()) 5023|| (_compilation.TypeSystemContext.IsDefaultInterfaceMethodImplementationInstantiationThunk(this.MethodBeingCompiled) && _compilation.TypeSystemContext.GetTargetOfDefaultInterfaceMethodImplementationInstantiationThunk(this.MethodBeingCompiled).IsAsyncCall()) 5135PgoSchemaElem[] pgoResultsSchemas = _compilation.ProfileData[methodDesc]?.SchemaData; 5146, _compilation.CanReferenceConstructedMethodTable 5241instructionSet = InstructionSetFlags.ConvertToImpliedInstructionSetForVectorInstructionSets(_compilation.TypeSystemContext.Target.Architecture, instructionSet); 5243Debug.Assert(!_compilation.InstructionSetSupport.NonSpecifiableFlags.HasInstructionSet(instructionSet)); 5245return supportEnabled ? _compilation.InstructionSetSupport.IsInstructionSetSupported(instructionSet) : false;