summaryrefslogtreecommitdiff
path: root/src/zap/zapper.cpp
AgeCommit message (Collapse)AuthorFilesLines
2018-07-27Zapper::CompileAssembly: save NI file atomicallyKonstantin Baladurin1-1/+10
It can get rid of possible problems with corrupted NI files if crossgen will be killed during image saving.
2018-04-17[Arm64] Disable SIMD in crossgen (added as part of #14633)Carol Eidt1-8/+0
2018-04-05Rename conflicting definitions VER_MAJOR/MINORVERSION macros (#17364)Jan Kotas1-31/+0
* Rename conflicting definitions of VER_MAJOR/MINORVERSION These macros are defined by Windows SDK. They were overload to mean CLR version that was causing interesting redefinition issues. * Delete workaround for redefined Windows SDK macros * Delete ProjectN version * Delete dead code
2018-03-31Delete dead code to support OSes prior to Windows 7 (#17367)Jan Kotas1-3/+1
2018-03-10Set IsGeneratingNgenPDB flag early (#16882)Jan Kotas1-2/+2
Fixes #16864
2018-03-10crossgen plumbing cleanup (#16883)Jan Kotas1-69/+3
* Delete unused ForceFullTrust command line option for crossgen * Delete ALLOW_LOCAL_WORKER define * Delete Zapper::m_legacyMode * Delete ngenparser.inl
2018-01-23Delete dead code (#15990)Jan Kotas1-1/+0
2017-12-05[Arm64] Enable SIMD (#14633)Steve MacLean1-0/+8
* [Arm64] EXTERNAL_FeatureSIMD_Default = 1 * [Arm64] Enable SIMD compilation * [Arm64] Enable SIMD in crossgen * [Arm64] Allow SIMD in altjit Add flag SIMD16ByteOnly Set COMPlus_SIMD16ByteOnly=1 in x64_arm64_altjit.cmd If SIMD16ByteOnly, limit clear FLAG_USE_AVX2 to disable SIMD32 vector size Enable SIMD in protonjit * Fix #if per feedback
2017-10-27Delete dead code (#14703)Jan Kotas1-15/+0
2017-06-29Implement a /verbose flag to show the verbose output from crossgenBrian Sullivan1-1/+1
Added info on /verbose option to PrintUsageHelper() Convert printf(ascii) to wide strings in methodtable.cpp In build.cmd echo the crossgen /CreatePdb command line
2017-06-02Support COMPlus_JITMinOpts for crossgenCarol Eidt1-0/+7
In order to better enable throughput measurement and analysis, we would like to be able to specify COMPlus_JITMinOpts with crossgen.
2017-05-15Change relocations in ngen-ed code with PC-relative constants for Linux ARM32.Ruben Ayrapetyan1-4/+14
2017-03-21Add /silent option to crossgen (#10350)Bruce Forstall1-1/+1
This sets the NGenOptions.fSilent flag, which prevents displaying the final output message. This is useful for JIT asm diff generation.
2017-03-13Work for IBC profiling with ReadyToRun imagesBrian Sullivan1-10/+7
Incremented ReadyToRun version to 2.2 Implemented caching for IsInstrumented using IS_INSTRUMENTED_UNSET Added method Module::InitializeForProfiling() Added full support for method profile counts in ReadyToRun image
2017-02-14Remove never defined FEATURE_MULTIMODULE_ASSEMBLIESdanmosemsft1-140/+0
2017-02-12Remove never defined FEATURE_FUSIONdanmosemsft1-1927/+0
2017-02-12Remove remainder of FEATURE_CORECLR (tool missed some files, also comments)danmosemsft1-8/+8
2017-02-10Remove always defined FEATURE_CORECLRdanmosemsft1-227/+9
2016-11-07Change crossgen to always pass USE_SSE2 to the JIT.Pat Gavlin1-0/+5
.NET Core and the RyuJIT x86/x64 backends require SSE2. Always pass this flag to the JIT.
2016-10-27Introduce new CORJIT_FLAGS typeBruce Forstall1-24/+31
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-10-19Call JIT compiler's shutdown logic from crossgen. (#7663)Peter Kukol1-0/+9
* Call JIT compiler's shutdown logic from crossgen.
2016-08-08Modify "crossgen -createpdb" to skip loading clrjit.dll (#6607)John Chen (CLR)1-2/+40
The -JITPath option doesn't work properly when CrossGen is used to create a PDB file (issue #6607). Since clrjit.dll isn't really needed for creating PDB files, the issue is fixed by modifying CrossGen to skip loading clrjit.dll when -createpdb option is given. Also following suggestion from issue #6607, added a new switch -diasymreaderPath to CrossGen, to allow loading diasymreader.dll from an alternative path.
2016-05-16Initial change to support System.Private.CoreLib.dll as Core Library.Gaurav Khanna1-1/+1
2016-05-07Remove FEATURE_HOSTED_BINDER definition (#4838)Jan Vorlicek1-1/+1
The FEATURE_HOSTED_BINDER is always on so remove it from all the sources.
2016-05-02Enable crossgen to load JIT from a custom locationGaurav Khanna1-12/+38
Continue to link the JIT in for Windows Arm64 builds until 4717 is fixed.
2016-04-28Load JIT from a custom locationGaurav Khanna1-2/+2
2016-04-26Fix build break introduced by ↵Gaurav Khanna1-1/+3
https://github.com/dotnet/coreclr/commit/140396f479d5d33bca0daef1f072eef4992ed78e [tfs-changeset: 1599439]
2016-04-26Keep FEATURE_MERGE_JIT_AND_ENGINE with refactored approachGaurav Khanna1-4/+14
2016-03-24Delete legacy netcf compat support (final part)Jan Kotas1-32/+0
2016-03-16Update code to use COMPlus_ instead of COMPLUS_ when referencing knobsManu1-1/+1
2016-03-09Delete dead codeJan Kotas1-136/+3
- Delete BINDER, STANDALONE_BINDER and MDIL ifdefs
2016-02-29Support long paths in CoreCLR runtime on WindowsJohn Chen (JOCHEN7)1-3/+5
The CoreCLR runtime is updated to support long file paths on Windows. Pending updates to mscorlib.dll, the following scenarios are supported: * Run managed apps from a long path. * Load CoreCLR runtime and framework from a long path. * Load user assemblies from a long path. * Run CrossGen from a long path, with its input/output from a long path. * Generate debug log file at a long path. The following scenarios are not yet supported, and will be fixed in future commits: * Mscorlib.dll and framework assemblies are not yet long path compatible. Note that until mscorlib.dll is fixed, most of the runtime changes can't actually be used. * Support on non-Windows platforms. * Support for debugging and error reporting. * Tools such as ilasm or ildasm.
2016-02-23Expose a hosting interface for the JIT.Pat Gavlin1-0/+8
This is the first significant step towards removing the JIT's dependence on utilcode. This change introduces a new interface, `ICorJitHost`, that allows functionality that would usually be provided by the OS to be overridden by the program that is hosting the JIT. At the moment, this is limited to memory allocation and configuration value (e.g. environment variable) access. If the JIT exports a function named `jitStartup`, an instance of the `ICorJitHost` must be provided via that function before the first call to `getJit`. The VM and other implementors of the JIT interface have been updated accordingly. Most implementors should use the common implementation of `ICorJitHost` (cleverly named `JitHost`) in utilcode which respects the CLR's hosting policy. Note that this change does not update RyuJIT (or any other JITs) to use any of the functionality exposed by `ICorJitHost`; that work is left for future changes. [tfs-changeset: 1578176]
2016-02-19This Change Adds initial Support for LongFiles in the VM,Rama Krishnan Raghupathy1-6/+5
They are: 1. Wrappers for OS APIs which take or return PATHS 2. Fixing the usage of following Api's: GetEnvironmentVariableW SearchPathW GetShortPathNameW GetLongPathNameW GetModuleFileName Work remaining: Remove fixed size buffers in the VM
2016-01-27Update license headersdotnet-bot1-4/+3
2015-10-29Modify crossgen to allow loading NIs during Ready To Run compilationJohn Chen1-1/+1
[tfs-changeset: 1543250]
2015-09-08Replace MAX_PATH with new defines, rest of coreclr.Lakshmi Priya Sekar1-15/+15
2015-06-09Fix crossgen so that it doesn't attempt to get clr callbacks.Eugene Rozenfeld1-1/+1
This was preventing llilc from being used as an ngen jit. The fix is from Jan Kotas.
2015-05-07Merge changes from parent branchdotnet-bot1-5/+2
[tfs-changeset: 1466545]
2015-04-29Fix warnings introduced by crossgenJohn Chen (CLR)1-3/+3
2015-04-28Build crossgen for LinuxJohn Chen (JOCHEN7)1-2/+6
- Crossgen is now built as part of coreclr - Crossgen successfully compiles mscorlib.dll - Resulting mscorlib.ni.dll not yet usable
2015-04-07Merge changes from parent branchdotnet-bot1-4/+0
[tfs-changeset: 1448103]
2015-03-17Merge changes from parent branchdotnet-bot1-1/+1
[tfs-changeset: 1434167]
2015-02-19OS bug 1704585: WoW64 breakpoint in crossgen!debugError when compiling ARMCHKJohn Chen1-0/+1
Remove call to DebugBreak when crossgen encounters a case not supported by MDIL. Such scenarios are expected in production. Also fixed an uninitialized field in ZapperOptions, which caused some warnings from crossgen to be lost. [tfs-changeset: 1418191]
2015-01-30Initial commit to populate CoreCLR repo dotnet-bot1-0/+4220
[tfs-changeset: 1407945]