Bruce Forstall [Tue, 12 Jul 2016 18:14:56 +0000 (11:14 -0700)]
Merge pull request #5966 from mikedn/x86-neg-long
Implement GT_NEG decomposition
Brian Sullivan [Tue, 12 Jul 2016 17:06:13 +0000 (10:06 -0700)]
Merge pull request #6198 from briansull/multireg-refactor
Refactor and cleanup work for passing and returning struct types
Jarret Shook [Tue, 12 Jul 2016 14:31:50 +0000 (07:31 -0700)]
Merge pull request #5948 from jyoungyun/fix/issue_5947
Add testsRunningInsideARM.txt
Jan Vorlicek [Tue, 12 Jul 2016 07:44:15 +0000 (09:44 +0200)]
Fix exceptions in GC wave 2 (#6220)
I've removed blocks with PAL_TRY that were under CATCH_GC. I also had to
fix contract problem in GCToEEInterface::GcStartWork that was marked as
THROWS due to StubHelpers::ProcessByrefValidationList being marked as
THROWS, but the StubHelpers::ProcessByrefValidationList in fact doesn't
throw since it has body wrapped in EX_TRY / EX_CATCH.
This also fixes a problem that started to appear after my previous exceptions
fix change.
Mike Danes [Thu, 23 Jun 2016 19:02:50 +0000 (22:02 +0300)]
Implement GT_NEG decomposition
Brian Sullivan [Thu, 7 Jul 2016 20:23:20 +0000 (13:23 -0700)]
Refactor and cleanup work for passing and returning struct types
Replaces argOrReturnTypeForStruct with two new methods:
getArgTypeForStruct - Provides information on how to pass a struct type
getReturnTypeForStruct - Provides information on how to return a struct type
A struct can be passed or return in the following different ways:
1. A struct type may be passed/returned as a primitive type when its size is small
2. A struct type may be passed/returned by reference to a copy
3. A struct type may be passed/returned by value using multiple registers
4. A struct type may be passed by value using a copy on the stack
Incorporated code review feedback with expanded comments.
Aditya Mandaleeka [Mon, 11 Jul 2016 22:11:03 +0000 (15:11 -0700)]
Merge pull request #6215 from dotnet-bot/UpdateDependencies20160711061707
Updating External dependencies to beta-24311-00
Pat Gavlin [Mon, 11 Jul 2016 22:00:29 +0000 (15:00 -0700)]
Merge pull request #6221 from pgavlin/RemoveDeadCodeInRationalize
Remove dead code in Rationalize.
Pat Gavlin [Mon, 11 Jul 2016 20:38:30 +0000 (13:38 -0700)]
Remove dead code in Rationalize.
Most of the removed code deals with QMARK rewriting. These nodes
are now rewritten as part of fgMorph, so the rationalizer does not
need to deal with them (other than asserting that they do not
exist).
Other dead code:
- The `Rationalizations` type
- A few split-related declarations and helpers
Andy Ayers [Mon, 11 Jul 2016 18:10:56 +0000 (11:10 -0700)]
Merge pull request #6204 from AndyAyersMS/ModelPolicyDepthCheck
Inliner: add depth check to ModelPolicy
Aditya Mandaleeka [Mon, 11 Jul 2016 17:27:00 +0000 (10:27 -0700)]
Merge pull request #6216 from hqueue/fix/typo_20160710
Fix a misleading typo in comment
Bruce Forstall [Mon, 11 Jul 2016 17:20:03 +0000 (10:20 -0700)]
Merge pull request #6202 from BruceForstall/RefactorDecomp
Refactor RyuJIT/x86 long decomposition code
Hyung-Kyu Choi [Mon, 11 Jul 2016 14:40:38 +0000 (23:40 +0900)]
Fix a misleading typo in comment
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
James Ko [Mon, 11 Jul 2016 12:30:13 +0000 (08:30 -0400)]
Avoid repeated virtual method calls in List.Contains (#6212)
dotnet-bot [Mon, 11 Jul 2016 06:17:06 +0000 (06:17 +0000)]
Updating External dependencies to beta-24311-00
Bruce Forstall [Sat, 9 Jul 2016 01:38:59 +0000 (18:38 -0700)]
Refactor RyuJIT/x86 long decomposition code
All decomposition code is now in decompose.cpp, in a Decompose class.
Each node type that is decomposed has its own member function to do
the decomposition. Various helpers have been added to reduce code
duplication. In general, though, the code is as it was before.
Andy Ayers [Sat, 9 Jul 2016 17:58:02 +0000 (10:58 -0700)]
Inliner: add depth check to ModelPolicy
Give the ModelPolicy the standard depth bailout logic. This mainly
serves to prevent runaway inlining for recursive methods marked with
AggressiveInlining attributes.
Andy Ayers [Sat, 9 Jul 2016 15:47:14 +0000 (08:47 -0700)]
Merge pull request #6201 from AndyAyersMS/LowerCallsiteWeight
Inliner: updates to ModelPolicy
Brian Sullivan [Sat, 9 Jul 2016 02:14:10 +0000 (19:14 -0700)]
Merge pull request #6190 from dotnet-bot/from-tfs
Merge changes from TFS
Andy Ayers [Fri, 8 Jul 2016 00:53:43 +0000 (17:53 -0700)]
Inliner: updates to ModelPolicy
Updates to bring CS and TP impact of the ModelPolicy into more acceptable
ranges.
For CS, reduce the call site weights to values that are more in keeping
with the legacy policy weights. Local test runs show this does not
drastically alter CQ and brings CS down below LegacyPolicy levels, on
average.
Implement an early out rejection based solely on ILSize. The threshold
value is set by conservatively determining when ILSize alone indicates
the method in question will never be inlined (note the policy itself
does not have an explicit ILSize cutoff). See comments for
`ModelPolicy::NoteInt` for details. Note if we adjust the model's size
and profitability estimates, this threshould will also need updating.
CQ (as measured by the CoreCLR perf tests) continues to show about a
2.5% geomean improvement over LegacyPolicy.
Jan Vorlicek [Fri, 8 Jul 2016 23:56:00 +0000 (01:56 +0200)]
Fix exceptions in GC (#6192)
The GC code in general doesn't expect exceptions to be thrown from functions
it calls. However, the event creation functions were in fact throwing, so
in case of OOM, exception would be thrown from various places of the code.
This change creates non-throwing versions of the event creation functions
and replaces all usages of the throwing ones in the GC.
In addition, I've removed blocks with PAL_TRY that were under NO_CATCH_HANDLERS
define and also added Object::SetAppDomainNoThrow, which allowed me to removed
EX_TRY from GCHeap::StressHeap where the Object::SetAppDomain was called before.
Bruce Forstall [Fri, 8 Jul 2016 23:33:19 +0000 (16:33 -0700)]
Merge pull request #6193 from BruceForstall/FixTypos
Fix some typos in comments
Rahul Kumar [Fri, 8 Jul 2016 23:30:51 +0000 (16:30 -0700)]
Merge pull request #6195 from rahku/crossgen
Fix SOS bpmd for windows
William Godbe [Fri, 8 Jul 2016 23:26:18 +0000 (16:26 -0700)]
Merge pull request #6197 from wtgodbe/heapVerify
Add new scenario to code coverage job
wtgodbe [Fri, 8 Jul 2016 22:49:32 +0000 (15:49 -0700)]
Add new scenario to code coverage job
Sivarv [Fri, 8 Jul 2016 22:15:39 +0000 (15:15 -0700)]
Merge pull request #6176 from sivarv/lsraTodo
Optimize use of a reg-optional lclVar that is marked for both reload and spillAfter
Rahul Kumar [Fri, 8 Jul 2016 22:03:41 +0000 (15:03 -0700)]
Fix SOS bpmd for windows
Bruce Forstall [Fri, 8 Jul 2016 21:24:24 +0000 (14:24 -0700)]
Fix some typos in comments
Tarek Mahmoud Sayed [Fri, 8 Jul 2016 18:47:55 +0000 (11:47 -0700)]
Fixing the build break/unsigned to signed warning.
This checkin onbehalf of Tijoytk
[tfs-changeset: 1616784]
sivarv [Fri, 8 Jul 2016 00:19:28 +0000 (17:19 -0700)]
Optimize use of a reg-optional lclVar that is marked for both reload
and spillAfter.
Aditya Mandaleeka [Fri, 8 Jul 2016 18:35:42 +0000 (11:35 -0700)]
Merge pull request #6163 from josteink/resolve-python
Resolve Python2.7 when executable is not called 'python'.
Rich Lander [Fri, 8 Jul 2016 18:34:50 +0000 (11:34 -0700)]
Update contributor guidelines (#6183)
Bruce Forstall [Fri, 8 Jul 2016 17:45:10 +0000 (10:45 -0700)]
Merge pull request #6177 from BruceForstall/FixMultiregStructArgNyi
Fix RyuJIT/x86 fgMorphMultiregStructArg NYI
Jostein Kjønigsen [Thu, 7 Jul 2016 08:49:20 +0000 (10:49 +0200)]
Resolve Python2.7 when executable is not called 'python'.
Bruce Forstall [Fri, 8 Jul 2016 00:55:27 +0000 (17:55 -0700)]
Fix RyuJIT/x86 fgMorphMultiregStructArg NYI
The code leading to the fgMorphMultiregStructArg NYI shouldn't have been taken for x86.
In fgMorphArgs, I put the setting of `hasMultiregStructArgs = true` in one case under `#ifdef`.
Disable tests failing with a newly exposed assert, `'isPhiDefn || type != TYP_STRUCT'`,
tracked by #6180.
I also fixed a number of asserts on strings that would never fail the way they were
written -- `assert("string")` instead of `assert(!"string")` -- and fixed some typos/grammar.
Aditya Mandaleeka [Fri, 8 Jul 2016 00:26:40 +0000 (17:26 -0700)]
Merge pull request #6081 from adityamandaleeka/virtual_temp
Clean up unused code related to memory mapping
Carol Eidt [Thu, 7 Jul 2016 23:29:34 +0000 (16:29 -0700)]
Merge pull request #6021 from CarolEidt/LessConservativeGtObj
Less conservative gt obj
tijoytom [Thu, 7 Jul 2016 23:26:34 +0000 (16:26 -0700)]
Merge pull request #6175 from tijoytom/master
MarshalAs(UnManaged.ByValArray) overflow.[Resubmitting the PR]
Sivarv [Thu, 7 Jul 2016 23:23:56 +0000 (16:23 -0700)]
Merge pull request #6150 from sivarv/lsraRefactor
Outstanding code review feedback from reg-optional PR #6092
William Godbe [Thu, 7 Jul 2016 22:32:04 +0000 (15:32 -0700)]
Merge pull request #6170 from wtgodbe/signarm
Revert sign.builds so that arm64 bins can be signed
Kyungwoo Lee [Thu, 7 Jul 2016 22:20:20 +0000 (15:20 -0700)]
Merge pull request #6173 from kyulee1/gc03
ARM64: Enable Daily Job for GcStress0x3
Tijoy Tom Kalathiparambil [Thu, 7 Jul 2016 22:03:01 +0000 (15:03 -0700)]
MarshalAs(UnManaged.ByValArray) overflow.
For non-blittable embedded array in structs we ignored the SizeConst and wrote past the
buffer when number of elementsin the arrayis greater than SizeConst.Fix is to truncate
the array at SizeConst
MarshalAs(UnManaged.ByValTStr)
Very subtle case when the SizeConst == Number of bytes required to marshal , we
write the null one past the buffer.This happens only on machine with non-english
(multi-byte) locale as default. Fix is to check the number of bytes required and
truncate the correctly leaving space for the terminating null.
Kyungwoo Lee [Thu, 7 Jul 2016 21:45:02 +0000 (14:45 -0700)]
ARM64: Enable Daily Job for GcStress0x3
Kyungwoo Lee [Thu, 7 Jul 2016 21:41:34 +0000 (14:41 -0700)]
Merge pull request #6090 from kyulee1/gctest3
ARM64: Test Update for GcStress0x3
Justin Van Patten [Thu, 7 Jul 2016 21:18:47 +0000 (14:18 -0700)]
Avoid box allocation in Encoding.EncodingName (#6142)
`Encoding.EncodingName` concatenates a `string` with an `int` via
`string.Concat(object, object)`, which results in the `int` being
boxed.
This change avoids the box by calling `int.ToString()`,
allowing `string.Concat(string, string)` to be used.
wtgodbe [Thu, 7 Jul 2016 20:38:49 +0000 (13:38 -0700)]
Revert sign.builds so that arm64 bins can be signed
sivarv [Wed, 6 Jul 2016 18:29:36 +0000 (11:29 -0700)]
Code review feedback.
Tarek Mahmoud Sayed [Thu, 7 Jul 2016 18:35:03 +0000 (11:35 -0700)]
Merge pull request #6114 from jamesqo/encodingforwarder
Consolidate much of the duplicated code across Encoding implementations
Carol Eidt [Thu, 7 Jul 2016 15:55:28 +0000 (08:55 -0700)]
Merge pull request #6152 from mikedn/x86-addsub-lo
[WIP] Introduce GT_ADD_LO and GT_SUB_LO
Kyungwoo Lee [Wed, 6 Jul 2016 16:16:02 +0000 (09:16 -0700)]
ARM64: Test Update for GcStress0x3
Gaurav Khanna [Thu, 7 Jul 2016 13:43:17 +0000 (06:43 -0700)]
Merge pull request #6161 from dotnet-bot/UpdateDependencies20160707062011
Updating External dependencies to beta-24307-00
James Ko [Thu, 7 Jul 2016 10:41:09 +0000 (06:41 -0400)]
Avoid heap allocating in char.ConvertFromUtf32 (#6141)
dotnet-bot [Thu, 7 Jul 2016 06:20:11 +0000 (06:20 +0000)]
Updating External dependencies to beta-24307-00
James Ko [Thu, 7 Jul 2016 06:03:59 +0000 (02:03 -0400)]
Convert SymbolType.m_format to be a string (#6133)
Justin Van Patten [Thu, 7 Jul 2016 05:39:34 +0000 (22:39 -0700)]
Avoid box allocation in DateTimeFormat.FormatCustomized (#6147)
The current implementation calls `string.Concat(object, object)`, which
results in an `int` box allocation.
Avoid the box allocation by calling `int.ToString()`, allowing
`string.Concat(string, string)` to be used.
Justin Van Patten [Thu, 7 Jul 2016 05:37:53 +0000 (22:37 -0700)]
Avoid box allocation in TypeBuilder.DefineDataHelper (#6148)
The current implementation calls `string.Concat(object, object)`, which
results in a box allocation.
Avoid the box allocation by calling `int.ToString()`, allowing
`string.Concat(string, string)` to be used.
Justin Van Patten [Thu, 7 Jul 2016 05:37:02 +0000 (22:37 -0700)]
Avoid box allocation in ActivityTracker (#6149)
The current implementation calls
`string.Concat(object, object, object)`, which results in a box
allocation.
Avoid the box allocation by calling `long.ToString()`, allowing
`string.Concat(string, string, string)` to be used.
Adam Sitnik [Thu, 7 Jul 2016 05:35:34 +0000 (07:35 +0200)]
make all public properties of DebuggableAttribute visible outside mscorlib (#6153)
Jiyoung Yun [Thu, 23 Jun 2016 09:17:56 +0000 (18:17 +0900)]
Add testsRunningInsideARM.txt
ARM emulator cross build checks are automatic on a per PR basis.
But it does not check unit tests because it takes a lot of time in emulator.
So this file contains the minimum test cases for ARM CI.
Those test cases are picked according to the following rules.
Reference target: Raspberry Pi2
1. Failed at least 3 times on June.
2. Exclude long time tc (Huge*)
3. Exclude daedlock tc (Burgers)
4. Exclude failed tc currently.
Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
Rahul Kumar [Thu, 7 Jul 2016 01:39:02 +0000 (18:39 -0700)]
Merge pull request #6157 from rahku/crossgen
Do not clean tests folder when skiptests option is used along with clean
Aditya Mandaleeka [Wed, 6 Jul 2016 21:41:57 +0000 (14:41 -0700)]
Merge pull request #6151 from mikedn/runbench-coreclr
Fix incorrect RunBenchmarks help text
Rahul Kumar [Wed, 6 Jul 2016 21:39:21 +0000 (14:39 -0700)]
Do not clean tests folder when skiptests option is used along with clean
Rahul Kumar [Wed, 6 Jul 2016 21:00:04 +0000 (14:00 -0700)]
Merge pull request #6130 from rahku/crossgen
ARM64: Fix incremental build problem for cross-components
Rahul Kumar [Tue, 5 Jul 2016 22:04:59 +0000 (15:04 -0700)]
Fix incremental build problem for cross-components
Aditya Mandaleeka [Wed, 6 Jul 2016 19:32:47 +0000 (12:32 -0700)]
Merge pull request #6139 from mkborg/fix_lldb_search_order
Fix LLDB search order
Matt Ellis [Wed, 6 Jul 2016 18:38:36 +0000 (11:38 -0700)]
Merge pull request #6146 from ellismg/fix-sign-targets-syntax-error
Fix syntax error in sign.builds
Mike Danes [Wed, 6 Jul 2016 18:29:06 +0000 (21:29 +0300)]
Fix incorrect RunBenchmarks help text
RunBenchmark's help text claims that there's a -coreclr option when in fact the option is -runner.
Mike Danes [Wed, 6 Jul 2016 17:23:42 +0000 (20:23 +0300)]
Introduce GT_ADD_LO and GT_SUB_LO
Matt Ellis [Wed, 6 Jul 2016 16:55:23 +0000 (09:55 -0700)]
Fix syntax error in sign.builds
Koundinya Veluri [Wed, 6 Jul 2016 16:50:12 +0000 (09:50 -0700)]
Merge pull request #6015 from kouvel/NamedMutexMoreFlockCases
Named mutex: Use flock instead of pthread process-shared mutex in som…
Gaurav Khanna [Wed, 6 Jul 2016 14:19:00 +0000 (07:19 -0700)]
Merge pull request #6135 from dotnet-bot/UpdateDependencies20160706051943
Updating External dependencies to beta-24306-00
Mikhail I. Krivtsov [Wed, 6 Jul 2016 11:37:39 +0000 (14:37 +0300)]
Fix LLDB search order
By default 'find_library' without 'NO_DEFAULT_PATH' keyword searches
first in default locations specified by '${CMAKE_SYSTEM_PREFIX_PATH}'
and only then in locations specified via 'PATHS' keyword
('${WITH_LLDB_LIBS}' in our case). As result it always picks-up default
LLDB ignoring the one explicitly specified via '${WITH_LLDB_LIBS}'.
This change modifies search order giving priority to '${WITH_LLDB_LIBS}'
and '${WITH_LLDB_INCLUDES}' over default locations.
dotnet-bot [Wed, 6 Jul 2016 05:19:43 +0000 (05:19 +0000)]
Updating External dependencies to beta-24306-00
Koundinya Veluri [Mon, 27 Jun 2016 17:53:28 +0000 (10:53 -0700)]
Named mutex: Use flock instead of pthread process-shared mutex in some more cases
Workaround for #5456:
- Sometimes, a timed wait operation is not getting released, causing a hang
- Due to the hang, it is not possible to detect this issue with code
- Temporarily disabled the use of pthread process-shared mutexes on ARM/ARM64. File locks will be used instead.
Workaround for #5872:
- On Alpine Linux, a pthread process-shared robust mutex is detecting the case where a process abandons the mutex when it exits while holding the lock, but is putting the mutex into an unrecoverable state (ENOTRECOVERABLE) instead of assigning lock ownership to the next thread that is released from a wait for a lock and notifying of abandonment (EOWNERDEAD).
- Added a test case to detect this issue, to have it use file locks instead
Close #5456
Carol Eidt [Tue, 5 Jul 2016 22:55:48 +0000 (15:55 -0700)]
Merge pull request #6098 from CarolEidt/BlkNodeRefactors
More Blk Op Refactoring
Brian Sullivan [Tue, 5 Jul 2016 22:48:14 +0000 (15:48 -0700)]
Merge pull request #6102 from briansull/inliner-dump
Improve the dump for inline return expressions
Bruce Forstall [Tue, 5 Jul 2016 21:58:31 +0000 (14:58 -0700)]
Merge pull request #6101 from BruceForstall/RyuJITx86EH
RyuJIT/x86: add support for EH
Sivarv [Tue, 5 Jul 2016 21:47:48 +0000 (14:47 -0700)]
Merge pull request #6094 from mikedn/x86-uncontained-long
Allow uncontained GT_LONG nodes
Bruce Forstall [Tue, 5 Jul 2016 20:33:28 +0000 (13:33 -0700)]
Merge pull request #6124 from dotnet-bot/from-tfs
Merge changes from TFS
Bruce Forstall [Tue, 5 Jul 2016 20:29:59 +0000 (13:29 -0700)]
Merge pull request #6100 from BruceForstall/BotrX86EHUpdate
Add information on x86 EH to CLR ABI
Rahul Kumar [Tue, 5 Jul 2016 18:49:29 +0000 (11:49 -0700)]
Merge pull request #6093 from rahku/arm64retbuf
Revert Pinvoke ILStub calli signature for desktop clr
Maoni Stephens [Tue, 5 Jul 2016 18:47:29 +0000 (11:47 -0700)]
only use config on coreclr
[tfs-changeset: 1616092]
James Ko [Tue, 5 Jul 2016 16:45:15 +0000 (12:45 -0400)]
Remove TODO on throwing exception
Bruce Forstall [Tue, 5 Jul 2016 16:31:21 +0000 (09:31 -0700)]
Merge pull request #6106 from mikedn/modopt-feedback
Address div/mod CR feedback
Carol Eidt [Sat, 2 Jul 2016 00:03:52 +0000 (17:03 -0700)]
More Blk Op Refactoring
Code refactoring in preparation for 1st Class Structs:
Factor out the legacy code generation for CpObj.
Abstract some functionality to member methods.
Move some block-related method definitions.
Make fgOrderBlockOps legacy-only (it is unused in RyuJIT).
Factor out the code to create a block init value.
Add a new IsLocalExpr() method.
Change some variable names to distinguish between objects and their addresses.
James Ko [Tue, 5 Jul 2016 14:58:26 +0000 (10:58 -0400)]
Move the SecuritySafeCritical attributes to EncodingForwarder
Stephen Toub [Tue, 5 Jul 2016 11:59:03 +0000 (07:59 -0400)]
Merge pull request #6120 from dotnet-bot/UpdateDependencies20160705051942
Updating External dependencies to beta-24305-00
James Ko [Tue, 5 Jul 2016 09:50:52 +0000 (05:50 -0400)]
Better performance for MulticastDelegate.Equals (#6113)
Better performance for MulticastDelegate.Equals
Viacheslav Nikolaev [Tue, 5 Jul 2016 06:33:46 +0000 (09:33 +0300)]
One of the flags MAP_SHARED or MAP_PRIVATE has to be specified. MAP_PRIVATE seems to fit here. (#6089)
dotnet-bot [Tue, 5 Jul 2016 05:19:42 +0000 (05:19 +0000)]
Updating External dependencies to beta-24305-00
James Ko [Tue, 5 Jul 2016 00:20:43 +0000 (20:20 -0400)]
Add note on UTF8Encoding.GetByteCount to EncodingForwarder
James Ko [Tue, 5 Jul 2016 00:16:44 +0000 (20:16 -0400)]
Fix CoreFX test failures
James Ko [Mon, 4 Jul 2016 19:53:34 +0000 (15:53 -0400)]
[UTF8Encoding] Remove unncessary comments
James Ko [Mon, 4 Jul 2016 19:52:00 +0000 (15:52 -0400)]
[UTF7Encoding] Remove unncessary comments
James Ko [Mon, 4 Jul 2016 19:49:54 +0000 (15:49 -0400)]
[UTF32Encoding] Remove unncessary comments
James Ko [Mon, 4 Jul 2016 19:48:20 +0000 (15:48 -0400)]
[UnicodeEncoding] Remove unncessary comments
James Ko [Mon, 4 Jul 2016 19:45:19 +0000 (15:45 -0400)]
[EncodingNLS] Remove unncessary comments
James Ko [Mon, 4 Jul 2016 19:41:17 +0000 (15:41 -0400)]
[ASCIIEncoding] Remove unncessary comments
James Ko [Mon, 4 Jul 2016 19:17:25 +0000 (15:17 -0400)]
Use EncodingForwarder for GetString(byte[], int, int)
James Ko [Mon, 4 Jul 2016 19:04:43 +0000 (15:04 -0400)]
Use EncodingForwarder for GetChars(byte*, int, char*, int)