Age | Commit message (Collapse) | Author | Files | Lines |
|
Remove the `asgdLclVar` analysis from liveness.
|
|
Hide types implemented in corefx
|
|
|
|
|
|
This analysis is not necessary for correctness and does not appear to
have any impact on the generated code: in particualr, internal assembly
diffs show no changes with this analysis disabled.
For example, consider the following statement:
`(asg (lclVar V0) (add (lclVar V0) (icon 4)))`
Under the `asgdLclVar` analysis, the visit of the lclVar node that is an
operand to the add would mark the lclVar node that is the target of the
assignment with `GTF_VAR_USEDEF` and exit without adding V0 to the
current set of used lclVars. Instead, the visit of the lclVar node that
is the target of the assignment would add V0 to both the set of used
lclVar nodes and the set of defined lclVar nodes.
With this analysis disabled, the visit of the lclVar node that is an
operand to the add will add V0 to the set of used lclVar nodes and the
visit of the lclVar node that is the target of the assignment will add
V0 to the set of defined lclVar nodes. In both cases, the result is the
same.
|
|
|
|
GNU which might not be installed on a minimal GNU/Linux installation.
Refs #6994 and #7025.
|
|
Remove `BasicBlock::bbVarTmp`.
|
|
This field was never used.
|
|
This reverts commit eea7b4691c0a489435814e48a257a9d047475006.
|
|
* Use x86 crossbuild for cross-architecture component on x64-linux
Fix build.sh and build system generator to use x86 cross-build system on x64-linux
- x86-host/ARM32-target cross-architecture component build on x64 linux
- use x86 root file system and cross buildtool
* Modify build.sh
- define new function: build_cross_arch_component
- fix typo
* Additional fix: build.sh
add usage description
- environment variable: CAC_ROOTFS_DIR
- argument: crosscomponent
|
|
* Use armel instead of arm-softfp for CoreCLR
- Update scripts for rootfs, build, build system generation and CI
- Update managed build project
- Rename rootfs directory
- Fix bug in rootfs script related to lldb package
lldb package only usable lldb-3.5-dev for jessie/arm-softfp
We cannot get lldb-3.6-dev or lldb-3.8-dev from jessie/arm-softfp repository
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Singed-off-by: Hyeongseok Oh <hseok82.oh@samsung.com>
* Update ARM32 CI script
We don't need a patch anymore, because we fixed cmake file.
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
|
|
The unsigned_abs function in jit.h is implemented using labs function.
However labs has 32 bit argument / result, while the unsigned_abs expects
it to be 64 bit.
The correct function to use for FEATURE_PAL is llabs. But since we now have
abs overload for __int64 in pal.h, we can just remove the #ifdef for FEATURE_PAL
and use the same implementation for both Unix and Windows.
|
|
Add a missing ref count bump in DecomposeLclFld.
|
|
Accelerate Abs intrinsic even in cases where there is no direct instruction support available.
|
|
* Fix VSO 359733.
This bug was an assertion when extracting side effects that failed when
checking that the presence or absence of value numbers on the head of
the side effect list matched the presence or absence of value numbers on
the node being added to the list. This condition does not hold when
remorphing, as remorphing may create nodes without value numbers. In
this case, the new comma node will have no value numbers for
conservative correctness. The failing assertion was weakened to allow
the presence/absence of value numbers on the head of the list and the
node being added to differ during remorphing.
|
|
Fix DevDiv 362706
|
|
DecomposeLclFld transforms a single lclFld node into two lclFld nodes
that reference the same lclVar, but was missing a corresponding ref
count bump. This was causing a failure in JIT/Methodical/fp/exgen/10w5d_cs_do
under JITStress=1 and JITStress=2.
|
|
The functions implementing various printf flavors in PAL were not handling
correctly the case when a string pointer passed to them for %S and %s formats
was NULL. Instead of printing `(null)`, they were crashing.
This change fixes the problem and also adds PAL tests to verify it is working
properly.
|
|
The issue here was that when we morphed a mod into a sub mul div, we would
ultimately decrease the ref counts to the numerator of the original mod
without performing a corresponding increase. The fix is to increase the
ref count when morphing into the sub mul div.
|
|
support available.
|
|
* "Adding Microsoft.NETCore.Native package"
* Adding generic linux configuration to Microsoft.NETCore.Native package
* Fixing the OSX pkgproj of Microsoft.NETCore.Native to include S.Globalization.Native.dylib and not .so
|
|
- Use const variant of path separators in the Path implementation
- Add fast paths for common cases to hot parsing routines
- Avoid redundant caches for MaxPath on Unix
|
|
|
|
Replace special unmanaged memory pool used by PathHelper by shared ArrayPool. Custom memory pools are not good for global system performance, and the particular implementation of the unmanaged memory pool was also problematic for CoreRT port because of its dependencies.
|
|
Replace ResolveWorkerChainLookupAsmStub with actual implementation
- code is copied from Win32 version
- replaced some parts to compile in linux
|
|
Implement SinglecastDelegateInvokeStub for x86/Linux
- Code copied from that of AMD64 and some translation
- Fixes LargeObjectAlloc.exe unit test case and maybe others
|
|
|
|
* TraceLogging
* SignatureHelper
* RuntimeReflectionExtensions
* RuntimeHandles - Public
* SemaphoreSlim - Public
* Directory - Public
* ModuleBuilder - Public
* EncoderFallback - Public - Test Failures
* StringBuilder - Public - Test Failures
|
|
Fix heap live-in calculation
|
|
Fix DevDiv bug 359737.
|
|
|
|
Fix a typo that caused AVX2 flag to be unset
|
|
Add CORE_LIBRARIES to the TPA list if it's set in unixcoreruncommon
|
|
|
|
|
|
EH normalization can leave incorrect ref counts. This caused asserts in a few
cases with the forthcoming finally cloning, as these EH related blocks were
exposed to flow optimizations.
|
|
This bug was an assertion during CSE that ensures that all CSE
candidates have value numbers. This assertion tripped because an earlier
CSE in the same tree as the faulty candidate re-morphed modulus by a
constant into a divide and subtract; the resulting tree was left without
value numbers. This change disables the problematic transform when
remorphing as part of CSE.
|
|
Fix issue #8736, a regression caused by PR #8624. A typo in
the code causes the AVX2 flag to be always unset.
|
|
Instead of using multiple calls to `string.Replace` to escape reserved
chars before appending to a `StringBuilder`, do the replacing while
appending the chars directly to the `StringBuilder`.
Also, append numbers/dates directly instead of running it through the
escape method, as these Invariant-formatted strings will not contain any
chars that need to be escaped.
|
|
This avoids placing duplicate entries on the TPA list.
|
|
* Use Array.Empty<T>() to make the code identical to CoreRT copy
The internal EmptyArray<T> does not exist in CoreRT.
* Remove unnecessary helper type for lazy initialization
All generic types are beforefieldinit by design.
* Use | for clarity
|
|
Avoid intermediate underlying array allocations as items are added to
the resulting List<string> by specifying the capacity. Also, change
the signature of the private method to return List<string> instead of
IEnumerable<string> to avoid the enumerator allocation when enumerating
the ids.
|
|
Some structs in crosscomp.h are already defined in pal.h or palrt.h
Fix to avoid duplicated definition
|
|
This fixes reverse P/Invoke segment faults by handling cdecl from UM to
fastcall for Managed code, which corrects many CoreFX unit test cases including CharMinValue.exe.
First and second parameter(s) are set to ECX, EDX and rest to the stack.
|
|
|
|
|
|
|
|
|
|
Update the code in liveness that sets the `fgCurHeapUse` flag (which needs
to identify whether the current block has an upwards-exposed use of the
heap) to set this unconditionally for opcodes that use the heap.
Previously, this code was avoiding setting the flag if the block has a
prior def of the heap, but in the absence of a guarantee to the contrary,
we must assume that the heap use may not alias the heap def, and so still
be upwards-exposed and cause the heap to be live-in to the block.
Also remove the OptRepeat workaround for the lack of this, in
`ResetOptAnnotations`.
Fixes #7846.
|