Age | Commit message (Collapse) | Author | Files | Lines |
|
This change removes executable memory mappings from crossgen. Now it
can be run on systems with PAX set to prevent executable mappings
without any marking using the paxctl.
|
|
Disable tests based on 13952
|
|
|
|
column is not aligned properly (#13856)
|
|
|
|
An indir in the runtime lookup sequence wasn't marked as nonfaulting
so dead context trees could not be entirely cleaned up.
Also added invariant since this particular lookup sequence will always
return the same result.
|
|
Update BuildTools, CoreClr, PgoData to prerelease-02014-02, preview1-25714-01, master-20170913-0045, respectively (master)
|
|
|
|
Both methods to the same, but the latter one is the offficial public name for the functionality
|
|
Remove some `goto`s that were added to work around undesirable jit
layout (#9692, fixed in #13314) and epilog factoring (improved in
#13792 and #13903), which are no longer needed.
Resolves #13466.
|
|
Renumber blocks before computing loop nest
|
|
|
|
Array.Reverse showed up as hot method in profiles of real workloads (e.g. it is called from Json.NET frequently via List.Reverse)
|
|
This change enables full end to end build of coreclr including
managed code on Alpine Linux.
|
|
Merge changes from TFS
|
|
preview1-25714-01, master-20170913-0045, respectively
|
|
Lower TEST(x, LSH(1, y)) to BT(x, y)
|
|
[tfs-changeset: 1674030]
|
|
Fix #13568
|
|
* Eliminate double delete in EventProvider cleanup
* Fix access after deletion error
* Simplify control flow
|
|
The loop nest computation expects to be able to test block numbers for
lexical inclusion, so do a renumbering pass first if blocks have been
moved.
Fixes #13919.
|
|
In my previous PR that added marking executables with paxctl, I've made
a mistake in the order of calling _add_library and add_dependencies.
But that was hidden due to the fact that we have yet another copy of the
add_library_clr and add_executable_clr functions in src/CMakeLists.txt.
I have no idea how that happened.
This one has overriden the other, which has hidden the problem, but also
caused the crossgen to not to be modified by the paxctl.
So I am fixing the order and removing the extra definitions of those
functions.
|
|
|
|
Fix potentially unused variable in lb arm
|
|
|
|
Use the same logic as in AMD64 code: when setting DebuggerREGDISPLAY from the context,
the context flags might not be initialized. Since it is only called from stackwalker,
we can copy valid integer, control, and floating point sections from the context.
|
|
|
|
This change adds marking native executables that coreclr build produces
(corerun, coreconsole, crossgen, ilasm, ildasm, crashdump) to using the
paxctl tool to allow them running on systems with PAX configured so that
creating executable memory mappings by applications is prohibited.
|
|
Before this fix, corerun would AV on certain invalid paths e.g.: corerun test.exe\
|
|
This allows inlining Span.Length accross versioning boundaries in R2R images. We are leaking the Span implementation details already because the Span indexer is treated as intrinsic. Marking a few more trivial methods as non-versionable should not do any future harm.
|
|
[RyuJIT/ARM32] Add ADDR and fixup return type correctly
|
|
This fix when parsing Hevrew dat e string formatted as dd/MM/yy. we didn't encounter the same on Windows before because default short date pattern on Windows is dd MMM yyyy which we can parse it successfully.
|
|
|
|
|
|
|
|
Improve const return block placement
|
|
[Arm64] Add GT_MULHI
|
|
[Arm64] Transform AND-CMP to TST
|
|
* Introduce FEATURE_GDBJIT_SYMTAB
This commit adds new feature FEATURE_GDBJIT_SYMTAB. When it's set
ELF file with symtab section will be generated for all JITed methods.
It helps lldb and gdb correctly unwind frames of JITed methods as they
can use assembly language inspection to determine location of saved
registers on stack.
* gdbjit symtab feature: use different symbols for each function in JITed code
|
|
Before the decision for numProcs to run in parallel for runtests.sh
was based on _NPROCESSORS_ONLN which harware which attempts to save
power (eg arm(64)) this number may be < numProcs.
|
|
preview1-25713-01, preview1-25712-02, master-20170912-0038, respectively (#13928)
|
|
* Re-implemented the ecvt function.
Instead of leveraging snprintf, re-implement the ecvt function according to the paper: https://www.cs.indiana.edu/~dyb/pubs/FP-Printing-PLDI96.pdf
Note:
1. This commit won't fix any existing bug.
2. This is a raw implementation of the paper. The performance on Linux only gain 10%. We could tune the performance further.
Fix #10651
* Resolve a cross platform header file issue.
Fix #10651
* Fixed a minor bug. Improved the performance.
Fix #10651
* Modified code according to code review feedback.
This commit fixed most of the issue found in code review. However, some of the feedback may not be involved due to either little performance improvement or need a POC.
Fix #10651
* Try to fix constexpr compile error on Windows.
Fix #10651
* Fixed a potential overflow bug in BigNum::Compare.
Fix #10651
* Improved multiply 10 operation.
Use shift and add operation to replace actual multiply operation.
Fix #10651
* Remove old _ecvt function.
Fix #10651
* Documented the reason why we do not need m+ and m-.
Fix #10651
* Changed exp > 0 to exp != 0 to remove any confusion.
exp should fall in 1 ~ 2046 for normalized value. Denormalized value has exp = 0.
Fix #10651
* Disable the _ecvt tests.
Fix #10651
* Removed _ecvt tests.
Fix #10651
* Re-implemented LogBase2.
Fix #10651
* Use DWORD and DWORD64 for _BitScanReverse and _BitScanReverse64
Fix #10651
* Fixed x86 compile issue for _BitScanReverse64
x86 does not support _BitScanReverse64 so we have to add additional shift operations to handle it.
Fix #10651
* Implemented BitScanReverse64 and BitScanReverse in pal.h
Fix #10651
* Remove the confusion comment which is unrelated to BitScanReverse.
Fix #10651
* Introduced wmemset to enhance the perf for 0.0
Fix #10651
* Improved the performance of converting 0.0.
Fix #10651
* Renamed ecvt to DoubleToNumberWorker.
Fix #10651
* Updated code according to the code review feedback.
Fix #10651
|
|
algorithm (#13920)
|
|
* [RyuJIT/ARM32] Implement CreateDictionaryLookupHelper only via run-time helper
Implement CreateDictionaryLookupHelper only via run-time helper
* Add assertion for checking CORINFO_USEHELPER
|
|
This change fixes a bug that causes crashes when secure delegate is
invoked on ARM32 with legacy codegen. Register R4 was loaded with
indirection slot address and immediatelly marked as trashed, so the JIT
compiler reused it before the call that was supposed to have that value
in R4.
The fix was to move the reg trashing after the call.
There was also an incorrect marking of that address as EA_PTRSIZE
while it should be EA_BYREF, so I've fixed that too.
|
|
|
|
Remove redundant zero-initialization of struct temps with GC fields.
Structs with GC pointer fields are fully zero-initialized in the prolog if compInitMem is true.
Therefore, we don't need to insert zero-initialization for the result of newobj or for inlinee locals
when they are structs with GC pointer fields and the basic bock is not in a loop.
|
|
|
|
If the only use of a box is in a call to Type:GetType, remove the box and
obtain the type directly. Get the handle needed for obtaining the type from
the newobj call in the original box, via a new box removal option.
Also add some logging to the type optimizations done in morph.
Closes #13187.
|
|
[Arm64] Allow a%b to a&(b-1) transform
|