forked from dotnet/coreclr
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sync with dotnet/coreclr #1
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PrintSEHChain uses 'EXCEPTION_REGISTRATION_RECORD' which is not available for non-Windows platforms. This commit disables PrintSEHChain for non-Windows platforms to fix build error in x86/Linux.
Change NYI to be a noway_assert if ALT_JIT is not defined
The encoder was using size_t, a 32-bit type on x86, to accumulate opcode and prefix bits to emit. AVX support uses 3 bytes for prefixes that are higher than the 32-bit type can handle. So, change all code byte related types from size_t to a new code_t, defined as "unsigned __int64" on RyuJIT x86 (there is precedence for this type on the ARM architectures). Fixes #8331
Fix x86 encoder to use 64-bit type to accumulate opcode/prefix bits
Improve ArrayPool implementation and performance
This commit fixes logical-op-parentheses compile error for x86/Linux build.
I have discovered that when GUI assertion dialogs are disabled, the assert message is not shown anywhere and the app just silently exits. This change adds printing the message and stack trace to console in such case.
#8396) * Remove the BinaryCompatibility class as it is not useful on .NET Core and creates issues on Debug builds when the TFM on the AppDomain is not recognized. * Update the code for DateTimeFormatInfo to not use BinaryCompatibility * Remove initialization of preferExistingTokens now that we removed its usage
1. Recent PUTARG_STK work didn't consider SIMD arguments. 2. SSE3_4 work caused underestimation of instruction sizes for SSE4 instructions (e.g., pmulld).
CONTEXT struct for ARM64 does not contain X29 field.
* fix permissive C++ code (MSVC /permissive-) These were found by the C++ compiler group when doing "Real world code" build tests using /permissive-. We are sharing these with you to help you clean up your code before the new version of the compiler comes out. For more information on /permissive- see https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/. ---------------------------- Under /permissive-, skipping the initialization of a variable is not allowed. As an extension the compiler allowed this when there was no destructor for the type. void func(bool b) { if(b) goto END; int value = 0; //error C2362: initialization of 'value' is skipped by 'goto END' int array[10]; //Okay, not initialized. //... value used here END: return; } Fix 1) Limit the scope of value: { int value = 0; //... value used here } END: Fix 2) Initialize/declare value before the 'goto' int value = 0; if(b) goto END; //... value used here END: Fix 3) Don't initialize value in the variable declaration. int value; value = 0 //... value used here END: ------------------- Alternative token representations. The following are reserved as alternative representations for operators: and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq //Can't use reserved names for variables: static int and = 0; // Change name (possibly to 'and_') void func() { _asm { xor edx,edx // xor is reserved, change to uppercase XOR or eax,eax // or is reserved, change to uppercase OR } } * Apply formatting patch. * fixes from code review. I addressed @janvorli requests from the pull request code review.
Fix recent x86 SIMD regressions
Several functions are implemented in both cgenx86.cpp and unixstubs.cpp, which results in linking errors. This commit disables functions in cgenx86.cpp to resolve linking errors.
Update CoreClr, CoreFx to beta-24801-03, beta-24721-02, respectively
CORINFO_EH_CLAUSE_SAMEBLOCK flag is returned on mutually protecting EH clauses for CoreRT ABI. It is set on EH clauses that cover same try block as the previous one. The runtime cannot reliably infer this information from native code offsets without full description of duplicate clauses because of different try blocks can have same offsets. Alternative solution to this problem would be inserting extra nops to ensure that different try blocks have different offsets.
There is no native load/store instruction for Vector3/TYP_SIMD12, so we need to break this type down into two loads or two stores, with an additional instruction to put the values together in the xmm target register. AMD64 SIMD support already implements most of this. For RyuJIT/x86, we need to implement stack argument support (both incoming and outgoing), which is different from the AMD64 ABI. In addition, this change implements accurate alignment-sensitive codegen for all SIMD types. For RyuJIT/x86, the stack is only 4 byte aligned (unless we have double alignment), so SIMD locals are not known to be aligned (TYP_SIMD8 could be with double alignment). For AMD64, we were unnecessarily pessimizing alignment information, and were always generating unaligned moves when on AVX2 hardware. Now, all SIMD types are given their preferred alignment in getSIMDTypeAlignment() and alignment determination in isSIMDTypeLocalAligned() takes into account stack alignment (it still needs support for x86 dynamic alignment). X86 still needs to consider dynamic stack alignment for SIMD locals. Fixes #7863
… a race condition in the build (#8404)
Streamline LSRA resolution
Correctly sequence fgMorphModToSubMulDiv
Update CoreClr, CoreFx to beta-24815-03, beta-24815-03, respectively (master)
…ode (#8633) * Make it easier to use StringComparison & StringComparer with GetHashCode * model.xml
* Add try/catch blocks to DWARF info Use info about exception handling from IL and map it to native code as try/catch blocks in DWARF. * Improve locals naming convention consistency in gdbjit * Drop pointer to line info from FunctionMember after it is dumped
Update CoreFx to beta-24816-02 (master)
* Fix buildsystem for linux cross-architecture component build * refactoring build.sh, bug fix and typo fix * Update build.sh
* Dictionary.GetValueOrDefault * Fixed IDictionary.TryGetValue * remove extensions * // Method similar to TryGetValue that returns the value instead of putting it in an out param. * public TValue GetValueOrDefault(TKey key) => GetValueOrDefault(key, default(TValue));
The JIT is not able to inline the current implementation of Unsafe.AsRef because of it has type mismatch on return. Change the the corelib Span to call Unsafe.As instead since fixing the type mismatch is not easy in the internal corelib version of Unsafe.AsRef.
Update CoreClr to beta-24816-04 (master)
Packaging support for portable Linux binaries.
Flag field is currently full, and I need at least one more bit to identify the start of a cloned finally. Widen to 64 bits and update a few uses. Also removed an unused copy.
Ifdef more unused code that uses ReadProcessMemory. Move the current memory probing in the transport to PAL_ProbeMemory. Add PAL_ProbeMemory to dac PAL exports. PAL_ProbeMemory may be changed to use write/read on a pipe to validate the memory as soon as we make it perform as well as the current code. Remove ReadProcessMemory tests and add PAL_ProbeMemory pal tests.
* Adding arm64 and updating default subsystems
Add UMThunkStub method with logic from that of AMD64
* Fix .text and .thunk symbols overlapping When current method calls itself, a __thunk* symbol might be generated with the same address as the method symbol in .text section. Avoid generating such __thunk* symbol. * Do not create DWARF line table entries with the same address * For each HiddenLine assign a zero line number in DWARF Allow LLDB to to skip HiddenLines when stepping. * Fix __thunk symbols containing garbage Fix a bug when __thunk* symbols of previously compiled methods cause generation of __thunk* symbols for currently compiled method without filling symbol info. * Fix missing check for the end of list of compiled methods * Remove unnecessary check for zero prevLine in gdbjit
Widen basic block flag field to 64 bits
Fix an issue found in OneCoreUAP testing. According to MSDN, the official exporting DLL for IdnToAccii and IdnToUnicode is normaliz.dll, not kernel32.dll. While most Windows SKUs export these functions from both normaliz.dll and kernel32.dll, recent tests revealed that some Windows SKUs export them from normaliz.dll only.
Update build-packages.sh to support portableLinux
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.