Pat Gavlin [Mon, 18 Apr 2016 20:06:30 +0000 (13:06 -0700)]
Merge pull request #4390 from pgavlin/JitCleanup
Cleanup some minor JIT issues.
Aditya Mandaleeka [Mon, 18 Apr 2016 19:36:53 +0000 (12:36 -0700)]
Merge pull request #4370 from krytarowski/netbsd-support-64
Print message about detected NetBSD
Aditya Mandaleeka [Mon, 18 Apr 2016 19:36:27 +0000 (12:36 -0700)]
Merge pull request #4378 from krytarowski/netbsd-support-68
Implement GetProcessIdDisambiguationKey() for NetBSD
Bruce Forstall [Mon, 18 Apr 2016 18:07:38 +0000 (11:07 -0700)]
Merge pull request #4323 from BruceForstall/CLRABI
Add CLR ABI document to Book of the Runtime
Bruce Forstall [Wed, 13 Apr 2016 23:07:06 +0000 (16:07 -0700)]
Add CLR ABI document to Book of the Runtime
Pat Gavlin [Mon, 11 Apr 2016 21:12:21 +0000 (14:12 -0700)]
Standardize on `assert` in the JIT.
A small amount of JIT code was using `_ASSERTE` instead of `assert`.
Change that code to use `assert` instead, which operates correctly
w.r.t. the JIT host.
Pat Gavlin [Mon, 11 Apr 2016 21:04:54 +0000 (14:04 -0700)]
Stanardize on `DEBUGARG` in the JIT.
The JIT uses both `DEBUGARG` (defined in jit.h) and `DEBUG_ARG`
(defined in /src/inc/check.h) for debug-only arguments. This
change replaces all uses of `DEBUG_ARG` with `DEBUGARG`.
Pat Gavlin [Thu, 31 Mar 2016 19:44:53 +0000 (12:44 -0700)]
Remove uses of LP{,C}UTF8 in the JIT.
Replace these with the corresponding `char*` type.
Gaurav Khanna [Mon, 18 Apr 2016 17:27:55 +0000 (10:27 -0700)]
Merge pull request #4381 from gkhanna79/VCRTFix
Cleanup VCRuntime140.dll dependency from native components
Carol Eidt [Mon, 18 Apr 2016 17:09:44 +0000 (10:09 -0700)]
Merge pull request #3807 from CarolEidt/FirstClassStructsDoc
Design document for first-class structs
Andy Ayers [Mon, 18 Apr 2016 16:29:59 +0000 (09:29 -0700)]
Merge pull request #4375 from AndyAyersMS/UseBudget
Inliner: use time budget to avoid excessive inlining
Pat Gavlin [Mon, 18 Apr 2016 16:02:17 +0000 (09:02 -0700)]
Merge pull request #4376 from pgavlin/GcInfoRemoveUtilcode
Stop including utilcode.h in the GC info encoder.
Kamil Rytarowski [Sat, 16 Apr 2016 00:22:23 +0000 (02:22 +0200)]
Implement GetProcessIdDisambiguationKey() for NetBSD
Make use of the kvm(3) interface to get "struct kinfo_proc2" of the given
process.
struct kinfo_proc2 {
///....
uint32_t p_ustart_sec; /* STRUCT TIMEVAL: starting time. */
uint32_t p_ustart_usec; /* STRUCT TIMEVAL: starting time. */
///...
};
--- /usr/include/sys/sysctl.h
Gaurav Khanna [Sat, 16 Apr 2016 17:15:08 +0000 (10:15 -0700)]
Cleanup VCRuntime140.dll dependency from native components
Kyungwoo Lee [Sat, 16 Apr 2016 17:05:36 +0000 (10:05 -0700)]
Merge pull request #4360 from kyulee1/fixpsp
ARM64: Fix Storing PSPSym for localloc
Kyungwoo Lee [Fri, 15 Apr 2016 15:45:34 +0000 (08:45 -0700)]
ARM64: Fix Storing PSPSym for localloc
JIT incorrectly saves/restores PSPSym causing AVs in EH tests that have localloc with filter.
The fix is to use a right opcode (Load instead of Store) when saving PSPSym.
Jan Vorlicek [Sat, 16 Apr 2016 01:05:14 +0000 (03:05 +0200)]
Merge pull request #4357 from krytarowski/netbsd-support-63
NetBSD: Add support for PAL_IsDebuggerPresent()
Lubomir Litchev [Sat, 16 Apr 2016 00:01:40 +0000 (17:01 -0700)]
Merge pull request #4346 from LLITCHEV/Issue4276
Set the lvIsMultiRegArgOrRet for a variable containing the result of in-lined multi-register return call.
Jan Kotas [Fri, 15 Apr 2016 23:58:36 +0000 (16:58 -0700)]
Merge pull request #4369 from mikedn/msgbox
Always try to load user32 instead of ntuser api set
Jan Vorlicek [Fri, 15 Apr 2016 23:20:33 +0000 (01:20 +0200)]
Merge pull request #4342 from ZhichengZhu/clrstackr
add sos clrstack -r option
Sean Gillespie [Fri, 15 Apr 2016 23:19:52 +0000 (16:19 -0700)]
Merge pull request #4368 from swgillespie/long-running-gc-fixes
Fix a difference in passing the sequential parameter between Bash and…
Pat Gavlin [Fri, 15 Apr 2016 22:35:33 +0000 (15:35 -0700)]
Stop including utilcode.h in the GC info encoder.
This required two other minor changes:
- A prototype for `ThrowOutOfMemory` is now defined in gcinfoencoder.h
- `BitArray` now defines an overload of `operator new` that accepts an
`IAllocator`.
Aditya Mandaleeka [Fri, 15 Apr 2016 22:45:07 +0000 (15:45 -0700)]
Merge pull request #4372 from krytarowski/netbsd-support-66
NetBSD has RAND_MAX = 0x7fffffff
Kamil Rytarowski [Fri, 15 Apr 2016 21:17:38 +0000 (23:17 +0200)]
The RAND_MAX value can vary by platform
Noted on NetBSD where it is 0x7FFFFFFF.
Andy Ayers [Fri, 15 Apr 2016 18:24:25 +0000 (11:24 -0700)]
Inliner: use time budget to avoid excessive inlining
Use the time budget and time estimates to stop inlining once the
overall jit time increase estimate for the method is 10x the initial
jit time estimate.
This is implemented as part of `LegacyPolicy` and so can impact
the current inline behavior.
The budget is intentionally set quite high so that it only kicks in
for very rare cases where the call tree below the root is deep and wide
with many small methods. In extended testing on desktop this limit
fires in exactly two cases, both HFA tests.
In CoreCLR tests 12 of the HFA tests hit this limit. I've added
a directed test case here that came from the original bug report.
Closes #2472.
Kamil Rytarowski [Fri, 15 Apr 2016 11:23:31 +0000 (13:23 +0200)]
NetBSD: Add support for PAL_IsDebuggerPresent()
Reuse the kvm(3) interface to grab "struct kinfo_proc".
NAME
kvm - kernel memory interface
LIBRARY
Kernel Data Access Library (libkvm, -lkvm)
DESCRIPTION
The kvm library provides a uniform interface for accessing kernel virtual
memory images, including live systems and crash dumps. Access to live
systems is via /dev/mem while crash dumps can be examined via the core
file generated by savecore(8). The interface behaves identically in both
cases. Memory can be read and written, kernel symbol addresses can be
looked up efficiently, and information about user processes can be
gathered.
kvm_open() is first called to obtain a descriptor for all subsequent
calls
Rama krishnan Raghupathy [Fri, 15 Apr 2016 21:52:11 +0000 (14:52 -0700)]
Merge pull request #4347 from ramarag/zapnyi
Removing NYI for ZapUnwindData
Mike Danes [Fri, 15 Apr 2016 20:53:31 +0000 (23:53 +0300)]
Always try to load user32 instead of ntuser api set
Jan Vorlicek [Fri, 15 Apr 2016 21:33:39 +0000 (23:33 +0200)]
Merge pull request #4140 from myungjoo/implement/4040
Implement StartUnwindingNativeFrames Linux/ARM
Jan Kotas [Fri, 15 Apr 2016 21:18:17 +0000 (14:18 -0700)]
Merge pull request #3240 from krytarowski/netbsd-support-50
Fix issue unveiled on NetBSD: Add PAL__vsnprintf shadow in PAL
Kamil Rytarowski [Fri, 15 Apr 2016 21:01:26 +0000 (23:01 +0200)]
Print message about detected NetBSD
Lubomir Litchev [Thu, 14 Apr 2016 22:36:25 +0000 (15:36 -0700)]
Set the lvIsMultiRegArgOrRet for a variable containing the result of
inlined multi-register return call.
This change makes sure the lvIsMultiRegArgOrRet on a variable used to
store the result of inlined multi-register return function is set.
The way the code works today, this is not an issue since the code in
fgAttachStructInlineeToAsg always uses a CopyObj/Blk to asign the return
value from the registers to the var on stack. The CopyBlock/Obj gets the
address of the variable making it address-exposed and that prevents struct
promotion.
In the future (when CopyObj/Blk is not used) not having
lvIsMultiRegArgOrRet set could cause a problem.
Fixes issue 4276.
Sean Gillespie [Fri, 15 Apr 2016 20:44:12 +0000 (13:44 -0700)]
Fix a difference in passing the sequential parameter between Bash and Batch
Zhicheng Zhu [Thu, 14 Apr 2016 21:42:23 +0000 (14:42 -0700)]
add clrstack -r option
Gaurav Khanna [Fri, 15 Apr 2016 19:35:57 +0000 (12:35 -0700)]
Merge pull request #4359 from gkhanna79/ROLibFix2
DelayLoadAndFixWinRTInterop
Jose Perez Rodriguez [Fri, 15 Apr 2016 18:05:40 +0000 (11:05 -0700)]
Merge pull request #4361 from joperezr/AddServiceableAttribute
Adding Serviceable attribute to mscorlib
Koundinya Veluri [Fri, 15 Apr 2016 17:12:07 +0000 (10:12 -0700)]
Merge pull request #4352 from kouvel/ArmAssertFix
Fix assertion failure on ARM
Pat Gavlin [Fri, 15 Apr 2016 16:55:56 +0000 (09:55 -0700)]
Merge pull request #4338 from pgavlin/AddJit32Build
Make it possible to build JIT32 in the OSS tree.
Matt Mitchell [Fri, 15 Apr 2016 16:20:25 +0000 (09:20 -0700)]
Merge pull request #4363 from mmitche/update-corefx-paths
Update the corefx copy steps to point to the new location
Matt Mitchell [Fri, 15 Apr 2016 16:09:41 +0000 (09:09 -0700)]
Update the corefx copy steps to point to the new location
Jose Perez Rodriguez [Fri, 15 Apr 2016 15:52:51 +0000 (08:52 -0700)]
Adding Serviceable attribute to mscorlib
Gaurav Khanna [Fri, 15 Apr 2016 14:26:17 +0000 (07:26 -0700)]
DelayLoadAndFixWinRTInterop
Jan Kotas [Fri, 15 Apr 2016 12:48:39 +0000 (05:48 -0700)]
Merge pull request #4355 from dotnet-bot/from-tfs
Merge changes from TFS
MyungJoo Ham [Tue, 5 Apr 2016 02:25:36 +0000 (11:25 +0900)]
Implement StartUnwindingNativeFrames Linux/ARM
StartUnwindingNativeFrames for Unix/Linux ARM.
The code is ported from AMD64 code of the same function and OS.
CONTEXT_* are moved from context2.S to asmconstants.h so that
the same macros may be sharaed between multiple files.
Fix #4040
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Jan Vorlicek [Fri, 15 Apr 2016 09:47:04 +0000 (11:47 +0200)]
Merge pull request #4260 from myungjoo/fix/4259
ARM: fix build warning for unw usage
Koundinya Veluri [Fri, 15 Apr 2016 02:52:55 +0000 (19:52 -0700)]
Fix assertion failure on ARM
StompWriteBarrierEphemeral may be called on the init path, where the runtime is technically not suspended, but has not started yet. Added a check for g_fEEInit in the call.
Jan Kotas [Fri, 15 Apr 2016 05:41:24 +0000 (22:41 -0700)]
Merge pull request #4340 from jkotas/equality-comparer
Use beforefieldinit field for Comparer/EqualityComparer.Default
Jan Kotas [Fri, 15 Apr 2016 05:37:00 +0000 (22:37 -0700)]
Merge pull request #4353 from myungjoo/fix/4107
ARM/Linux: Mark r0-r3 Saved
MyungJoo Ham [Fri, 15 Apr 2016 04:28:29 +0000 (13:28 +0900)]
ARM/Linux: Mark r0-r3 Saved
Without this, exception handlers (try-catch) that
try to get SP of ThePreStub's caller (managed frame) mislocate
the caller's SP by 4 words (0x10) and get lost while
traversing managed frames.
Fix #4107
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Pat Gavlin [Fri, 15 Apr 2016 04:04:33 +0000 (21:04 -0700)]
Merge pull request #4343 from pgavlin/SeparateBitPosition
Move `BitPosition` into its own file.
Jan Kotas [Fri, 15 Apr 2016 01:46:52 +0000 (18:46 -0700)]
Fix razzle build breaks in bcl.win
[tfs-changeset: 1596379]
MyungJoo Ham [Fri, 15 Apr 2016 01:00:40 +0000 (10:00 +0900)]
Style fix: remove obsolete contents
We no longer have StartUnwindingNativeFrames.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Jan Kotas [Thu, 14 Apr 2016 21:35:35 +0000 (14:35 -0700)]
Use beforefieldinit field for Comparer/EqualityComparer.Default
Matt Ellis [Thu, 14 Apr 2016 22:59:13 +0000 (15:59 -0700)]
Merge pull request #4326 from dotnet-bot/from-tfs
Merge changes from TFS
Andy Ayers [Thu, 14 Apr 2016 22:57:39 +0000 (15:57 -0700)]
Merge pull request #4335 from AndyAyersMS/InlineStrategy
Inliner: introducing InlineStrategy
Rama Krishnan Raghupathy [Wed, 6 Apr 2016 22:36:42 +0000 (15:36 -0700)]
Removing NYI for ZapUnwindData
Pat Gavlin [Thu, 14 Apr 2016 19:57:41 +0000 (12:57 -0700)]
Make it possible to build JIT32 in the OSS tree.
This change adds a new argument to build.cmd, buildjit32, that configures
the build to build and link JIT32 instead of RyuJIT if the sources are
available in `src/jit32`.
Fadi Hanna [Thu, 14 Apr 2016 21:18:21 +0000 (14:18 -0700)]
Merge pull request #4339 from fadimounir/deltests
Delete fragile tests (will fix tests in a later PR)
Fadi Hanna [Thu, 14 Apr 2016 21:14:52 +0000 (14:14 -0700)]
Delete fragile tests (will fix tests in a later PR)
Pat Gavlin [Mon, 11 Apr 2016 17:24:23 +0000 (10:24 -0700)]
Move `BitPosition` into its own file.
This will allow the GC info encoder and the JIT to use this
function without pulling in the entire utilcode header.
Andy Ayers [Tue, 12 Apr 2016 20:30:07 +0000 (13:30 -0700)]
Inliner: introducing InlineStrategy
Create the `InlineStrategy` class to hold inline-relevant data that
spans multiple inlines. It tracks the number of inline candidates,
attempts, successes, last successful policy, and holds onto the root
context, and so on. The strategy is responsible for creating contexts
and reporting overall results for a method (either tree-based or
data-based).
The strategy also includes a simple jit time estimate. From various
observations, post-inline jit time can be modelled acceptably by simple
linear relationships on the input IL size. The strategy uses these models
to estimate the initial and current jit time. Estimate units are roughly
microseconds.
The strategy creates a time budget to flag cases where the estimated
jit time increase due to inlining is unreasonbly large. The budget
is initially based on the root method size, and may increase if there
are non-discretionary force inlines.
Once we have a bit more vetting of the budgeting mechanism, policies
will use it to limit inlining in a small number of runaway inlining cases
(see for example #2472).
Remove code under MEASURE_INLINING since the strategy plus the context
tree (optionally extended via policies) contains all that data and more.
Likewise, consolidate a number of the compiler's inlining-related member
variables into the strategy.
Jan Vorlicek [Thu, 14 Apr 2016 20:36:08 +0000 (22:36 +0200)]
Merge pull request #4330 from janvorli/fix-sigsegv-deadlock
Fix possibility of deadlock in the SIGSEGV handler
Jan Kotas [Thu, 14 Apr 2016 19:59:17 +0000 (12:59 -0700)]
Fix full framework build break
[tfs-changeset: 1596259]
Pat Gavlin [Thu, 14 Apr 2016 19:57:01 +0000 (12:57 -0700)]
Merge pull request #4322 from pgavlin/TlsLogEnv
Collect the JIT's TLS variables in a single type.
Pat Gavlin [Thu, 14 Apr 2016 17:58:36 +0000 (10:58 -0700)]
Merge pull request #4314 from pgavlin/GcInfoSList
Replace `SList` in the GC info encoders.
Jan Vorlicek [Thu, 14 Apr 2016 17:44:56 +0000 (19:44 +0200)]
Fix potential deadlock when calling ExecutionManager::IsManagedCode
The function can deadlock if the calling thread was holding the
ExecutionManager writer lock.
Jose Perez Rodriguez [Thu, 14 Apr 2016 17:44:29 +0000 (10:44 -0700)]
Merge pull request #4308 from joperezr/RemoveWarnings
Remove native build warnings
Jose Perez Rodriguez [Tue, 12 Apr 2016 22:56:08 +0000 (15:56 -0700)]
Updating BuildTools
Russ Keldorph [Thu, 14 Apr 2016 14:10:24 +0000 (07:10 -0700)]
Merge pull request #4327 from RussKeldorph/structinregs
Fix structinregs test on x86
Jan Vorlicek [Wed, 6 Apr 2016 18:41:51 +0000 (20:41 +0200)]
Fix possibility of deadlock in the SIGSEGV handler
The SIGSEGV handler was transitively calling pthread_attr_get_np to
get current stack limit no matter where the exception happened. The
problem was that if the segmentation violation happened in a C
runtime function, this could lead to deadlock since pthread_attr_get_np
is not signal safe.
The fix is to add callback that will figure out if the failing instruction
was in managed code or in one of the jit helpers and if not, it would
not attempt to handle the signal.
I have also removed non signal safe calls from the signal handlers code
path where we don't know yet whether the interrupted code was in a function
that could collide with a function that we call from the signal handler
or not. This includes TRACE and ASSERT calls that were calling string
formatting functions.
Russ Keldorph [Thu, 14 Apr 2016 04:45:05 +0000 (21:45 -0700)]
Fix structinregs test on x86
Fix a typo in _MSC_VER resulting in a mismatched calling convention on
x86. While I'm in here, I'm also fixing some benign mismatched function
pointer type definitions.
Jan Kotas [Thu, 14 Apr 2016 03:54:21 +0000 (20:54 -0700)]
Add back Path APIs needed by UWP
[tfs-changeset: 1596013]
tijoytom [Wed, 13 Apr 2016 23:43:51 +0000 (16:43 -0700)]
Merge pull request #4297 from tijoytom/master
Disabling the failing struct by value scenario.
Pat Gavlin [Wed, 13 Apr 2016 23:06:18 +0000 (16:06 -0700)]
Collect the JIT's TLS variables in a single type.
Instead of storing pointers to the thread-local compiler instance
and the current logging environment in separate TLS slots, wrap
these values in a struct and store a pointer to the struct in a
single TLS slot. This simplifies and standardizes the JIT's interface
to its TLS storage, especially when it is being statically linked
into another program or library that cannot use standard TLS.
Note that for release builds, the logging environment is not used
and a pointer to the current compiler instance is stored directly
into the JIT's TLS slot as an implementation detail of the TLS
wrapper type.
Matt Mitchell [Wed, 13 Apr 2016 22:47:40 +0000 (15:47 -0700)]
Merge pull request #4320 from mmitche/add-reporting
Add reporting functionality to the coreclr netci file
Matt Mitchell [Wed, 13 Apr 2016 22:20:21 +0000 (15:20 -0700)]
Add reporting functionality to the coreclr netci file
Also eliminate a few jobs that aren't being referenced.
Matt Mitchell [Wed, 13 Apr 2016 22:24:25 +0000 (15:24 -0700)]
Merge pull request #4319 from mmitche/archive-needed
Only archive dylib and .so files from the native coreclr tests
Matt Mitchell [Wed, 13 Apr 2016 22:22:45 +0000 (15:22 -0700)]
Only archive dylib and .so files from the native coreclr tests
Avoids a few hundred extra files
Tijoy Tom Kalathiparambil [Tue, 12 Apr 2016 18:32:23 +0000 (11:32 -0700)]
Disabling the failing struct by value scenario.
Brian Robbins [Wed, 13 Apr 2016 21:15:14 +0000 (14:15 -0700)]
Merge pull request #4068 from Lucrecious/master
Generate map files for symbol resolution for Linux native images on PerfView
Pat Gavlin [Wed, 13 Apr 2016 19:55:47 +0000 (12:55 -0700)]
Refactor `MemoryBlockDesc`.
- Encapsulate link management into `MemoryBlockDescList`.
- Replace `MemoryBlockDesc` and its separately-allocated buffer
with a new type, `MemoryBlock`, that stores the link to the
next memory block with the buffer itself.
Carol Eidt [Wed, 13 Apr 2016 18:43:40 +0000 (11:43 -0700)]
Merge pull request #4303 from CarolEidt/NoBarrierLclVarAddr
No GC barrier needed for indirection of expressions involving lclVars
Zhicheng Zhu [Wed, 13 Apr 2016 18:40:47 +0000 (11:40 -0700)]
Enable SOS gcInfo command. All it does basically is just enable the gcdecoder
Enable SOS gcInfo command. Basically all it does is just enable the code related to sos gcInfo and make it compiled for linux.
Pat Gavlin [Mon, 11 Apr 2016 17:09:08 +0000 (10:09 -0700)]
Replace `SList` in the GC info encoders.
Instead of using `SList`, manage the links manually. There are only
a few list manipulations in the encoders, so this is not too onerous.
Fadi Hanna [Wed, 13 Apr 2016 17:40:38 +0000 (10:40 -0700)]
Merge pull request #4295 from fadimounir/typesystemtests
Bulk port of TypeSystem test cases
Russ Keldorph [Wed, 13 Apr 2016 17:29:40 +0000 (10:29 -0700)]
Merge pull request #4310 from RussKeldorph/arglist
Port arglist tests for x86 and ARM
Carol Eidt [Tue, 12 Apr 2016 19:53:31 +0000 (12:53 -0700)]
No GC barrier needed for LclVar address expressions
The check for the case where a barrier is not required when writing to a
local variable needs to include the LocalVarAddr and lclVar address
expression cases.
Update per comments
Kyungwoo Lee [Wed, 13 Apr 2016 12:27:14 +0000 (05:27 -0700)]
Merge pull request #4302 from kyulee1/badtest
ARM64: Tests update
Kyungwoo Lee [Tue, 12 Apr 2016 20:30:31 +0000 (13:30 -0700)]
ARM64: Tests update
- Delete bad test (sql_stress4) which uses Thread.Abort which is not in
.NET Core.
- Delete non-existing test (MarshalBoolArray)
- Update time-out for StringConcat4/StringConcat8 which usualy failed due to time-out.
- Made _opt_dbgexplicit5/_opt_relexplicit5 UNSTABLE which pass mostly when
running twice in the lab.
- Delete bad test (b519927) which uses AppDomain.DefineDynamicAssembly
which is not in .NET Core.
- Delete bad test (b16241) that has overflow conversion (from double to int).
Kamil Rytarowski [Thu, 18 Feb 2016 22:41:56 +0000 (23:41 +0100)]
Fix issue unveiled on NetBSD: Add PAL__vsnprintf shadow in PAL
NetBSD's libc internally uses a function named _vsnprintf. We need to mask
PAL's version of this function to remove clash with the system. With it
snprintf(3) calls were jumping out of libc and landing back to PAL.
It was unveiled with many PAL tests.
Detailed documentation about _symbols in the NetBSD libc is documented
in the NetBSD sources in a file: src/lib/libc/README
Retire unneeded _vsnprintf().
Thanks Jan Vorli (Microsoft) for help with debugging.
Thanks Jan Kotas (Microsoft) for suggesting the right solution.
Fix #3199
Koundinya Veluri [Wed, 13 Apr 2016 04:19:01 +0000 (21:19 -0700)]
Merge pull request #4074 from kouvel/SoftwareWriteWatch
Implement software write watch and make concurrent GC functional outs…
Russ Keldorph [Tue, 12 Apr 2016 18:49:58 +0000 (11:49 -0700)]
Port arglist tests for x86 and ARM
Arglist tests, which are only valid on Windows, have non-x64 versions that
needed to be ported.
Sivarv [Wed, 13 Apr 2016 01:38:51 +0000 (18:38 -0700)]
Merge pull request #4273 from sivarv/multireg2
Force IR to be always var=call in case of multi-reg returning call nodes plus refactoring changes
Pat Gavlin [Tue, 12 Apr 2016 23:57:42 +0000 (16:57 -0700)]
Merge pull request #4255 from pgavlin/GcInfoArrayList
Refactor `StructArrayList` for the GC info encoder.
Koundinya Veluri [Thu, 7 Jan 2016 19:21:27 +0000 (11:21 -0800)]
Implement software write watch and make concurrent GC functional outside Windows
- Implemented software write watch using write barriers
- A new set of write barriers is introduced, each corresponding to an existing one, but which also updates the write watch table. The GC switches to a write watch barrier during concurrent GC, and switches back to a non write watch barrier after the final query for dirty pages.
- The write watch table is alloacted along with the card table
- Since the card table is used differently, different synchonization is used for the write watch table. The runtime is suspended during resize since that is the most infrequently occuring operation, of that, ResetWriteWatch, and GetWriteWatch.
- ResetWriteWatch() doesn't need a suspend, but since the software WW version is much faster than the Windows version, moved it into the suspended region to avoid some synchronization that would otherwise be required
- The background calls to GetWriteWatch() don't need or do a suspend. They only need to synchronize with the resize path, not for the purpose of correct functionality, but to not miss dirty pages such that concurrent GC is effective.
Miscellaneous:
- Fixed runtests.sh to copy mscorlib.dll and delete the Windows version of mscorlib.ni.dll
Russ Keldorph [Tue, 12 Apr 2016 23:14:41 +0000 (16:14 -0700)]
Merge pull request #4278 from RussKeldorph/t1
Fix two "missing DLL" test failures
Matt Mitchell [Tue, 12 Apr 2016 22:46:57 +0000 (15:46 -0700)]
Merge pull request #4296 from mmitche/fix-prefix-casing
Fix output casing of prefix dir
sivarv [Mon, 11 Apr 2016 18:49:41 +0000 (11:49 -0700)]
Refactoring changes to use ReturnTypeDesc in codegenxarch.
Swaroop Sridhar [Tue, 12 Apr 2016 20:32:10 +0000 (13:32 -0700)]
Merge pull request #4279 from swaroop-sridhar/GC
GCInfo: Fix ARM64 GCInfo decoding
Fadi Hanna [Tue, 12 Apr 2016 00:27:01 +0000 (17:27 -0700)]
Bulk port of TypeSystem test cases