Aditya Mandaleeka [Thu, 18 Feb 2016 20:45:45 +0000 (12:45 -0800)]
Merge pull request dotnet/coreclr#3219 from adityamandaleeka/twowaypipe_cleanup
Clean up Unix twowaypipe code
Commit migrated from https://github.com/dotnet/coreclr/commit/
cf93ae5b1bdb47fa091bc9322bc88f814f9feb66
Richard L Ford [Thu, 18 Feb 2016 20:43:09 +0000 (12:43 -0800)]
Merge pull request dotnet/coreclr#3222 from richardlford/testswithrefs0216
Port desktop tests that had references
Commit migrated from https://github.com/dotnet/coreclr/commit/
e1219104cc72570a88961d5726c44277d64deb5b
Matt Ellis [Thu, 18 Feb 2016 20:07:26 +0000 (12:07 -0800)]
Merge pull request dotnet/coreclr#3231 from ellismg/add-back-push-triggers
Add back push triggers
Commit migrated from https://github.com/dotnet/coreclr/commit/
b22c17cc8a0ddc71eef1bba5b6542bbd304ec796
Jan Kotas [Thu, 18 Feb 2016 19:31:19 +0000 (11:31 -0800)]
Merge pull request dotnet/coreclr#3230 from jkotas/jitee-cleanup
Delete NetCF quirk and MDIL generation support from RyuJIT and JIT-EE interface
Commit migrated from https://github.com/dotnet/coreclr/commit/
3f46cdaf01493289c0382fda9757ad660d364d98
Richard L Ford [Thu, 18 Feb 2016 19:14:30 +0000 (11:14 -0800)]
Delete 'do not port' test, add non-windows exclusions
Commit migrated from https://github.com/dotnet/coreclr/commit/
2a4583a0bb465d171e5815b98c5acbbea72a74d7
Matt Ellis [Thu, 18 Feb 2016 18:54:42 +0000 (10:54 -0800)]
Add back push triggers
Do {debug|checked|release} builds for all platforms on push. Upstack
projects (e.g CoreFX) take some of these as inputs and we use the
results in building out the badge links.
For the jobs which have flow's, just build the folow (which will trigger
the non flow builds).
Commit migrated from https://github.com/dotnet/coreclr/commit/
3dd598b80aaff4d2110dc4a7fc26c3ce81471b2c
Jan Kotas [Thu, 18 Feb 2016 17:27:35 +0000 (09:27 -0800)]
Delete unused files
Commit migrated from https://github.com/dotnet/coreclr/commit/
a3c3bc46ec96e30d9043265993e77a49060f6667
Jan Kotas [Thu, 18 Feb 2016 17:21:04 +0000 (09:21 -0800)]
Delete MDIL generation support from JIT-EE interface
Commit migrated from https://github.com/dotnet/coreclr/commit/
ca5dc52f79b91cd58c52b42927d19ec18c1281db
Gaurav Khanna [Thu, 18 Feb 2016 17:59:41 +0000 (08:59 -0900)]
Merge pull request dotnet/coreclr#3224 from gkhanna79/UpdateNugetPkg
Update CoreCLR Nuget package
Commit migrated from https://github.com/dotnet/coreclr/commit/
efcbea540d72c364b486135b3b84b7208c6e9344
Jan Kotas [Thu, 18 Feb 2016 17:17:52 +0000 (09:17 -0800)]
Delete NetCF quirks from RyuJIT
Commit migrated from https://github.com/dotnet/coreclr/commit/
d1cc1cc104e4ad5e32a9f287b717c6ceba33e124
Andy Ayers [Thu, 18 Feb 2016 16:43:15 +0000 (08:43 -0800)]
Merge pull request dotnet/coreclr#3196 from AndyAyersMS/InlineRefactor4
Inline refactoring: header cleanup and some renaming
Commit migrated from https://github.com/dotnet/coreclr/commit/
692e7cbeebe3017c8ff87453c50cf41748c19d6b
Gaurav Khanna [Thu, 18 Feb 2016 04:53:59 +0000 (20:53 -0800)]
Update CoreCLR Nuget package version to be 1.0.2.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8c234d65b9fc325fb37b95b39bf71e53558d8126
Jan Vorlicek [Thu, 18 Feb 2016 09:23:10 +0000 (10:23 +0100)]
Merge pull request dotnet/coreclr#3191 from manu-silicon/absolute_path
Fix absolute path on Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
1d4b52c49c727abb9cc8c9c5857a895ca88a76ed
Aditya Mandaleeka [Thu, 18 Feb 2016 02:35:13 +0000 (18:35 -0800)]
Fix typo in genXplatEventing.py.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2bb58c00bbd05465ce0e8abcc8bd2a9ea8cf6dc3
Aditya Mandaleeka [Thu, 18 Feb 2016 00:56:28 +0000 (16:56 -0800)]
Use pal.h directly in Unix twowaypipe code and remove windefs.h.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4fee7ae253a271cc70028202104e92128d1a5bd8
Richard L Ford [Tue, 16 Feb 2016 23:13:32 +0000 (15:13 -0800)]
Port desktop tests that had references
This change ports desktop tests that had references to dlls.
It also fixes some of the dll project files.
In addition there are some additional tests that were not
previously ported (but that do not reference dlls).
There are 4 tests that are excluded because of issue dotnet/coreclr#3216.
Commit migrated from https://github.com/dotnet/coreclr/commit/
30c68b9d32ee6a6b82fa8315087a6dcbbe85a4b2
Jan Kotas [Thu, 18 Feb 2016 04:06:07 +0000 (20:06 -0800)]
Merge pull request dotnet/coreclr#3218 from sergiy-k/niimageloading
Change MAPMapPEFile to use ExecutableAllcator instead of mmap to reserve VA
Commit migrated from https://github.com/dotnet/coreclr/commit/
eb451196a6e9838eb7104c8cac5fd34716193458
Jan Kotas [Thu, 18 Feb 2016 04:04:15 +0000 (20:04 -0800)]
Merge pull request dotnet/coreclr#3220 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
cc32acc6c3380065382d2ce7a9ae58123c453a2c
Maoni Stephens [Thu, 18 Feb 2016 02:34:21 +0000 (18:34 -0800)]
port fix for pad ratio
[tfs-changeset: 1576135]
Commit migrated from https://github.com/dotnet/coreclr/commit/
2db173a6b40b2a106443b00adbfd65c3aa2c0378
Manu [Tue, 16 Feb 2016 06:27:24 +0000 (15:27 +0900)]
Fix ildasm to be run without specifying the full path
Using the fixed version of GetEntrypointExecutableAbsolutePath when the
program name on the command line does not reflect an actual file on disk
(case when a program is launched by finding it in the PATH). This should fix
issuedotnet/coreclr#3190.
Commit migrated from https://github.com/dotnet/coreclr/commit/
abb5d8d97411b4260631f00fe3097e61e12466f1
Sergiy Kuryata [Thu, 18 Feb 2016 01:40:30 +0000 (17:40 -0800)]
Change MAPMapPEFile to use ExecutableAllcator instead of mmap to reserve VA
This change modifies the MAPMapPEFile in PAL to use ExecutableAllcator
instead of mmap in order to reserve VA for managed executable images. This
allows all NI images to be located near each other and close to the
coreclr library, which also allows the runtime to generate code that is
more efficient (by avoiding usage of jump stubs).
It also fixes an issue (https://github.com/dotnet/cli/issues/652) where
CLI fails with OutOfMemoryException which turned out to be related to
loading NI files. Due to a certain allocation pattern, mmap can place an
NI file at a region of virtual address space that does not have any free
memory around the NI images. As a result, when the runtime needs to
allocate memory for jump stubs for the image it cannot find any available
memory near the image and fails with OutOfMemoryException.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b1e9fa4403180ab5298008efb24142ff164c4b57
Manu [Tue, 16 Feb 2016 06:27:04 +0000 (15:27 +0900)]
Fix GetEntrypointExecutableAbsolutePath on Linux
Although PRdotnet/coreclr#1818 was supposed to implement this for Linux, only the MacOS X
implementation was correct. We are now using `readlink' on Linux to get
the path of the current running executable.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b4d8a8d865c2c1eba7166e5d6c822419b6f1a1ea
Jan Kotas [Thu, 18 Feb 2016 01:33:32 +0000 (17:33 -0800)]
Merge pull request dotnet/coreclr#3215 from jkotas/arm-floatargs
Save/restore floating point arguments in asm macros on Linux arm and arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
89396ee16657a2884babe8ac5d0e688743d4cd83
Aditya Mandaleeka [Thu, 18 Feb 2016 00:37:12 +0000 (16:37 -0800)]
Remove PAL_unlink.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d931b57022622db8e38b41c697eba730ec4f0c41
Jan Kotas [Wed, 17 Feb 2016 19:26:36 +0000 (11:26 -0800)]
Save/restore floating point arguments in transition block on arm and arm64
The transition block prolog/epilog macros were not correctly saving and restoring the floating point arguments on arm and arm64 on Unix.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6b576b9c032b06b082304638da5642da63b646ed
Rahul Kumar [Wed, 17 Feb 2016 23:55:18 +0000 (15:55 -0800)]
Merge pull request dotnet/coreclr#3213 from rahku/fixarm64
Fix arm64 build break
Commit migrated from https://github.com/dotnet/coreclr/commit/
357662351bc2ef57c032143ebf6bbfab6dcb593e
Jan Kotas [Wed, 17 Feb 2016 21:38:46 +0000 (13:38 -0800)]
Merge pull request dotnet/coreclr#3189 from krytarowski/netbsd-support-49
Enforce compiler version of alloca(3) on NetBSD
Commit migrated from https://github.com/dotnet/coreclr/commit/
6ad35ca6638ed7b57bbbf21aa9d082e3f39f1d6b
Kyungwoo Lee [Wed, 17 Feb 2016 21:30:02 +0000 (13:30 -0800)]
Merge pull request dotnet/coreclr#3212 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
38bfba8bb44aa09abad5de3605b1e53e57fc49f4
Sejong Oh [Wed, 17 Feb 2016 20:37:09 +0000 (12:37 -0800)]
Merge pull request dotnet/coreclr#3166 from sejongoh/add_linux_corefx_testing
Enable linux corefx testing
Commit migrated from https://github.com/dotnet/coreclr/commit/
b234866bd2a1b4674850c28f980f116042b8b8ea
Rahul Kumar [Wed, 17 Feb 2016 20:30:45 +0000 (12:30 -0800)]
Fix arm64 build break
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8b119b360b4a0b0f054954ed64c5898a50a7ad8
Kamil Rytarowski [Tue, 16 Feb 2016 21:55:13 +0000 (22:55 +0100)]
Fix NetBSD build issue: Use compiler version of alloca(3) when possible
The documentation of alloca(3) says:
o The alloca() function should be supplied by the compiler because the
compiler is allowed to make assumptions about the stack and frame
pointers. The libc alloca() implementation cannot account for those
assumptions. While there is a machine dependent implementation of
alloca() in libc, its use is discouraged and in most cases it will
not work. Using this implementation will produce linker warnings.
This is true for CoreCLR - alloca(3) was breaking 30 PAL tests.
Enforce on this operating system a compiler version.
Thanks Jan Kotas (Microsoft) for inspiration what may go wrong.
Thanks Jan Vorli (Microsoft) for useful suggestions in order to fix it.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6952d90ad3edfc461ecbe081f121419f4072326c
Aditya Mandaleeka [Wed, 17 Feb 2016 19:40:21 +0000 (11:40 -0800)]
Merge pull request dotnet/coreclr#3211 from gregg-miskelly/OSXAttachFix
Fix debugger attach to process on OSX
Commit migrated from https://github.com/dotnet/coreclr/commit/
01ffa08a2e4748e9826956ea961eacb227b6ee87
dotnet-bot [Wed, 17 Feb 2016 19:03:58 +0000 (11:03 -0800)]
Option for Enforcing Intrinsic Expansion
Currently intrinsic is disabled under MIN_OPT while being enabled under OPT.
There is no way to enforce intrinsic expansion where non-intrinsic (call) path is not yet implemented.
This adds an optional output boolean argument to getIntrinsicID that tells JIT whether to enforce intrinsic expansion.
If JIT cannot expand intrinsic for such case, fatal error occurs.
There is no functional change the argument is default to false.
[tfs-changeset: 1575973]
Commit migrated from https://github.com/dotnet/coreclr/commit/
6589e221cb6677f4cbf8e94eebddfd390d7f29c4
Jan Vorlicek [Wed, 17 Feb 2016 19:01:19 +0000 (20:01 +0100)]
Merge pull request dotnet/coreclr#3177 from krytarowski/netbsd-support-47
Fix build issue on NetBSD: Make RPATH optional and user-settable
Commit migrated from https://github.com/dotnet/coreclr/commit/
048ba1a793e96e0fe82597ddde6a792aff9ba58e
Andy Ayers [Wed, 17 Feb 2016 18:39:18 +0000 (10:39 -0800)]
Merge pull request dotnet/coreclr#3205 from AndyAyersMS/FixBenchFProjFiles
Remove IlasmRoundTrip from these project files
Commit migrated from https://github.com/dotnet/coreclr/commit/
05eb55705da5c79b40b28628c587dc235455fe43
Gregg Miskelly [Wed, 17 Feb 2016 18:37:26 +0000 (10:37 -0800)]
Fix debugger attach to process on OSX
Attaching to processes on OSX was broken with the way the .NET CLI is installing CoreCLR. The issue is that the vmmap executable that dbgshim is using will, by default, truncate paths. This caused it to be unable to find the real path to DBI.
Fix: pass the '-wide' argument to vmmap
Commit migrated from https://github.com/dotnet/coreclr/commit/
12fd39f35bd51b20afde770225fca4bef561ac61
Andy Ayers [Tue, 16 Feb 2016 22:28:08 +0000 (14:28 -0800)]
Inline refactoring: header cleanup and some renaming
Move inlining classes and related bits of code into inline.h.
Rename `JitInlineResult` to `InlineResult` and `InlInlineHints` to
`InlineHints`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
241860f7578fd6f064807a5477dec212b5e35941
Andy Ayers [Wed, 17 Feb 2016 18:04:17 +0000 (10:04 -0800)]
Merge pull request dotnet/coreclr#3203 from AndyAyersMS/FixJitMemoryUsage
Fix issue with excessive memory use by debug and checked jits
Commit migrated from https://github.com/dotnet/coreclr/commit/
89c4544c2e9849abc09f1d2ec0ca2b1276234da3
Russ Keldorph [Wed, 17 Feb 2016 17:39:10 +0000 (09:39 -0800)]
Merge pull request dotnet/coreclr#3173 from mikedn/ssadef-dup
Remove duplicate calls to GetPerSsaData
Commit migrated from https://github.com/dotnet/coreclr/commit/
50e76ef3cea8a2ec1ac603805074c409510bc43c
Russ Keldorph [Wed, 17 Feb 2016 17:37:49 +0000 (09:37 -0800)]
Merge pull request dotnet/coreclr#3176 from mikedn/topref
Avoid unnecessary copies of AllSuccessorIter and LocationInfo
Commit migrated from https://github.com/dotnet/coreclr/commit/
8915919c187beaf51be65985ee476563351f5e03
Andy Ayers [Wed, 17 Feb 2016 16:36:45 +0000 (08:36 -0800)]
Remove IlasmRoundTrip from these project files
We test ilasm/ildasm separately, so no reason to round trip when
building these benchmarks.
Closes dotnet/coreclr#3202.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d5b017ed9523ab85e39cae37ac565f004510f5d5
Kyungwoo Lee [Wed, 17 Feb 2016 13:06:34 +0000 (05:06 -0800)]
Merge pull request dotnet/coreclr#3187 from manu-silicon/ildasm
Fix ildasm when ran against CoreFX assemblies like System.Runtime
Commit migrated from https://github.com/dotnet/coreclr/commit/
17c8a749b3e1a1af8294b72eb722107b72f4460e
Andy Ayers [Wed, 17 Feb 2016 07:46:16 +0000 (23:46 -0800)]
Fix issue with excessive memory use by debug and checked jits
In dotnet/coreclr#3051 the jit started calling `eeGetClassFullName` for both
caller and callee handles even when dumping was disabled, passed
this information to the logging messages where previously the caller
and callee were identified via other context, and prepared the full
name dump artifacts for all inline decisions rather than the selective
cases handled previously.
This change caused excessive memory use in some tests.
This change makes the calls to `eeGetClassFullName` conditional on
whether dumping is enabled, and does not require these calls for logging
messages.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5e852304f2eff62533e103d706a2604a1e82ab17
Manu [Wed, 17 Feb 2016 00:48:16 +0000 (09:48 +0900)]
Fix invalid usage of pointer and SZSTRING_REMAINING_SIZE macro
When manipulating strings, the string destination buffer and the argument
of SZSTRING_REMAINING_SIZE should be the same otherwise buffer
overflows will occur.
Changed DumpHexbytes to start from the provided pointer and not finding
out how much was printed so far in the szString buffer.
Commit migrated from https://github.com/dotnet/coreclr/commit/
153e0bb1bbd1724dc8e2b1e9faf52d82c22f8815
Jan Kotas [Wed, 17 Feb 2016 03:36:44 +0000 (19:36 -0800)]
Merge pull request dotnet/coreclr#3200 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
c001e33728b82889cef3e59265f118099e7061b2
Kamil Rytarowski [Sun, 14 Feb 2016 16:34:25 +0000 (17:34 +0100)]
Fix build issue on NetBSD: Make RPATH optional and user-settable
The `$ORIGIN` linker feature isn't supported on NetBSD.
All RPATH is done via `pkgsrc` on all supported platforms, allow to override it.
pkgsrc will set CORECLR_SET_RPATH:BOOL=OFF and specify manually needed options.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4716674cb18b998dcf6c8dd1b9eb24fba282035e
Manu [Tue, 16 Feb 2016 00:09:14 +0000 (09:09 +0900)]
Fix Init to return False when not being able to load executable
Commit migrated from https://github.com/dotnet/coreclr/commit/
f7eebaa2c75ec211faf322445b1b1fc6b96b72b2
Jan Kotas [Wed, 17 Feb 2016 00:37:06 +0000 (16:37 -0800)]
Merge pull request dotnet/coreclr#3195 from janvorli/fix-invalid-gcvalue
Fix INVALIDGCVALUE on Unix
Commit migrated from https://github.com/dotnet/coreclr/commit/
e4c79ec276e3c3f42600fb48d86c3d9dba4ef415
Jan Vorlicek [Wed, 17 Feb 2016 00:18:07 +0000 (01:18 +0100)]
Merge pull request dotnet/coreclr#3167 from mikem8361/tracing
Fix tracing lib problems in multiple PALs. Issue dotnet/coreclr#3164.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ddaba368dbfb67d3609803a8cab6d8e203687000
Mike McLaughlin [Tue, 16 Feb 2016 23:09:18 +0000 (15:09 -0800)]
Finish fixing VSO dotnet/coreclr#190301. DACRaiseException need some STATIC_ contracts.
[tfs-changeset: 1575640]
Commit migrated from https://github.com/dotnet/coreclr/commit/
c0fdfef893dad8301f5db2e57ef45660fcfb4d7a
Richard L Ford [Tue, 16 Feb 2016 22:55:47 +0000 (14:55 -0800)]
Merge pull request dotnet/coreclr#3193 from richardlford/addtestlibs0216
Add libraries for tests that reference them.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ae8ceb422f996843295d1b26b9227441ea7d62a4
Jan Vorlicek [Tue, 16 Feb 2016 22:22:42 +0000 (23:22 +0100)]
Fix INVALIDGCVALUE on Unix
The INVALIDGCVALUE value loaded into the R11 in the JIT_WriteBarrier_Debug
and JIT_ByRefWriteBarrier is sign extended to 0xFFFFFFFFCCCCCCCD instead of
being the 0x00000000CCCCCCCD.
It was introduced during the early days of CoreCLR porting when I have
misread the error message that I was getting from Clang when compiling
mov R11, 0xCCCCCCCD and didn't know yet that loading 64 bit number requires
using the movabs mnemonics.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0121102f14dfc8809292949108c21feaa5b9e67a
Richard L Ford [Tue, 16 Feb 2016 21:49:53 +0000 (13:49 -0800)]
Make dll project files build-only.
Dll project files need extra properties to avoid being run as tests.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6c24acf82898e61762d3515b67ce361177c84472
Andy Ayers [Tue, 16 Feb 2016 21:08:59 +0000 (13:08 -0800)]
Merge pull request dotnet/coreclr#3124 from AndyAyersMS/InlineRefactor3
Inline refactoring: start untangling observation and policy
Commit migrated from https://github.com/dotnet/coreclr/commit/
9427f6c620450af16afd7cb95a08a1d846c7c79f
Jan Vorlicek [Tue, 16 Feb 2016 20:57:32 +0000 (21:57 +0100)]
Merge pull request dotnet/coreclr#3185 from janvorli/fix-exception-severity
Fix missing exception corruption severity setting
Commit migrated from https://github.com/dotnet/coreclr/commit/
50458ea651e39c6027617aac289641f418a94070
Richard L Ford [Tue, 16 Feb 2016 20:53:44 +0000 (12:53 -0800)]
Add libraries for tests that reference them.
This change adds dynamic link libraries that are referenced
by other tests.
Commit migrated from https://github.com/dotnet/coreclr/commit/
11cbdccacac1fa257670e4649d45561929405395
Mike Danes [Sun, 14 Feb 2016 14:47:33 +0000 (16:47 +0200)]
Avoid unnecessary copies of AllSuccessorIter, LocationInfo and VNDefFunc2Arg
ArrayStack<T>::Top() returns a copy rather than a reference like typical C++ containers do. For large Ts like AllSuccessorIterator and LocationInfo this results in a lot of code bloat and unncessary copying. Add a T& TopRef() function to avoid such copying.
Commit migrated from https://github.com/dotnet/coreclr/commit/
675b1c893f56d3a5a7d4f48035eac22cb9b1b7a3
Jan Vorlicek [Mon, 15 Feb 2016 20:16:35 +0000 (21:16 +0100)]
Fix missing exception corruption severity setting
This change fixes missing exception corruption severity for exceptions
that were thrown by native code but didn't pass through any managed
frames yet.
We have seen assert in the RaiseTheException function when an exception
thrown from native code is caught in native code without passing through
any managed frames and then it is being thrown in a wrapper TargetInvocationException.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6bb8dca08aa2db08addaad02404950bf271c2146
Andy Ayers [Mon, 8 Feb 2016 19:08:57 +0000 (11:08 -0800)]
Inline refactoring: start untangling observation and policy
Create set of observations that can be made during inlining. These
are implemented as a set of static tables plus some helper methods.
Each observation has an enum name, a type, a description string,
an impact, and a target.
For now most observations are about blocking issues and are classified
as having FATAL impact. There are a handful of INFORMATIONAL and
PERFORMANCE observations but they're not widely used yet.
This change also updates the bulk of the jit code to report
observations to the JitInlineResult instead of directly requesting
changes to the JitInlineResult state. Over on the JitInlineResult side,
the current legacy policy is implemented and fails fast if any blocking
observation is made. For now, any any FATAL impact observation must be
made via `noteFatal`, and all other observations be made via `note`.
As with the previous refactorings, this change tries not to alter
any code generation. There are a few cases where observations that
are made solely about the callee are now targeted that way instead of
being targeted at callsites. For instance a method that is marked by
COMPLUS_JitNoInline will never be inlined. This can sometimes lead to
localized code diffs, since the jit creates slightly different IR for a
call to an inline candidate than a call to a non-candidate, and is not
always able to undo this later if inlining fails. However the number of
diffs should be small. Will verify diffs further before merging. There
are no inlining changes crossgenning mscorlib.
Some of the message strings associated with inlining failures have
changed. The messages use `caller` and `callee` to describe the two
methods involved, and `callsite` for the instance in question, and
deprecate `inlinee`. These message strings can be seen in the jit
dumps and logs and are reported back to the VM where they presumably
make their way into other diagnostic reporting streams.
Subsequent work will re-examine the FATAL observations and likely
reclassify a number of them to have less dramatic immediate impact.
Subsequent work will also begin extracting the policy into a separate
class to lay the groundwork for supporting alternate policies while
still being able to fall back to the legacy policy.
Commit migrated from https://github.com/dotnet/coreclr/commit/
aafcd1a1793e9d1853ef7aa1445447fa11f26a85
John Chen [Tue, 16 Feb 2016 18:44:31 +0000 (10:44 -0800)]
Merge pull request dotnet/coreclr#3179 from JohnChen0/crossgen-fprintf
Fix fprintf in crossgen
Commit migrated from https://github.com/dotnet/coreclr/commit/
e031b222453b0599d9f3909fdb66787eb4d0d2ff
Steve Harter [Tue, 16 Feb 2016 16:02:26 +0000 (10:02 -0600)]
Merge pull request dotnet/coreclr#2992 from steveharter/FixSanitizerClrStartup
Clang sanitizer: remove unaligned address check
Commit migrated from https://github.com/dotnet/coreclr/commit/
28389ae9f7edc8f4589e61e3e54d4e8f56801150
Sejong Oh [Fri, 12 Feb 2016 01:28:32 +0000 (17:28 -0800)]
Enable linux corefx testing
Commit migrated from https://github.com/dotnet/coreclr/commit/
b422f6da79b33c67113ad14bd0d26d89fdaf1aae
Jan Vorlicek [Mon, 15 Feb 2016 17:57:01 +0000 (18:57 +0100)]
Merge pull request dotnet/coreclr#3183 from janvorli/fix-unwound-funclet-stack-reporting
Fix unwound funclet GC stack reporting on Unix
Commit migrated from https://github.com/dotnet/coreclr/commit/
5a26372691fea92f1ef328f287e1e37243af3e34
Eric Eilebrecht [Mon, 15 Feb 2016 17:30:12 +0000 (09:30 -0800)]
Merge pull request dotnet/coreclr#3157 from benaadams/QueueUserWorkItemCallback
Slimmer QueueUserWorkItemCallback
Commit migrated from https://github.com/dotnet/coreclr/commit/
2ec6a401778e8bd018354c2a868f90efbbf8ba97
Jan Vorlicek [Mon, 15 Feb 2016 12:44:13 +0000 (13:44 +0100)]
Fix unwound funclet GC stack reporting on Unix
This change fixes a problem with reporting object on stack for GC when
GC scan is performed right after a funclet is unwound during exception handling.
In such case, the parent of the funclet should report live object references,
but it was not doing so on Unix.
On Unix, the unwound funclet is detected in a different way than on Windows due
to the fact that the stack frames of the funclet are already reclaimed, while on
Windows, they are still there.
When we detect the unwound funclet on Unix, we set state of the stack walker so
that it behaves in the same way as on Windows. But we were missing one state
variable that makes the parent report the references instead of the funclet,
the m_fDidFuncletReportGCReferences.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e49bd7a992ab038533b745741a26ac3d6208a877
Jan Vorlicek [Mon, 15 Feb 2016 10:21:07 +0000 (11:21 +0100)]
Merge pull request dotnet/coreclr#3170 from krytarowski/netbsd-support-44
Prefer BSD uuid over libuuid
Commit migrated from https://github.com/dotnet/coreclr/commit/
00892398a46db5bc128c481e4cd2246bfda66e10
Jan Vorlicek [Mon, 15 Feb 2016 10:09:11 +0000 (11:09 +0100)]
Merge pull request dotnet/coreclr#3149 from krytarowski/netbsd-support-41
Fix build issue on NetBSD: Include <time.h> for time(3) in gc.cpp
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c07d9ed1ad0a3b8f6ebc5d207a4a92e25e786b4
Jan Vorlicek [Mon, 15 Feb 2016 10:04:34 +0000 (11:04 +0100)]
Merge pull request dotnet/coreclr#3171 from krytarowski/netbsd-support-45
Add more CMake sugar for NetBSD
Commit migrated from https://github.com/dotnet/coreclr/commit/
515d2031ec9b3ae13c81326957473b59e5118a8c
Jan Vorlicek [Mon, 15 Feb 2016 09:58:27 +0000 (10:58 +0100)]
Merge pull request dotnet/coreclr#3160 from josteink/master
Make the coreclr build-process support rtags
Commit migrated from https://github.com/dotnet/coreclr/commit/
d1e0ae21a978240aa9a7be38c881c695925300b0
Jan Kotas [Sun, 14 Feb 2016 22:49:01 +0000 (14:49 -0800)]
Merge pull request dotnet/coreclr#3175 from krytarowski/netbsd-support-46
Fix build issue on NetBSD: Remove unneeded -nostdinc++ flag
Commit migrated from https://github.com/dotnet/coreclr/commit/
73ae4cd9524fb4dd9218f6e28a7287fdd487761c
John Chen (CLR) [Sun, 14 Feb 2016 22:25:32 +0000 (14:25 -0800)]
Fix fprintf in crossgen
CrossGen configures its stdout to allow only Unicode output functions.
Add a wrapper to fprintf to allow it to work inside crossgen.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a4c745bd8fc7018c9e6e47fc2a6a909e51deea3b
Ben Adams [Fri, 12 Feb 2016 09:25:33 +0000 (09:25 +0000)]
Slimmer QueueUserWorkItemCallback
Commit migrated from https://github.com/dotnet/coreclr/commit/
9418bc40d25c721a8939a3f202a7ac452ab83c25
Kamil Rytarowski [Sat, 13 Feb 2016 20:25:32 +0000 (21:25 +0100)]
Prefer BSD uuid over libuuid
This fixes recent NetBSDbuild breakage:
../libcoreclrpal.a(miscpalapi.cpp.o): In function `CoCreateGuid':
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/misc/miscpalapi.cpp:356: undefined reference to `uuid_generate_random'
clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation)
No need to link against libuuid.
Add detection of BSD-styl <uuid.h>.
Few Linux distros ship with custom <uuid.h> and they aren't compatibile.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d981e1b43617bdd6fc3d34dbde8c53169e52d0ab
Jan Kotas [Sun, 14 Feb 2016 14:25:01 +0000 (06:25 -0800)]
Merge pull request dotnet/coreclr#3162 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
3db38d36fec6d83daba0bec9fdcfee8159320439
Kamil Rytarowski [Sun, 14 Feb 2016 14:17:15 +0000 (15:17 +0100)]
Fix build issue on NetBSD: Remove unneeded -nostdinc++ flag
This flag isn't recognized by clang on NetBSD:
clang-3.9: warning: argument unused during compilation: '-nostdinc++'
$ pkg_info |grep -E 'lldb|llvm|clang'
llvm-3.9.0nb20160213 Low Level Virtual Machine compiler infrastructure
clang-3.9.0nb20160213 C language family frontend for LLVM
lldb-3.9.0nb20160213 next generation, high-performance debugger
$ uname -a
NetBSD chieftec 7.99.26 NetBSD 7.99.26 (GENERIC) dotnet/coreclr#0: Wed Feb 10 21:58:18 UTC 2016
root@chieftec:/tmp/netbsd-tmp/sys/arch/amd64/compile/GENERIC amd64
This flag was disabled also for Darwin in dotnet/coreclr#125 by @jkotas
Commit migrated from https://github.com/dotnet/coreclr/commit/
47939a53d37033ea482e37222a06c71cceb030f0
Kamil Rytarowski [Fri, 12 Feb 2016 02:40:30 +0000 (03:40 +0100)]
Fix build issue on NetBSD: Add time(3) to PAL
Otherwise it triggers linker warnings.
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/gc/gc.cpp:33869:
warning: warning: reference to compatibility time(); include <time.h> for correct reference
$ uname -a
NetBSD chieftec 7.99.25 NetBSD 7.99.25 (GENERIC) dotnet/coreclr#0: Fri Dec 25 20:51:06 UTC 2015 root@chieftec:/tmp/netbsd-tmp/sys/arch/amd64/compile/GENERIC amd64
Commit migrated from https://github.com/dotnet/coreclr/commit/
eff2c6e57d957f94129993a5e32ed93925ef289d
Mike Danes [Sun, 14 Feb 2016 09:38:27 +0000 (11:38 +0200)]
Remove duplicate calls to GetPerSsaData
The code is too complex for the C++ compiler to figure out that it is duplicated and the generated code contains a second call to ExpandArray::EnsureCoversInd for what is otherwise just a trivial assignment.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fcdc47a7f20b4e6d5ac59a5c91fe62e852522f3d
Russ Keldorph [Sun, 14 Feb 2016 13:39:35 +0000 (05:39 -0800)]
Merge pull request dotnet/coreclr#3172 from RussKeldorph/redisable
Re-disable tests failing due to dotnet/coreclr#2728
Commit migrated from https://github.com/dotnet/coreclr/commit/
042980511d9724b3c82f16c0cf7e5dbb84c40e60
Russ Keldorph [Sun, 14 Feb 2016 04:48:26 +0000 (20:48 -0800)]
Re-disable tests failing due to dotnet/coreclr#2728
Commit migrated from https://github.com/dotnet/coreclr/commit/
351477721cad109998cf711a924afc5bfdc6db7d
Kamil Rytarowski [Sun, 14 Feb 2016 03:31:57 +0000 (04:31 +0100)]
Add more CMake sugar for NetBSD
This resolves 'gen-dactable-rva.sh does not print to dactablerva.h' dotnet/coreclr#3168
This fixes issue with g_dacTable unavailable in libcoreclr.so.
This patch assumes GNU ld(1) on NetBSD
Thanks to Bruce Mitchener @waywardmonkeys for pointing out ld(1) nits.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4e548e16efb02b6c97c10eb9fd3d49ac94245507
Jostein Kjønigsen [Sat, 13 Feb 2016 20:18:42 +0000 (21:18 +0100)]
Make the build-process support rtags
Rtags depends on cmake to export its build commands in order to index
the codebase.
Adding this flag makes cmake do that.
Commit migrated from https://github.com/dotnet/coreclr/commit/
605bc815300dd5e3de0d4d23458e0ad8bc0eca20
Richard L Ford [Sat, 13 Feb 2016 03:33:59 +0000 (19:33 -0800)]
Merge pull request dotnet/coreclr#3161 from richardlford/restoredllnames0212
Restore original dll names, use Define constants.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a1c870d555a73618a8ed9c2d26e523eb7e71ab36
Mike McLaughlin [Fri, 12 Feb 2016 22:47:12 +0000 (14:47 -0800)]
Fix tracing lib problems in multiple PALs. Issue dotnet/coreclr#3164.
Moved the tracepointprovider loading in miscpalapi.cpp to separate library that
is only linked by libcoreclr.so.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff4aa3f141c0191b2783ffd8b5046380143799c9
Eugene Rozenfeld [Fri, 12 Feb 2016 23:47:39 +0000 (15:47 -0800)]
Merge pull request dotnet/coreclr#3145 from erozenfeld/PreserveCastVN
Preserve value numbers when discarding a cast.
Commit migrated from https://github.com/dotnet/coreclr/commit/
059e5a38bd88766fa34a7b8de16c5f9084f48f2e
Richard L Ford [Fri, 12 Feb 2016 23:19:34 +0000 (15:19 -0800)]
Fix hfa_interop to omit ".dll" from DLLName
For interoperability cross platform, the DLL name given to the
DllImport attribute should not include the suffix since
dynamic link libraries use a different suffix on different
systems.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e1472cbe46b36c3ce54bfaff47d1f72f4d6be8d3
Mike McLaughlin [Fri, 12 Feb 2016 22:44:53 +0000 (14:44 -0800)]
Merge pull request dotnet/coreclr#3159 from mikem8361/security
Change the transport pipe and runtime startup semaphores permissions
Commit migrated from https://github.com/dotnet/coreclr/commit/
76afde059ec6acf46b2694638bc967705808422b
Steve Harter [Tue, 2 Feb 2016 23:31:21 +0000 (17:31 -0600)]
Clang sanitizer: remove unaligned address check
Commit migrated from https://github.com/dotnet/coreclr/commit/
6eca2b489179db67b691c24233993905aa826e4f
dotnet-bot [Fri, 12 Feb 2016 21:45:59 +0000 (13:45 -0800)]
Fix build issue dotnet/coreclr#788907: crossgen /createpdb not working
[tfs-changeset: 1575079]
Commit migrated from https://github.com/dotnet/coreclr/commit/
f2548fb9ccc735489d3133042f26c600cba6f44b
Richard L Ford [Fri, 12 Feb 2016 21:07:54 +0000 (13:07 -0800)]
Restore original dll names, use Define constants.
This changes set has no functional change, rather it cleans
up some aspects of a previous port.
When the hfa dlls were originally ported it was not known that
C# #defines could be used in the tests, so source files that
use #if were expanded to multiple source files with the preprocessing
being done manually. This changes goes back to using the original
files with appropriate define constants in the project files.
In addition, when these dlls were ported abbreviated names were
used. This change restores the dll names to the originals.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4d017e38094773f36b902f19031c834e22d97266
Brian Sullivan [Fri, 12 Feb 2016 20:51:02 +0000 (12:51 -0800)]
Merge pull request dotnet/coreclr#3153 from briansull/issue_2816_v2
Fix issues with passing 16-byte structs on Arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
e0284f70f46322d0c6f961874c2421925535d1d9
Mike McLaughlin [Thu, 11 Feb 2016 21:28:09 +0000 (13:28 -0800)]
Change the transport pipe and dbgshim runtime startup semaphores permissions to user only
Since the mechanism used to enumerate process modules (/proc/xxxx/maps on Linux, running
vmvmap on OSX) is user only and the default group new users get on OSX is the same ("staff")
restricting the transport pipes and runtime startup named semaphores to user only is the
right way to go.
If we find some reason to give groups permissions, we can always change that later though
the process module enumeration would have to be figured out.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c66f88cda89166d74b33522c13b2523302202d9d
Brian Sullivan [Fri, 12 Feb 2016 03:30:55 +0000 (19:30 -0800)]
Fix issues with passing 16-byte structs on Arm64
Properly track the GC pointers that are being loaded/stored or copied from these pass by value structs.
Implements passing 16-byte value types in the outgoing stack area, previously not implemented.
Added utility method getJitGCtype for converting the VM's CorInfoGCType to the JIT's var_types enum
Added utility method getStructGcPtrsFromOp to examine a GT_LDOPB or GT_LCL_VAR
that represents a 16-byte struct and get the GC layout information
Allow LSRA to pick two consecutive registers to pass 16-byte structs on the stack
Added utility methods checkAndAssignInterval and checkAndClearInterval to handle the
second register used to pass arguments on ARM64.
Commit migrated from https://github.com/dotnet/coreclr/commit/
253aa91b5a7d03704fc149e63dd00445caebc872
Sejong Oh [Fri, 12 Feb 2016 18:25:30 +0000 (10:25 -0800)]
Merge pull request dotnet/coreclr#3121 from sejongoh/add_combo_stress_options
Add JitStress x JitStressRegs combo stress tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
2b06b0b43c459d6c1e9cd2c981187385a0b03c43
Jan Vorlicek [Fri, 12 Feb 2016 18:08:06 +0000 (19:08 +0100)]
Merge pull request dotnet/coreclr#3158 from krytarowski/netbsd-support-44
Fix build on NetBSD: Allow to overload definition of wchar_t
Commit migrated from https://github.com/dotnet/coreclr/commit/
57048e3b6346f089ed800ab5eab6d6aba214ba21
Russ Keldorph [Fri, 12 Feb 2016 13:35:22 +0000 (05:35 -0800)]
Merge pull request dotnet/coreclr#3088 from RussKeldorph/testwarn
Fix warnings in JIT test build
Commit migrated from https://github.com/dotnet/coreclr/commit/
1115b6f4999d88a48cffd73dbe92cd4252427268
Kamil Rytarowski [Fri, 12 Feb 2016 11:39:31 +0000 (12:39 +0100)]
Fix build on NetBSD: Allow to overload definition of wchar_t
This allows to build 100% of the sources on NetBSD.
In file included from /tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/safecrt/safecrt_output_l.c:70:
/usr/pkg/bin/../lib/clang/3.9.0/include/stddef.h:90:24: error: typedef redefinition with different types ('int' vs 'unsigned short')
typedef __WCHAR_TYPE__ wchar_t;
^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/inc/pal_char16.h:32:17: note: expanded from macro 'wchar_t'
^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/inc/pal_char16.h:44:24: note: previous definition is here
typedef unsigned short wchar_t;
^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/inc/pal_char16.h:32:17: note: expanded from macro 'wchar_t'
^
1 error generated.
Closes wchar_t redefinition broken on NetBSD dotnet/coreclr#2937
Commit migrated from https://github.com/dotnet/coreclr/commit/
388fe6d50b87a947cd9eb075dee737e5e4cbbe92
Jan Kotas [Fri, 12 Feb 2016 06:08:41 +0000 (22:08 -0800)]
Merge pull request dotnet/coreclr#3150 from krytarowski/netbsd-support-42
Fix build issue on NetBSD: Include <stdlib.h> for alloca(3)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1ff1fc83dab3cd3f7d5c448eea41e863c59ca4f6
Mike McLaughlin [Fri, 12 Feb 2016 03:44:31 +0000 (19:44 -0800)]
Merge pull request dotnet/coreclr#3146 from mikem8361/vso190301
Fix VSO bug dotnet/coreclr#190301 contract problems in DACRaiseException.
Commit migrated from https://github.com/dotnet/coreclr/commit/
58a96714860f3acab33ddbb22f572bff0ea6ad4b
Kamil Rytarowski [Fri, 12 Feb 2016 02:46:46 +0000 (03:46 +0100)]
Fix build issue on NetBSD: Include <stdlib.h> for alloca(3)
Header <alloca.h> isn't needed on other supported systems either.
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/file/directory.cpp:605:
warning: Warning: reference to the libc supplied alloca(3); this most likely will
not work. Please use the compiler provided version of alloca(3), by supplying the
appropriate compiler flags (e.g. not -std=c89).
$ uname -a
NetBSD chieftec 7.99.25 NetBSD 7.99.25 (GENERIC) dotnet/coreclr#0: Fri Dec 25 20:51:06 UTC 2015 root@chieftec:/tmp/netbsd-tmp/sys/arch/amd64/compile/GENERIC amd64
Commit migrated from https://github.com/dotnet/coreclr/commit/
3639bd23882a45f2248bc6296340dc76a0e21f33
Jan Vorlicek [Fri, 12 Feb 2016 01:31:15 +0000 (02:31 +0100)]
Merge pull request dotnet/coreclr#3076 from krytarowski/netbsd-support-37
Permit to inject additional CMake arguments via environment variables
Commit migrated from https://github.com/dotnet/coreclr/commit/
cb1effac01239c3af46a1d3917fb60f70b18b757