Vance Morrison [Tue, 30 May 2017 16:09:29 +0000 (09:09 -0700)]
Fix failures in ETW logging on 4GB aware 32 bit processes (#11941)
We incorrectly cast a 32 bit pointer to a 64 bit poitner using as a SIGNED integer.
If this is a 32 bit process that is using more than 2GB of memory this can result in
sign rather than zero extension. This makes the poitner invalid at the OS level
and causes the OS API to fail.
We disovered this in Visual Studio when debugging large (Rosyln) scenarios.
There were numerous failures which causes sever slowdowns becasue the
EventSource logged OutputDebugString events when the OS API failed.
The fix is to use unsigned extension. Note that I have confirmed that casting
from a IntPtr or a void* to a ulong does zero extension (that is it uses the target type
to determine whether to use sign or zero extension).
To be useful for Visual Studio, this needs to be ported to the desktop runtime.
Carol Eidt [Tue, 30 May 2017 15:31:47 +0000 (08:31 -0700)]
Merge pull request #11972 from hseok-oh/ryujit/issue_11971
[RyuJIT/ARM32] Fix offset of struct argument when using stack
Carol Eidt [Tue, 30 May 2017 15:30:15 +0000 (08:30 -0700)]
Merge pull request #11973 from hseok-oh/ryujit/issue_11837
[RyuJIT/ARM32] Fix assertion failed 'remainingSize == TARGET_POINTER_SIZE'
Hyeongseok Oh [Tue, 30 May 2017 10:05:35 +0000 (19:05 +0900)]
[RyuJIT/ARM32] Fix assertion failed 'remainingSize == TARGET_POINTER_SIZE'
Fix assertion failed by 'remainingSize == TARGET_POINTER_SIZE'
Fix to check register allocation correctly
Hyeongseok Oh [Tue, 30 May 2017 09:58:33 +0000 (18:58 +0900)]
[RyuJIT/ARM32] Fix offset of struct argument when using stack
Fix offset value when struct argument is passed on stack
Tom Deseyn [Mon, 29 May 2017 13:46:10 +0000 (15:46 +0200)]
Implement GetCurrentProcessCpuCount for Unix and merge NumberOfProcesors implementations. (#11742)
* Implement GetCurrentProcessCpuCount for Unix and merge NumberOfProcessors implementations.
* Split GetCurrentProcessCpuCount in PAL and non-PAL parts
* gcenv.unix.cpp: GetCurrentProcessAffinityMask: revert, GetCurrentProcessCpuCount: add implementation
* bugfix: #if instead of #ifdef HAVE_SCHED_GETAFFINITY
* Remove PAL_GetCurrentProcessCpuCount
* gcenv.unix: implement GetCurrentProcessAffinityMask, GetCurrentProcessCpuCount
* numa.cpp: initialize g_cpuToAffinity[i].Number when numa.h is missing
* cleanup
* mscorwks_unixexports.src: Add GetProcessAffinityMask
* PR feedback
* Add GetProcessAffinityMask to mscordac_unixexports.src
Buyduck [Mon, 29 May 2017 11:26:41 +0000 (14:26 +0300)]
added DWARF exprloc for static value class fields (#11911)
Morgan Brown [Sat, 27 May 2017 02:13:06 +0000 (19:13 -0700)]
Fix build breaks
* Remove UnitySerializationHolder references
* Remove the fields of StrongNameKeyPair
* Initialize BadImageFormatException._fusionLog
* Remove MemberInfoSerializationHolder references
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Morgan Brown [Sun, 28 May 2017 04:07:32 +0000 (21:07 -0700)]
IDeserializationCallback cleanup
Throws PlatformNotSupportedException from IDeserializationCallback and IObjectReference implementations on types that are no longer serializable.
mikedn [Sat, 27 May 2017 23:09:11 +0000 (02:09 +0300)]
Fix tool initialization detection (#11912)
init-tools.cmd attempts to create a file in a directory that doesn't exist. File creation fails and next time the script is run initialization will be performed again. That wastes a lot of time.
dotnet bot [Sat, 27 May 2017 23:07:59 +0000 (16:07 -0700)]
Update CoreClr to preview1-25327-01 (#11949)
Rich Lander [Sat, 27 May 2017 18:46:13 +0000 (11:46 -0700)]
Update test coverage statements in workflow doc
Rich Lander [Sat, 27 May 2017 05:01:25 +0000 (22:01 -0700)]
Update license links
dotnet bot [Sat, 27 May 2017 05:00:51 +0000 (22:00 -0700)]
Update CoreClr, CoreFx to preview1-25326-02, preview1-25324-02, respectively (#11932)
Rich Lander [Sat, 27 May 2017 04:56:27 +0000 (21:56 -0700)]
Update contributor docs (#11944)
* Update contributor docs
* Update
* Added up-for-grabs and ports
* Update binary licensing
* Update\
* Simplify developer workflow doc
* Update per feedback
José Rivero [Sat, 27 May 2017 01:01:05 +0000 (18:01 -0700)]
Enable linux perf runs (#11905)
- Removing `[assembly: MeasureInstructionsRetired]` from performance tests.
- Due to this issue: https://github.com/Microsoft/xunit-performance/issues/231, we are blocked from running on performance tests on Linux.
The tag is not used by infrastructure and it is passed during runtime when profiling on Windows.
- Adding the option to execute CoreRun with the stability prefix.
- Moving file to be archived by Jenkins and updating groovy file.
- Setting the maximum number of iterations.
Morgan Brown [Sat, 27 May 2017 00:45:37 +0000 (17:45 -0700)]
ISerializable cleanup (#11873)
Changes to throw PlatformNotSupportedException from ISerializable.GetObjectData and serialization constructors on non-Serializable types. Also removes private serialization constructors and some unneeded code that was used to support serializing non-serializable types. A few tests testing GetObjectData implementations are also removed. For Exception types, we call base instead of throwing from GetObjectData to be consistent with the many Exceptions that don't override GetObjectData
Brian Robbins [Fri, 26 May 2017 21:39:42 +0000 (14:39 -0700)]
Move rundown to the same code-site where we do ETW rundown before EEShutdown is marked as started. (#11937)
Brian Sullivan [Fri, 26 May 2017 18:08:01 +0000 (11:08 -0700)]
Merge pull request #11920 from briansull/crossgen-tuning
Remove the check that requires an instrumented flags for SPC when collecting IBC data
Sergey Andreenko [Fri, 26 May 2017 16:13:08 +0000 (09:13 -0700)]
Fix BitSetUint64, clean and improve the surrounding code. (#11721)
1. Add the functions that were not implemented in bitsetasuint64inclass/
2. BitSetUint64: make copy_constructor public
3. delete VARSET_INIT_NOCOPY and ALLVARSET_INIT_NOCOPY
4. delete VARSET_INIT and ALLVARSET_INIT.
5. Use the correct const type for VARSET_TP.
Carol Eidt [Fri, 26 May 2017 15:13:27 +0000 (08:13 -0700)]
Merge pull request #11823 from hqueue/arm/ryujit/lsra_gc_helper
[RyuJIT/ARM][LSRA] Update register mask for GC helper
Jan Kotas [Fri, 26 May 2017 14:17:51 +0000 (07:17 -0700)]
EETypeHashTable lookups can deadlock with GC during comparison with unrestored persisted TypeHandles (#11922)
Petr Bred [Fri, 26 May 2017 14:17:05 +0000 (17:17 +0300)]
Fix compile with disabled FEATURE_READYTORUN option (#11875)
- just remove FEATURE_READYTORUN definitions
in clrdefinitions.cmake to turn off option
Signed-off-by: Petr Bred <bredpetr@gmail.com>
Hyung-Kyu Choi [Fri, 26 May 2017 07:12:33 +0000 (16:12 +0900)]
[RyuJIT/ARM32] Update RMB for helper function
Make RBM_CALLEE_TRASH be consistent with CORINFO_HELP_STOP_FOR_GC helper
which is JIT_RareDisableHelper defined in vm/arm/asmhelpers.S
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Michal Strehovský [Fri, 26 May 2017 01:24:34 +0000 (18:24 -0700)]
Merge pull request dotnet/corert#3709 from dotnet/nmirror
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Joseph Tremoulet [Fri, 26 May 2017 05:41:38 +0000 (01:41 -0400)]
Merge pull request #11917 from JosephTremoulet/RationalCall
Clear GTF_CALL from non-calls in rationalize
Brian Sullivan [Thu, 25 May 2017 22:27:15 +0000 (15:27 -0700)]
Remove the check that requires an instrumented flags for mscorlib when collecting IBC data
This is not needed for CoreCLR and blocks some valuable usage cases.
Carol Eidt [Thu, 25 May 2017 22:01:33 +0000 (15:01 -0700)]
Merge pull request #11878 from CarolEidt/ContainLclVars
Make non-tracked lclVars contained
Pat Gavlin [Thu, 25 May 2017 21:55:27 +0000 (14:55 -0700)]
Merge pull request #11919 from pgavlin/XunitTestResults
Add XUnit results for Windows_NT x86 jobs.
Pat Gavlin [Thu, 25 May 2017 21:35:24 +0000 (14:35 -0700)]
Merge pull request #11880 from mskvortsov/FixSetRegToCond
[RyuJIT/arm32] Fix genRegSetToCond() for FP case
Pat Gavlin [Thu, 25 May 2017 21:29:48 +0000 (14:29 -0700)]
Add XUnit results for Windows_NT x86 jobs.
Carol Eidt [Fri, 28 Apr 2017 22:32:07 +0000 (15:32 -0700)]
Make untracked lclVars contained
Make untracked lclVars contained where possible.
Brian Robbins [Thu, 25 May 2017 19:28:24 +0000 (12:28 -0700)]
Implement Activity ID / Related Activity ID for EventSources Writing to EventPipe (#11904)
* Implement thread-local storage of activity ids.
* Plumb the activity id and related activity id into the trace file.
Joseph Tremoulet [Thu, 25 May 2017 19:14:48 +0000 (15:14 -0400)]
Clear GTF_CALL from non-calls in rationalize
Since rationalization hoists comma antecedents out into separate
statements, any side-effects that the antecedent had might no longer apply
to the comma's ancestor nodes. Moreover, in LIR, side-effect flags need
only describe the immediate node; summary flags are computed when Ranges
are constructed. So, update rationalize to clear the `GTF_CALL` flag from
any node that is not a call. Failure to do so gives an
overly-conservative view of side-effects, which can inhibit dead store
removal.
Jarret Shook [Thu, 25 May 2017 15:46:08 +0000 (08:46 -0700)]
Merge pull request #11834 from jashook/renable_arm64_span_test
[Arm64 Windows] Renable SpanBench
Hyeongseok Oh [Tue, 16 May 2017 10:37:03 +0000 (19:37 +0900)]
[ARM32/Linux] Copy tests.zip only for CI test
Copy tests.zip only from x64 Windows build for CI test
We can reduce saved build results of linux/arm in CI machine
Tomáš Matoušek [Thu, 25 May 2017 06:48:05 +0000 (23:48 -0700)]
Adds System.Runtime.CompilerServices.Runtimefeature.PortablePdb (#11845)
Aditya Mandaleeka [Thu, 25 May 2017 06:47:28 +0000 (23:47 -0700)]
Remove g_fEEManagedEXEStartup and g_fEEIJWStartup. (#11907)
Brian Robbins [Thu, 25 May 2017 01:19:22 +0000 (18:19 -0700)]
Mark the EventPipe crst as host breakable. (#11899)
dotnet bot [Thu, 25 May 2017 01:15:00 +0000 (18:15 -0700)]
Update CoreClr, CoreFx to preview1-25323-01, preview1-25323-02, respectively (master) (#11809)
* Update CoreClr, CoreFx to preview1-25323-01, preview1-25323-02, respectively
* Update corefx package versions in projects
Jonghyun Park [Thu, 25 May 2017 00:42:31 +0000 (09:42 +0900)]
[x86/Linux] Reentrant PEImage::Load (#11867)
* [x86/Linux] Reentrant PEImage::Load
* Use HasLoadedLayout and add comments
Pat Gavlin [Wed, 24 May 2017 23:45:04 +0000 (16:45 -0700)]
Merge pull request #11894 from pgavlin/gh11804
Never enregister type-punned regStruct lclVars.
Xiang Fan [Wed, 24 May 2017 22:51:38 +0000 (15:51 -0700)]
Fix Issue 11861 (#11886)
* Fix issues exposed by building with MSVC and /permissive-.
Using full-qualified name to declare members inside class is ill-formed and incorrectly allowed by MSVC.
MSVC now gives error when /permissive- is used.
* Add a forward declaration for SafeAddRef from utilcode.h.
SafeAddRef in holder.h calls SafeAddRef in utilcode.h. The latter hasn't been declared yet, so it isn't a valid candidate during overload resolution.
It happens to work in MSVC default mode because of the lack of two phase name lookup.
gbalykov [Wed, 24 May 2017 22:50:26 +0000 (01:50 +0300)]
Allow RelativePointer::SetValue usage for non-DAC builds only (#11891)
Joseph Tremoulet [Wed, 24 May 2017 22:12:28 +0000 (18:12 -0400)]
Merge pull request #11893 from JosephTremoulet/WeakenIBRAssert
Weaken type assertion in gtNewLclNode
Joseph Tremoulet [Wed, 24 May 2017 21:44:28 +0000 (17:44 -0400)]
Merge pull request #11883 from JosephTremoulet/PromotedStructRefs
Update full-struct references to promoted IBR args
Brian Robbins [Wed, 24 May 2017 21:43:54 +0000 (14:43 -0700)]
Indicate if thread time events are in managed or native code. (#11892)
Jarret Shook [Wed, 24 May 2017 20:37:59 +0000 (13:37 -0700)]
Merge pull request #11832 from jashook/add_1_mod_1_case
Add the case 1 % 1 to our bringup test
Pat Gavlin [Wed, 24 May 2017 19:34:09 +0000 (12:34 -0700)]
Never enregister type-punned regStruct lclVars.
Type-punned lclVars--i.e. lclVars that are accessed via
`(INDIR Tx (ADDR (LCLVAR Ty V)))`--are currently considered
enregisterable if they are SIMD-typed, have not been the accessed by
field, and have not otherwise been declared unenregisterable. This
appears to be an oversight, as the JIT is not able to generate correct
code for the type-punned access if the lclVar is in fact enregistered.
This change removes the special case for these SIMD-typed lclVars.
Fixes #11804.
Joseph Tremoulet [Wed, 24 May 2017 20:08:36 +0000 (16:08 -0400)]
Weaken type assertion in gtNewLclNode
Implicit byref parameters originally have struct type in both the lvaTable
and on their appearances in the IR. In fgRetypeImplicitByRefArgs, the
types in the lvaTable are updated, and subsequently, during global morph,
in fgMorphImplicitByRefArgs, the types of their appearances in the IR are
updated. Weaken an assertion in lcl var creation to allow the type
disagreement for implicit byref parameter references during global morph.
Fixes #11831.
Joseph Tremoulet [Wed, 24 May 2017 19:37:15 +0000 (15:37 -0400)]
Improve comments around implicit byref rewrite
A number of fields on the LclVarDsc get hijacked during the multi-stage
rewrite of implicit-by-reference parameters; add comments at the fields'
declarations as well as the hijacking uses.
Steve MacLean [Wed, 24 May 2017 18:31:44 +0000 (14:31 -0400)]
[Arm64/Win] Revise JIT_MemSet (#11420)
* [Arm64/Win] Revise JIT_MemSet
This is the Windows equivalent of #11217 which merged
* [Arm64/Win] Use csel<con> for csel
MS Assembler expects csel<cond> for the csel instruction
Jonghyun Park [Wed, 24 May 2017 17:34:59 +0000 (02:34 +0900)]
[x86/Linux] Thread-safe UMThunkMarshInfo::RunTimeInit (#11864)
Joseph Tremoulet [Wed, 24 May 2017 16:23:52 +0000 (12:23 -0400)]
Update full-struct references to promoted IBR args
Update fgMorphImplicitByRefArgs to rewrite references to struct-promoted
implicit-by-reference parameters as references to the new struct temps
created in fgRetypeImplicitByRefArgs; fgMorphStructField isn't updating
these because it's only interested in field references, and runs upstream
of fgRetypeImplicitByRefArgs where the full struct temp is created,
anyway.
Invert the sense of lvPromoted for implicit byref args in the interim
between fgRetypeImplicitByRefArgs and fgMarkDemotedImplicitByRefArgs,
since now fgMarkDemotedImplicitByRefArgs needs to update both and would
look horribly backwards the other way around.
Fixes #11814.
Mikhail Skvortcov [Wed, 24 May 2017 15:01:36 +0000 (18:01 +0300)]
RyuJIT/arm32: Fix genRegSetToCond for FP cases
Swaroop Sridhar [Tue, 23 May 2017 21:33:36 +0000 (14:33 -0700)]
ILLink performance: Disable Roslyn Test
Temporarily disable roslyn test, since it is failing in the lab.
Morgan Brown [Wed, 24 May 2017 00:11:24 +0000 (17:11 -0700)]
Scale back [Serializable] on CoreCLR types (#11765)
Removes SerializableAttribute from CoreCLR types not intended to be serializable as well as adding special handling to MulticastDelegate to prevent serializing delegates (which can't be correctly serialized cross platform/runtime).
Brian Robbins [Tue, 23 May 2017 23:11:44 +0000 (16:11 -0700)]
Return early if EventPipeBuffer is empty. (#11855)
Jan Kotas [Tue, 23 May 2017 22:09:03 +0000 (15:09 -0700)]
Delete special handling of IJW RVA fields at NGen time (#11818)
Mixed mode managed C++ is not supported by CoreCLR so this is not needed for anything.
Fixes #11761
Joseph Tremoulet [Tue, 23 May 2017 21:57:56 +0000 (17:57 -0400)]
Merge pull request #11694 from JosephTremoulet/IconHoist
Don't hoist IConHandle statics above cctors
jashook [Tue, 23 May 2017 17:13:38 +0000 (10:13 -0700)]
[Arm64 Windows] Renable SpanBench
jashook [Tue, 23 May 2017 16:50:33 +0000 (09:50 -0700)]
Add the case 1 % 1 to our bringup test
Addresses lack of coverage shown in #7168.
Bruce Forstall [Tue, 23 May 2017 16:38:03 +0000 (09:38 -0700)]
Merge pull request #11366 from ruben-ayrapetyan/remove-zap-code-relocs-for-linux-arm32
Change relocations in ngen-ed code with PC-relative constants for Linux ARM32
Pat Gavlin [Tue, 23 May 2017 15:29:45 +0000 (08:29 -0700)]
Merge pull request #10275 from mikedn/x86-cmp-long-lower
Lower long compares that are materialized into a register
Mike McLaughlin [Tue, 23 May 2017 15:01:25 +0000 (08:01 -0700)]
Remove "corerun" sos plugin command. (#11812)
It broke building on debug osx and isn't used or needed anymore.
Ruben Ayrapetyan [Wed, 5 Apr 2017 18:08:32 +0000 (21:08 +0300)]
Direct mapping of IL-assembly images that don't contain writeable sections.
Ruben Ayrapetyan [Fri, 7 Apr 2017 10:25:42 +0000 (13:25 +0300)]
Extract PEImage::CreateLayoutMapped and PEImage::CreateLayoutFlat from PEImage::GetLayoutInternal.
Hyung-Kyu Choi [Tue, 23 May 2017 12:46:46 +0000 (21:46 +0900)]
[RyuJIT/ARM][LSRA] Update register mask for GC helper
CORINFO_HELP_STOP_FOR_GC helper preserves integer and double return register.
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Pat Gavlin [Tue, 23 May 2017 06:09:25 +0000 (23:09 -0700)]
Merge pull request #10990 from mikedn/narrow-test
Narrow TEST instructions when possible
Mike Danes [Sun, 19 Mar 2017 12:57:19 +0000 (14:57 +0200)]
Delete long compare support from x86 codegen
Mike Danes [Sat, 18 Mar 2017 00:39:25 +0000 (02:39 +0200)]
Lower long compares that are materialized into a register
Mike Danes [Sat, 18 Mar 2017 09:02:35 +0000 (11:02 +0200)]
Introduce GT_CMP and GT_SETCC(condition)
Michal Strehovský [Tue, 23 May 2017 01:27:19 +0000 (18:27 -0700)]
Use sigInst.methInstCount != 0 to detect generic methods (#11780)
`methInstCount` is the thing that RyuJIT uses to detect generic virtual
methods in another place. `CORINFO_CALLCONV_GENERIC` reporting was added
because nobody knew about `methInstCount`. We already report
`methodInstCount` in CoreRT. We can delete a couple of lines on the
CoreRT side by switching to this scheme.
Bruce Forstall [Tue, 23 May 2017 00:51:45 +0000 (17:51 -0700)]
Merge pull request #11810 from BruceForstall/FixUninitWarning
Fix VC++ C4201 warning on desktop build
Bruce Forstall [Tue, 23 May 2017 00:51:22 +0000 (17:51 -0700)]
Merge pull request #11797 from BruceForstall/CommonizeAdr
Handle INS_adr in emitIns_R_L on both arm32 and arm64
José Rivero [Mon, 22 May 2017 23:50:05 +0000 (16:50 -0700)]
Bump the version of the xUnit-Performance package (#11793)
- In a previous PR this was reverted and broke the Profile On/Off perf runs
Joseph Tremoulet [Mon, 22 May 2017 21:27:30 +0000 (17:27 -0400)]
Quiet warning C2220
This warning reports "potentially uninitialized local variable
`fieldOffset` used". The use is guarded by a check on `fieldHnd` being
non-null, and `fieldOffset` gets initialized properly on all paths that
set `fieldHnd` to something other than null, so the fix is simply to
initialize `fieldOffset` to 0 at its declaration so the compiler won't
complain.
Resolves #11800.
Bruce Forstall [Mon, 22 May 2017 23:07:08 +0000 (16:07 -0700)]
Fix VC++ C4201 warning on desktop build
Fixes #11808
Joseph Tremoulet [Mon, 22 May 2017 21:23:50 +0000 (17:23 -0400)]
Fix off-by-one error
The code in loop hoisting visiting a comma for a static init helper call
and static field access tried to clear the childrenHoistable bit for the
field, but had an off-by-one error and was instead clearing the bit for
the helper call, which could lead to missed legal helper call hoists.
Update that code to simply assert that the flag is already set for the
field (using the correct index), which must be true since the check is
guarded by a check that childIsCctorDependent is true for it.
Russ Keldorph [Mon, 22 May 2017 18:24:09 +0000 (11:24 -0700)]
Revert "Fixed tests build on Linux"
Bruce Forstall [Mon, 22 May 2017 20:08:42 +0000 (13:08 -0700)]
Merge pull request #11776 from parjong/fix/x86_STDMETHODCALLTYPE_as_cdecl
[x86/Linux] Set CDECL as STDMETHODCALLTYPE
Bruce Forstall [Mon, 22 May 2017 20:06:34 +0000 (13:06 -0700)]
Merge pull request #11778 from hqueue/arm/ryujit/float_ld_st
[RyuJIT/ARM32] Implement and add NYI assertion for load/store for float
Bruce Forstall [Mon, 22 May 2017 18:34:15 +0000 (11:34 -0700)]
Handle INS_adr in emitIns_R_L on both arm32 and arm64
Pat Gavlin [Mon, 22 May 2017 19:59:33 +0000 (12:59 -0700)]
Merge pull request #11750 from pgavlin/gh11734
Fix legality checks in SetRegOptionalForBinOp.
Jeremy Kuhne [Mon, 22 May 2017 19:49:08 +0000 (12:49 -0700)]
Update Unix SafeHandle to throw NotFound correctly (#11757)
* Update Unix SafeHandle to throw NotFound correctly
Need to match Windows semantics for missing files. This means throwing
FileNotFound only if the last segment of the path can't be found.
* Dispose handle and trim ending separator properly
Pat Gavlin [Mon, 22 May 2017 18:08:16 +0000 (11:08 -0700)]
Use operator/operand size for legality checks.
Bruce Forstall [Mon, 22 May 2017 18:05:11 +0000 (11:05 -0700)]
Merge pull request #11542 from BruceForstall/RefactorXarchCodegen
Refactor xarch codegen
Hyeongseok Oh [Mon, 22 May 2017 16:42:10 +0000 (01:42 +0900)]
[ARM32/RyuJIT] Enable passing struct argument that use stack only (#11541)
* [ARM32/RyuJIT] Enable passing struct argument that use stack only
Enable passing struct argument when it uses stack only.
Cannot pass splitted struct argument that uses stack and register(s) yet.
* Remove redundant GC type assignment and fix internal register count
- Remove redundant GC type assignment in genPutArgStk
- Fix internal register count for ARM32: 2 -> 1
Igor Kulaychuk [Mon, 22 May 2017 16:30:40 +0000 (19:30 +0300)]
Fix FieldDesc::GetExactFieldType when FieldDesc doesn't exactly represent the owner type (#10941)
* Fix FieldDesc::GetExactFieldType when FieldDesc doesn't exactly represent the owner type
To get the exact type from FieldDesc, field signature should point past the calling convention.
Ruben Ayrapetyan [Mon, 22 May 2017 14:38:20 +0000 (17:38 +0300)]
Delete default copy/move constructors and assignment operators of RelativePointer and RelativeFixupPointer. (#11745)
Bruce Forstall [Fri, 12 May 2017 06:39:39 +0000 (23:39 -0700)]
Refactor genCodeForTreeNode for xarch to match arm32/arm64
Almost all code in genCodeForTreeNode() has been placed in
separate functions, that match the names of function for
arm32/arm64.
Bruce Forstall [Mon, 22 May 2017 14:07:45 +0000 (07:07 -0700)]
Merge pull request #11710 from sjsinju/jump
[RyuJit/ARM32] Enable loading arguments when jump instruction
dotnet bot [Mon, 22 May 2017 14:02:09 +0000 (07:02 -0700)]
Report Span/ReadOnlySpan intrinsics to RyuJIT (dotnet/corert#3669) (#11775)
This lets RyuJIT optimize range checks on Span same way as it does for
arrays.
* Annotate the intrinsics
* Uncomment them in the table
* Report `sigInst` for all intrinsics
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Hyung-Kyu Choi [Mon, 22 May 2017 07:03:26 +0000 (16:03 +0900)]
[RyuJIT/ARM32] Implement and add NYI assertion for load/store for float
- Implement load/store for float where address is [base + index * scale]
- Add NYI assertion for not implemented cases to enable AltJit
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Jonghyun Park [Tue, 16 May 2017 05:30:36 +0000 (14:30 +0900)]
[x86/Linux] Use CDECL (instead of STDCALL) as STDMETHODCALLTYPE
Bruce Forstall [Mon, 22 May 2017 05:09:20 +0000 (22:09 -0700)]
Merge pull request #11526 from mskvortsov/MulLong
[RyuJIT/ARM32] Enable GT_MUL_LONG codegen
Atsushi Kanamori [Mon, 22 May 2017 04:52:23 +0000 (21:52 -0700)]
Implement HasSameMetadataDefinitionAs() on CoreCLR (#11774)
This api was approved here:
https://github.com/dotnet/corefx/issues/5884
and is a necessary step to fixing the System.Dynamic.Runtime.Tests
failure:
https://github.com/dotnet/corefx/issues/19895
which is caused by Microsoft.CSharp trying to do the impossible
and emulate this api without GetMetadataToken() support.
This approach opts for the most straightforward and efficient
implementation without any special-casing for weird situations
(this is also what Microsoft.CSharp implements today as
well as what someone else trying to trampoline members
across generic instantaitions is like to do.)
This results in the following behavior for these
corner cases. With the possible exception of #3,
I think they are tolerable enough to accept and codify:
1. "other" implemented by an entirely different Reflection
provider than "this".
Behavior:
returns false without invoking any methods on the
"other" Member.
To change it to throw an ArgumentException would
mean extra cast checks against the 6 possible
Runtime types (or having said RuntimeTypes implement
a sentinel interface.)
Given that HasSameMetadataDefinitionAs() is a
"looser cousin of Equals()" and "Equals()"
doesn't throw for objects from a different universe,
this seems reasonable.
2. Arrays, ByRefs, Pointers and Types from GetTypeFromCLSID()
Behavior:
Arrays, ByRefs, Pointers all return token 0x0600000
and so they'll return "true" wrt to each other (provided
both types are implemented by the same provider.)
CLSID types all return the typedef of __ComObject
so they'll return "true" wrt to each other.
The constructor exposed by CLSID types all return
the typedef of some constructor on __ComObject so
they'll return "true" wrt to each other.
I do not think these are interesting cases that merit
special handling. These types will never appear
in an enumeration of the members of a type. (The
fact that Reflection surfaces them in objects
that are assignable to MemberInfo is a structural
flaw in Reflection's object model.)
3. Synthesized constructors and methods on array types.
Behavior:
These methods all return 0x06000000 as a token
so the constructors will all compare true wrt
each other, and likewise with the methods.
This is a bit crummy though it's not clear
what the "right" policy should look like.
I could be persuaded to throw NotSupported
for these, to leave the possibility open
for a better story later. On the other hand,
I wouldn't demand it either.
sjsujinkim [Thu, 18 May 2017 10:27:26 +0000 (19:27 +0900)]
[RyuJit/ARM32] Enable loading arguments when jump instruction
There was no code generation for GT_JMP node on ARM32. So it has made 'NYI: Unimplemented node type jump' message.
That was implemented as genJmpMethod() on other archtectures.
It is about loading arguments node when jump instruction. and the implementation of that for ARM64 seems not much different from that.
So it just merged genJmpMethod from codegenarm64.cpp to codegenarmarch.cpp after some modification.
Jarret Shook [Sun, 21 May 2017 15:46:52 +0000 (08:46 -0700)]
Merge pull request #11718 from jashook/add_nyi_typ_struct_fast_tail_call
[*64] NYI: TYP_STRUCT, fastTailCall stack fixup
William Godbe [Sun, 21 May 2017 14:47:54 +0000 (07:47 -0700)]
Remove explicit passing of ConfigurationGroup=Release from pipebuild (#11751)