summaryrefslogtreecommitdiff
path: root/src/vm/compile.h
AgeCommit message (Collapse)AuthorFilesLines
2019-04-03Remove ADID and ADIndex from CoreCLR (#23588)David Wrighton1-5/+0
- Remove concept of AppDomain from object api in VM - Various infrastructure around entering/leaving appdomains is removed - Add small implementation of GetAppDomain for use by DAC (to match existing behavior) - Simplify finalizer thread operations - Eliminate AppDomain::Terminate - Remove use of ADID from stresslog - Remove thread enter/leave tracking from AppDomain - Remove unused asm constants across all architectures - Re-order header inclusion order to put gcenv.h before handletable - Remove retail only sync block code involving appdomain index
2019-01-23Remove all traces of FEATURE_STACK_PROBE. (#22149)Filip Navara1-1/+0
2019-01-03Remove unnecessary propagation of stack crawl marks. (#21781)Filip Navara1-1/+0
2018-12-18Fix stack walking and reporting of default interface methods (#21525)Michal Strehovský1-1/+2
Default interface methods in their unresolved state don't have a generic context. The generic context is only added once the method is resolved to its implementation.
2018-11-20Delete CORCOMPILE_IMPORT_TABLE_ENTRY (#21109)Jan Kotas1-5/+4
2018-08-11Make RuntimeType sealed and deleted support for introspection only loads ↵Jan Kotas1-1/+0
(#19427) - Sealed Runtime makes `is RuntimeType` and similar checks faster. These checks are fairly common in reflection. - Delete support for introspection only loads from the runtime. We do not plan to use in .NET Core. The support for introspection loads inherited from RuntimeType and thus it is incompatible with sealed RuntimeType.
2018-07-17 Add pooling for JIT scratch memory (#18924)Jan Kotas1-0/+2
Fixes #3408
2018-03-10Set IsGeneratingNgenPDB flag early (#16882)Jan Kotas1-0/+5
Fixes #16864
2018-03-10crossgen plumbing cleanup (#16883)Jan Kotas1-2/+1
* Delete unused ForceFullTrust command line option for crossgen * Delete ALLOW_LOCAL_WORKER define * Delete Zapper::m_legacyMode * Delete ngenparser.inl
2017-12-12Remove undefined and unused getPersonalityValue function from CEECompileInfo ↵Egor Chesakov1-4/+0
(#15482)
2017-07-12Improvements in the Zapper to VM interface, no longer throw exceptions ↵Brian Sullivan1-1/+1
across the interface. Catch the exception on the VM side of the interface call and report the error to the zapper using an Error() function call rather than letting the exception go across tyhe interface call. The interface methods LoadIBCTypeHelper and LoadIBCMethodHelper no longer need a ThrowsViolation in their contracts. Instead oif using BAD_FORMAT exceptions for a failures to load IBC data type and methods, we now throw TypeLoad exception.
2017-05-26Fix compile with disabled FEATURE_READYTORUN option (#11875)Petr Bred1-0/+2
- just remove FEATURE_READYTORUN definitions in clrdefinitions.cmake to turn off option Signed-off-by: Petr Bred <bredpetr@gmail.com>
2017-05-17Finish deleting dead CAS code from CoreLib (#11436)Jan Kotas1-1/+0
Fixes #9321 and deletes CleanupToDoList.cs Delete unmanaged security implementation
2017-02-13Rejit support for R2R imagesnoahfalk1-0/+2
Two changes: a) R2R code wasn't being reported to the Rejit Manager when it was used, this is a simple fix in prestub.cpp. This makes the ReJit API work. b) The bulk of the changes handle adding support for an inlining table to R2R so that ICorProfilerInfo6::EnumNgenMethodsInliningThisMethod can supply that information to profilers. This was only tested on Windows thus far, but there is no apparent reason this change would be OS specific.
2017-02-12Remove never defined FEATURE_FUSIONdanmosemsft1-25/+0
2017-02-10Remove always defined FEATURE_CORECLRdanmosemsft1-38/+0
2016-10-27Introduce new CORJIT_FLAGS typeBruce Forstall1-1/+1
The "JIT flags" currently passed between the EE and the JIT have traditionally been bit flags in a 32-bit word. Recently, a second 32-bit word was added to accommodate additional flags, but that set of flags is definitely "2nd class": they are not universally passed, and require using a separate set of bit definitions, and comparing those bits against the proper, 2nd word. This change replaces all uses of bare DWORD or 'unsigned int' types representing flags with CORJIT_FLAGS, which is now an opaque type. All flag names were renamed from CORJIT_FLG_* to CORJIT_FLAG_* to ensure all cases were changed to use the new names, which are also scoped within the CORJIT_FLAGS type itself. Another motivation to do this, besides cleaner code, is to allow enabling the SSE/AVX flags for x86. For x86, we had fewer bits available in the "first word", so would have to either put them in the "second word", which, as stated, was very much 2nd class and not plumbed through many usages, or we could move other bits to the "second word", with the same issues. Neither was a good option. RyuJIT compiles with both COR_JIT_EE_VERSION > 460 and <= 460. I introduced a JitFlags adapter class in jitee.h to handle both JIT flag types. All JIT code uses this JitFlags type, which operates identically to the new CORJIT_FLAGS type. In addition to introducing the new CORJIT_FLAGS type, the SSE/AVX flags are enabled for x86. The JIT-EE interface GUID is changed, as this is a breaking change.
2016-08-03Adding Support for FieldDescSlot generic dictionary entries for R2R generic ↵Fadi Hanna1-3/+4
code. (#6200) This enables generic code with ldtoken instructions for fields on generic types to be compiled into R2R. This change makes newer versions of the runtime compatible with older version R2R images, but not vice-versa. Therefore, the major version is increased to 2 with this change. This change adds more encodings to a R2R image without changing the format of any previously encoded entity, and is backwards compatible.
2016-06-03Fix desktop NGen break caused by CoreCLR change, and add a missing contractJohn Chen1-0/+1
[tfs-changeset: 1610323]
2016-06-01Add limit to number of generics methods to compile by CrossGen (#5383)John Chen1-0/+11
Recursive generic definitions can easily make CrossGen take very long time to complete. This is the cause of a failure in issue #5366. This is fixed by limiting the number of methods to compile by CrossGen.
2016-05-19Implementation of the following generic dictionary entries for R2R: (#5079)Fadi Hanna1-1/+2
MethodDescSlot MethodEntrySlot DispatchStubAddrSlot
2016-04-30Support generic methods without generic dictionaryJohn Chen (CLR)1-0/+4
2016-03-09Delete dead codeJan Kotas1-34/+3
- Delete BINDER, STANDALONE_BINDER and MDIL ifdefs
2016-02-03Integrate changes from full .NET FrameworkJan Kotas1-0/+2
- Custom attribute to suppress NGen with method granularity - Static contract fixes - GC fix [tfs-changeset: 1571860]
2016-01-27Update license headersdotnet-bot1-4/+3
2015-11-11Improve FEATURE_NATIVE_IMAGE_GENERATION ifdefsJan Kotas1-3/+3
2015-09-18Add support for NativeCallableAttributetijoytom1-0/+2
Apply [NativeCallable] attribute to a managed method and then it can be called from native code.Typical use would be passing a managed method as callback to native, now it can be done by wrapping the method in a delegate or directly using Marshal.GetFunctionPointerForDelegate.This's fine as long as we make sure that delegate is not garbage collected.[NativeCallable] introduce another way, where you can directly load the function pointer of a native callable method and use it as callback.This feature cannot be directly used from C#,but can be very useful in dynamic code generation scenarios where you want a callback to be passed to native. Here's an example of how it can be used. public static class NativeMethods { [DllImport("user32.dll")] public static extern int EnumWindows(IntPtr enumProc, IntPtr lParam); } //Method attributed with NativeCallable [NativeCallable] public static int CallbackMethod(IntPtr hWnd, IntPtr lParam){ return 1; } Now you can generate the below IL to load native callable function pointer ( LDFTN) and then pass it a native method. .locals init ([0] native int ptr) nop ldftn int32 CallbackMethod(native int,native int) stloc.0 ldloc.0 ldsfld native int System.IntPtr::Zero call bool NativeMethods::EnumWindows(native int,native int) pop ret Encoding native callable methods as ENCODE_METHOD_NATIVECALLABLE_HANDLE so that we don't have to check for the custom attribute at runtime to decode the method.Also fixing the remaining code review comments. Adding runtime check to prevent Native Callable methods from being used as calli target with an ldftn. Also adding some negative test cases , they are disabled for now since the tests failfast and msbuild report it as failure.
2015-07-08Add missing contracts to some destructorsJan Vorlicek1-1/+4
This change adds missing contract annotation to several destructors that were missing it.
2015-05-26Fix the virtual destructor warningJan Vorlicek1-1/+3
This change changes destructors to be virtual or adds virtual ones where they were missing based on the clang warnings.
2015-01-30Initial commit to populate CoreCLR repo dotnet-bot1-0/+919
[tfs-changeset: 1407945]