Bruce Forstall [Wed, 13 Jan 2016 04:37:04 +0000 (20:37 -0800)]
Merge pull request #2623 from BruceForstall/BuildShChanges
Clean up build.sh
Aditya Mandaleeka [Wed, 13 Jan 2016 04:30:27 +0000 (20:30 -0800)]
Merge pull request #2629 from adityamandaleeka/mscorrcFpic
Add fPIC option when compiling mscorrc.
Lubomir Litchev [Wed, 13 Jan 2016 04:23:37 +0000 (20:23 -0800)]
Merge pull request #2602 from LLITCHEV/Issue2295
Fix issue 2295.
Senthil [Wed, 13 Jan 2016 02:35:34 +0000 (18:35 -0800)]
Merge pull request #2627 from RussKeldorph/dowhilebndchk
Do loop cloning only if zero trip test can be ensured
Brian Sullivan [Wed, 13 Jan 2016 02:26:54 +0000 (18:26 -0800)]
Merge pull request #2626 from briansull/cleanup-liveness
Cleanup code in fgPerStatementLiveness and fgPerBlockLocalVarLiveness
Andy Ayers [Wed, 13 Jan 2016 01:14:54 +0000 (17:14 -0800)]
Merge pull request #2581 from AndyAyersMS/BenchmarkGame
Add a subset of benchmark game benchmarks
Andy Ayers [Wed, 13 Jan 2016 01:13:25 +0000 (17:13 -0800)]
Merge pull request #2571 from AndyAyersMS/PerfTestsZ
Add more integer benchmarks
Jan Kotas [Wed, 13 Jan 2016 00:45:56 +0000 (16:45 -0800)]
Merge pull request #2617 from stephentoub/datetime_allocation
Remove StringBuilder allocation/usage from DateTimeFormat
Lubomir Litchev [Sun, 10 Jan 2016 23:11:09 +0000 (15:11 -0800)]
Fix issue 2295.
Closes #2295. When creating shadow variables, copy the lvDontPromote flag
from the shadowed variable.
Aditya Mandaleeka [Tue, 12 Jan 2016 23:35:40 +0000 (15:35 -0800)]
Add fPIC option when compiling mscorrc.
Brian Sullivan [Tue, 12 Jan 2016 23:30:53 +0000 (15:30 -0800)]
Cleanup code in fgPerStatementLiveness and fgPerBlockLocalVarLiveness
Removed the <BUGNUM> comment about GT_QMARK that preceded the fgPerStatementLiveness method.
Added method header comment for fgPerStatementLiveness.
Changed return type of fgPerStatementLiveness to void.
Renamed the lhsNode argument to asgnLclVar.
Remove all the code that handles GT_QMARK/GT_COLON nodes,
as those node are no longer used by the RyuJit codebase.
In fgPerStatementLiveness renamed lhsNode to asgnLclVar.
Russ Keldorph [Tue, 12 Jan 2016 00:51:49 +0000 (16:51 -0800)]
Do loop cloning only if zero trip test can be ensured.
The problem is our loop detection logic detects the loop structure, but it
doesnt know the code outside the loop structure, esp., nothing about the
edge from the "head" into the loop "entry" block.
In the bug case, there is no zero-trip test in the "head", so the entrance
into the loop is not guarded. Note that the other point of entrance into
the "entry" block is from the "top" block which will be guarded by the
loop "bottom" test.
One way to make sure is when we invert a while loop into a do-while with
an explicit compiler cloned zero trip test, in fgOptWhileLoop, i.e., we
mark it as good to optimize with a flag. The fix marks the loop as ZTT.
The caveat is the JIT doesnt always do loop inversion.
This change is more conservative than it needs to be in the interest of
managing risk.
Andy Ayers [Tue, 12 Jan 2016 22:56:06 +0000 (14:56 -0800)]
Merge pull request #2619 from AndyAyersMS/MoreLocking
Set locked to true in project.lock.json
William Godbe [Tue, 12 Jan 2016 21:56:40 +0000 (13:56 -0800)]
Merge pull request #2492 from wtgodbe/memcpy2
Audit usage of memcpy in PAL for Debug
Bruce Forstall [Tue, 12 Jan 2016 21:11:20 +0000 (13:11 -0800)]
Clean up build.sh
Fix some typos. Make it more readable.
Jan Kotas [Tue, 12 Jan 2016 19:47:17 +0000 (11:47 -0800)]
Merge pull request #2620 from janvorli/fix-few-gc-details
Fix few details in the GC
Pat Gavlin [Tue, 12 Jan 2016 18:15:07 +0000 (10:15 -0800)]
Merge pull request #2607 from pgavlin/Reenableb99969
Re-enable b99969.
Jan Vorlicek [Tue, 12 Jan 2016 17:59:14 +0000 (18:59 +0100)]
Fix few details in the GC
- For Unix, the definition of __forceinline was missing the inline
- Allocation of GCThreadStubParams was missing a check for failure
- Removed few unnecessary #ifdefs for FEATURE_PAL from the GC sample
- Removed several obsolete functions from the GC sample
Gaurav Khanna [Tue, 12 Jan 2016 17:36:27 +0000 (09:36 -0800)]
Merge pull request #2618 from gkhanna79/TPALoadChanges
LoadByte/Path/NI support for Default Context
Andy Ayers [Tue, 12 Jan 2016 17:02:42 +0000 (09:02 -0800)]
Set locked to true in project.lock.json
Otherwise it's not really locked.
Jan Kotas [Tue, 12 Jan 2016 16:41:57 +0000 (08:41 -0800)]
Merge pull request #2611 from JohnChen0/master
Make CORCOMPILE_HEADER backward compatible
Eric Erhardt [Tue, 12 Jan 2016 15:42:29 +0000 (09:42 -0600)]
Merge pull request #2586 from eerhardt/IgnoreSymbols2
CompareOptions.IgnoreSymbols only ignores punctuation on Unix, but not other symbols
Gaurav Khanna (CLR) [Tue, 12 Jan 2016 01:26:13 +0000 (17:26 -0800)]
Add support Load assemblies from explicit path/streams into default load context
Andy Ayers [Tue, 12 Jan 2016 07:45:11 +0000 (23:45 -0800)]
Merge pull request #2549 from AndyAyersMS/PerfTestX
More integer benchmarks for the jit: NDhrystone
Andy Ayers [Tue, 12 Jan 2016 07:44:41 +0000 (23:44 -0800)]
Merge pull request #2558 from AndyAyersMS/SciMark
Add SciMark benchmark
Andy Ayers [Tue, 12 Jan 2016 07:43:47 +0000 (23:43 -0800)]
Merge pull request #2540 from AndyAyersMS/RoslynBenchmark
Add a simple Roslyn benchmarks
Jan Kotas [Tue, 12 Jan 2016 03:34:01 +0000 (19:34 -0800)]
Merge pull request #2613 from stephentoub/ifdef_stringbuilder
Add ifdef to suppress non-coreclr warning
stephentoub [Tue, 12 Jan 2016 01:54:22 +0000 (20:54 -0500)]
Remove StringBuilder allocation/usage from DateTimeFormat
ASP.NET uses DateTimeOffset.ToString("r") to format in accordance with RFC1123. The implementation of "r", for which the format includes quotes, ends up allocating a StringBuilder and parsing into it, just to get the quoted contents. With a minor transformation, this is unnecessary, allowing the StringBuilder and associated allocations and work to be removed.
Rama krishnan Raghupathy [Tue, 12 Jan 2016 01:37:25 +0000 (17:37 -0800)]
Merge pull request #2572 from ramarag/event_source_payload
Fixing use case of incomplete Event Source payload
Pat Gavlin [Mon, 11 Jan 2016 18:15:48 +0000 (10:15 -0800)]
Re-enable b99969.
Now that #2286 has been fixed, b99969 can be re-enabled.
stephentoub [Mon, 11 Jan 2016 23:25:17 +0000 (18:25 -0500)]
Add ifdef to suppress non-coreclr warning
My change to optimize AppDomain.Setup included moving a variable out of a loop, which also ended up moving it out of an ifdef. That then causes an unused variable warning on some builds.
Hongtao Yu [Mon, 11 Jan 2016 23:16:59 +0000 (15:16 -0800)]
Merge pull request #2592 from hoyMS/Bug2311
Fix for issue 2311.
Hongtao Yu [Mon, 11 Jan 2016 23:15:02 +0000 (15:15 -0800)]
Merge pull request #2609 from hoyMS/Bug2294
Fix for bug 2294 [JitStress=2] Assertion failed 'curArgTabEntry->regN…
John Chen (CLR) [Mon, 11 Jan 2016 22:23:52 +0000 (14:23 -0800)]
Make CORCOMPILE_HEADER backward compatible
Resolve issue #2348 by reordering fields in CORCOMPILE_HEADER,
so that PEKind and Machines fields are in the same location as
in older versions of this struct.
Bruce Forstall [Mon, 11 Jan 2016 21:48:05 +0000 (13:48 -0800)]
Merge pull request #2587 from BruceForstall/BuildAllCmd
Add "all" command to build.cmd
Sejong Oh [Mon, 11 Jan 2016 20:58:40 +0000 (12:58 -0800)]
Merge pull request #2568 from sejongoh/bugfix_unsigned_16bit_cmp_codegen
Fix bad codegen for comparing 16-bit unsigned values
Matt Ellis [Mon, 11 Jan 2016 19:56:25 +0000 (11:56 -0800)]
Merge pull request #2601 from stephentoub/appdomain_setup_cleanup
Perf tweaks/cleanup to AppDomain.Setup
Hongtao Yu [Mon, 11 Jan 2016 19:03:32 +0000 (11:03 -0800)]
Fix for bug 2294 [JitStress=2] Assertion failed 'curArgTabEntry->regNum == regNum' in 'BringUpTest Main() in morph.cpp
The bug is due to a misproper definition of LAST_FP_ARGREG for Unix. On Windows, we set LAST_FP_ARGREG to XMM3. On UNix, the value should be XMM7.
Pat Gavlin [Mon, 11 Jan 2016 18:14:15 +0000 (10:14 -0800)]
Merge pull request #2400 from pgavlin/FixDebugTypes
Fix DebugType and Optimize values for JIT tests.
Eric Erhardt [Fri, 8 Jan 2016 18:02:56 +0000 (12:02 -0600)]
CompareOptions.IgnoreSymbols only ignores punctuation on Unix, but not other symbols
By default, ICU alternate shifted collation handling only ignores punctuation, not all symbols, so change the "variable top" to include all symbols and currency characters.
Fix #4907
stephentoub [Mon, 11 Jan 2016 02:09:58 +0000 (21:09 -0500)]
Avoid int[] and string[] allocations from String.Split in AppDomain.Setup
String.Split not only allocates the string[] to hold the results, it also allocates an int[inputString.Length] to hold the indices of the separators. With not much more code, we can do the splitting manually and avoid both arrays.
Aditya Mandaleeka [Mon, 11 Jan 2016 01:51:24 +0000 (17:51 -0800)]
Merge pull request #2603 from adityamandaleeka/fixSosDumpLog
Fix SOS DumpLog
Aditya Mandaleeka [Mon, 11 Jan 2016 00:22:23 +0000 (16:22 -0800)]
Fix SOS DumpLog
stephentoub [Sun, 10 Jan 2016 20:39:37 +0000 (15:39 -0500)]
Add some optimizations to AppDomain.Setup string handling
- Paths are normalized from a delimited string into a delimited StringBuilder. It's very likely that the resulting data in the StringBuilder will be the same length or approximately the same length as that in the input string, So pre-size the StringBuilder to be the same as the input length.
- Reuse StringBuilder instance for handling each property that needs it.
- Reuse the char[] array created for the path sepator
Jan Kotas [Sun, 10 Jan 2016 20:15:58 +0000 (12:15 -0800)]
Merge pull request #2544 from dotnet-bot/from-tfs
Merge changes from TFS
Jan Kotas [Sun, 10 Jan 2016 20:11:14 +0000 (12:11 -0800)]
Merge pull request #2598 from mikedn/archdir
Use ARCH_SOURCES_DIR consistently
stephentoub [Sun, 10 Jan 2016 18:25:21 +0000 (13:25 -0500)]
Remove duplicate else blocks
The same code is repeated for four different property names... condense them all into a single else if.
Mike Danes [Sun, 10 Jan 2016 14:04:05 +0000 (16:04 +0200)]
Use ARCH_SOURCES_DIR consistently
Some places already use ARCH_SOURCES_DIR for things like include_directories but others test the platform/arch variables to figure out the dir. Use ARCH_SOURCES_DIR everywhere for consistency.
Jan Kotas [Sun, 10 Jan 2016 08:15:25 +0000 (00:15 -0800)]
Merge pull request #2593 from RussKeldorph/remove_stk_bndchk
Remove bad test: stk_bndchk.il
Jan Kotas [Sun, 10 Jan 2016 08:07:17 +0000 (00:07 -0800)]
Merge pull request #2595 from stephentoub/startup_allocs
Eliminate a bunch of AppDomain.Setup string path allocations
stephentoub [Sun, 10 Jan 2016 03:05:50 +0000 (22:05 -0500)]
Eliminate a bunch of AppDomain.Setup string path allocations
A simple "Hello, World" CoreCLR app involves several hundred K of allocations. A large percentage of this is in AppDomain.Setup. At least for my configuration, 30% of all allocations are strings coming from AppDomain.Setup calling Path.NormalizePath (using CoreRun to run a "Hello, World" app in a folder containing the runtime and a bunch of framework libraries). NormalizePath already checks to see whether the generated string is the same one that was supplied, but it does so after generating the string rather than before; changing to do it before-hand eliminates those allocations (given the right circumstances).
Jan Kotas [Sat, 9 Jan 2016 04:31:09 +0000 (20:31 -0800)]
Merge pull request #2582 from jkotas/fix-gcsample-x86
Fix building of GCSample on x86 via the standalone VS project
Hongtao Yu [Sat, 9 Jan 2016 01:07:14 +0000 (17:07 -0800)]
Fix for issue 2311.
Remove the use of unsupported System.Threading.Thread.Abort in a test. Use
semaphore instead.i
The test is testing current GC which is composed of two threads. One thread serves as the garbage collector and run terminates by
itself. The other thread is the main thread and it explicitly aborts the GC thread when all work is done.
F
Bruce Forstall [Sat, 9 Jan 2016 00:08:17 +0000 (16:08 -0800)]
Add "all" command to build.cmd
With "all", all build architectures and type are built. If a set of architectures or types
is also given, then the set of builds is restricted to those architecturs or flavors.
For example:
build all
-- builds all architectures, and all build types per architecture
build all x86
-- builds all build types for x86
build all x64 x86 Checked Release
-- builds x64 and x86 architectures, Checked and Release build types for each
Bruce Forstall [Sat, 9 Jan 2016 01:42:27 +0000 (17:42 -0800)]
Merge pull request #2588 from BruceForstall/Fixx86TestBuild
Allow all architectures for buildtest.cmd
Rama krishnan Raghupathy [Fri, 8 Jan 2016 06:44:25 +0000 (22:44 -0800)]
Fixing use case of incomplete Event Source payload
Russ Keldorph [Sat, 9 Jan 2016 00:52:51 +0000 (16:52 -0800)]
stk_bndchk.il is failing consistently for some individuals and
occasionally in the cloud. It assumes that it can create at most 1000
threads and be guaranteed that at least one of the threads' stacks will be
at an address below the heap. Presumably it did that because such
addresses were required to provoke a bug repro at one point in time.
Assuming the original bug is long fixed, there doesn't appear to be much
value to this test case, and it should simply be removed rather than made
deterministic.
Fixes #2585
Bruce Forstall [Sat, 9 Jan 2016 00:42:39 +0000 (16:42 -0800)]
Allow all architectures for buildtest.cmd
Jan Kotas [Sat, 9 Jan 2016 00:04:21 +0000 (16:04 -0800)]
Merge pull request #2574 from jkotas/tail-calls
Enable tailcallopt for CoreRT
Brian Sullivan [Fri, 8 Jan 2016 22:14:25 +0000 (14:14 -0800)]
Merge pull request #2569 from briansull/fix-2286
Fix Issure 2286 - RyuJIT needs to honor volatile reads/writes and avoid making CSE's
Jan Kotas [Fri, 8 Jan 2016 22:04:23 +0000 (14:04 -0800)]
Fix building of GCSample on x86 via the standalone VS project
Andy Ayers [Fri, 8 Jan 2016 07:13:23 +0000 (23:13 -0800)]
Add a subset of benchmark game benchmarks
Add tests that are not multithreaded and don't rely on large input files. These are adapted for xunit-performance.
Add license and readme.
Jan Kotas [Fri, 8 Jan 2016 16:54:57 +0000 (08:54 -0800)]
Enable tailcallopt for CoreRT
tailcallopt was disabled for ReadyToRun compilation mode because of zapper limitation. Moved the block to the zapper so that CoreRT can take advantage of it.
Bruce Forstall [Fri, 8 Jan 2016 20:52:24 +0000 (12:52 -0800)]
Merge pull request #2570 from BruceForstall/BuildCmdCleanup
Improve buildtest.cmd, runtest.cmd
Brian Sullivan [Fri, 8 Jan 2016 00:14:01 +0000 (16:14 -0800)]
Fix Issure 2286 - RyuJIT needs to honor volitile reads/writes and avoid making CSE's across them
In Liveness.cpp we will now treat a volatile accesses as definitions of the global heap
Assertions are also added in ValueNumber.cpp such that a block that defines or mutates the global heap
must have been marked as cotailing a definition of the global heap using the bbHeapDef flag.
Eric Erhardt [Thu, 7 Jan 2016 22:14:16 +0000 (16:14 -0600)]
Convert System.Globalization.Native to use a configure.cmake and .h.in files.
Andy Ayers [Fri, 8 Jan 2016 18:09:40 +0000 (10:09 -0800)]
Merge pull request #2550 from AndyAyersMS/InlineTree
Initial version of the inline tree
Pat Gavlin [Fri, 8 Jan 2016 17:08:59 +0000 (09:08 -0800)]
Merge pull request #2563 from hoyMS/Bug2452
Fix for bug 2452.
Jan Kotas [Fri, 8 Jan 2016 15:15:37 +0000 (07:15 -0800)]
Merge pull request #2573 from janvorli/fix-unlimited-stack-issue
Fix issue with unlimited stack setting
Jan Vorlicek [Fri, 8 Jan 2016 00:41:07 +0000 (01:41 +0100)]
Fix issue with unlimited stack setting
This change fixes a problem when a process stack size is set to unlimited.
In such case, the main thread stack memory range can shrink during the
process run time. But CoreCLR caches the initial stack limit value and
uses it to detect whether an object is on stack. Since the stack range is
not correct and there can be allocations in the original range of the stack,
this check sometimes fails and can cause issues.
The fix is to remember the stack top at the beginning of the scan in the
ScanContext and use it to check the object address too.
Jan Kotas [Fri, 8 Jan 2016 05:11:12 +0000 (21:11 -0800)]
Merge pull request #2567 from LLITCHEV/GetTypeIntrinsic
Fix ARM build break (Issue 2362).
Jan Kotas [Fri, 8 Jan 2016 05:10:14 +0000 (21:10 -0800)]
Merge pull request #2560 from AndyAyersMS/TestAttributionNote
Add note about attributions and licenses for 3rd-party originated tests
Jan Kotas [Fri, 8 Jan 2016 05:09:31 +0000 (21:09 -0800)]
Merge pull request #2562 from sergiy-k/gccodefix
Fix incorrect merge in gc.cpp
Andy Ayers [Thu, 7 Jan 2016 02:31:45 +0000 (18:31 -0800)]
Add more integer benchmarks
The remainder of our simple integer benchmarks: AddArray2, Array1, BenchE, CSieve, Permutate, Puzzle, and TreeInsert.
Stephen Toub [Fri, 8 Jan 2016 02:28:34 +0000 (21:28 -0500)]
Merge pull request #2559 from bartonjs/osx_openssl_requirements
Update OS X instructions to include upgrading OpenSSL
Stephen Toub [Fri, 8 Jan 2016 02:28:05 +0000 (21:28 -0500)]
Merge pull request #2561 from mikem8361/fixtransport
Fixed issue #5109. Console stops echoing typed keys after running coreclr.
Bruce Forstall [Fri, 8 Jan 2016 00:42:04 +0000 (16:42 -0800)]
Improve buildtest.cmd, runtest.cmd
Apply the same kind of changes that were applied to build.cmd:
1. Improved readability and structure of the code.
2. Make all three look similar.
3. Add "sequential" and "msbuildargs" options
4. Add better logging and less verbose console output
Kyungwoo Lee [Thu, 7 Jan 2016 23:52:41 +0000 (15:52 -0800)]
Merge pull request #2557 from kyulee1/fixmessage
Fix help message in ildasm for Unix
Sejong Oh [Thu, 7 Jan 2016 23:41:10 +0000 (15:41 -0800)]
Fix wrong codegen for comparing 16-bit unsigned values
The changes fix a bug generating 16-bit signed comparison code to
compare unsigned 16-bit values.
David Mason [Thu, 7 Jan 2016 23:40:43 +0000 (15:40 -0800)]
Merge pull request #2518 from davmason/master
Merge the .Net Native and CoreCLR implementations of EventSource.
Lubomir Litchev [Thu, 7 Jan 2016 23:30:15 +0000 (15:30 -0800)]
Fix ARM build break (Issue 2362).
Remove unnecessary __cdecl modifier.
David Mason [Mon, 21 Dec 2015 23:43:42 +0000 (15:43 -0800)]
Merge the .Net Native and CoreCLR implementations of EventSource. This replaces a lot of the previous ifdefs in the ProjectN impelmentation with a partial class that is cleaner and easier to understand.
Remove some ifdefs that can be done in a better way and merge additional bug fixes that happened in the nuget package branch.
Refactor some code to eliminate ifdefs for projectN.
Refactor code so that the ProjectN support uses partial classes instead of ifdefs.
Round 2 of making sure everything compiles in CoreCLR and in ProjectN.
Add formatting to the debugger message that EventSource prints when an internal error happens.
Change null strings to be represented as empty strings in TraceLogging.
Remove some ifdefs that can be done in a better way and merge additional bug fixes that happened in the nuget package branch.
Change WriteEventString to use an anonymous struct instead of EventMessage.
Hongtao Yu [Thu, 7 Jan 2016 22:15:44 +0000 (14:15 -0800)]
Merge pull request #2552 from hoyMS/Bug2298
Fix for Bug 2298
Hongtao Yu [Thu, 7 Jan 2016 21:18:42 +0000 (13:18 -0800)]
Fix a test bug where dllexport qualifier was missing.
Sergiy Kuryata [Thu, 7 Jan 2016 20:57:53 +0000 (12:57 -0800)]
Fix incorrect merge in gc.cpp
@Maoni0 noticed that there was one place in gc.cpp that was incorrectly
merged with code from other branches. This change fixes the problem.
Mike McLaughlin [Thu, 7 Jan 2016 20:30:17 +0000 (12:30 -0800)]
Fixed issue #5109. Console stops echoing typed keys after running a coreclr program.
The DbgTransportSession/TwoWayPipe code was closing handle 0 (stdout) because the DbgTransportSession class wasn't being zero init'ed via a memset. The TwoWayPipe code initialized the pipe handles to -1. The fix is to reinitialized the TwoWayPipe by calling the constructor. Even though it is overkill also checked for 0 in the Disconnect code that closes the pipes.
Kyungwoo Lee [Thu, 7 Jan 2016 15:57:55 +0000 (07:57 -0800)]
Fix help message in ildasm for Unix
ildasm -h contains a few broken message like "[Undefined resource string ID:0xCC]"
This is because we converted .rc file to a string table and SyntaxCon() enumerate all message ids while some of ids are ifdefedd out under FEATURE_PAL.
The fix is to define all the missing ids with empty string.
And also the indention (prefixed space) are all ignored except one.
Our trick (in awk script) to extract expression ID is to iterate argument string ($i) while setting it
to empty string to effectively delete the argument.
Unfortunately this has side-effect that normalizes all spaces between arguments to one space string.
The fix is to explicitly extract string content from the original string $0.
Andy Ayers [Wed, 6 Jan 2016 17:49:23 +0000 (09:49 -0800)]
Initial version of the inline tree
Extend `inlExpLst` to to describe the full inlining tree in a method, with a
corresponding dump method.
Add a top-level tree node to serve as the root of the tree. Set this as the
inline context for all top-level expressions. Update the code that links in new
nodes when there is a successful inline to build the tree links. Since the
child list is extended by a prepend and candidates are currently visited in
lexical (increasing "local" IL offset) order, the child list ends up reversed.
The dumper prints the list entries from back to front to compensate so the tree
display reflects lexical order.
Capture IL offset to help in identifying call sites. Note this is incomplete and
offets are often missing copies of the parent's offset. Will work on improving
this subsequently.
Update the depth check to return the depth. This is currently only used in
diagnostic messages.
Remove some unused inlining-related data members from the compiler class. Cache
the `JitPrintInlinedMethods` config value and use it to dump the tree when
inlining is done, if there were any inlines.
The jit traditionally (and probably inadvertently) allowed one level of
recursive inlining. Added a test case showing how this can happen.
Because there is now a top-level inlining context, the recursion check can now
potentially detect and block these recursive inlines. Support legacy behavior
for now by setting `ixlCode` to `nullptr` in the top-level record.
This change should be no diff.
Sample output:
```
Inlines into Enumerable:Where(ref,ref):ref
[IL=3] Error:ArgumentNull(ref):ref
[IL=17] Error:ArgumentNull(ref):ref
[IL=?] WhereArrayIterator`1:.ctor(ref,ref):this
[IL=?] Iterator`1:.ctor():this
[IL=?] Object:.ctor():this
[IL=?] Environment:get_CurrentManagedThreadId():int
[IL=?] Thread:get_CurrentThread():ref
[IL=?] WhereListIterator`1:.ctor(ref,ref):this
[IL=?] Iterator`1:.ctor():this
[IL=?] Object:.ctor():this
[IL=?] Environment:get_CurrentManagedThreadId():int
[IL=?] Thread:get_CurrentThread():ref
[IL=?] WhereEnumerableIterator`1:.ctor(ref,ref):this
[IL=?] Iterator`1:.ctor():this
[IL=?] Object:.ctor():this
[IL=?] Environment:get_CurrentManagedThreadId():int
[IL=?] Thread:get_CurrentThread():ref
```
Sample showing the recursive inline:
```
Inlines into Fact:factRx(int,int,int,int):int
[IL=6] Fact:factRx(int,int,int,int):int
```
Andy Ayers [Thu, 7 Jan 2016 19:38:59 +0000 (11:38 -0800)]
Add note about attributions and licenses for 3rd-party originated tests
bartonjs [Thu, 7 Jan 2016 19:25:08 +0000 (11:25 -0800)]
Update OS X instructions to include upgrading OpenSSL
Andy Ayers [Thu, 7 Jan 2016 17:13:50 +0000 (09:13 -0800)]
Add SciMark benchmark
3rd party attributions retained in file header comments.
Rama krishnan Raghupathy [Thu, 7 Jan 2016 18:37:17 +0000 (10:37 -0800)]
Merge pull request #2517 from swgillespie/etw-python3
python3-ize the ETW setup scripts
Bruce Forstall [Thu, 7 Jan 2016 06:53:20 +0000 (22:53 -0800)]
Merge pull request #2541 from BruceForstall/BuildCmdCleanup
Improve and clean-up build.cmd
Hongtao Yu [Thu, 7 Jan 2016 01:59:05 +0000 (17:59 -0800)]
Fix for Bug 2298.
There is a noway assert in the lower assuming an GT_ARR_ELEM node cannot be a top expression node. This is not true. We can have a top-level GT_ARR_ELEM. For example, a function call with a parameter of GT_ARR_ELEM can end up being simplified by the inliner to single GT_ARR_ELEM node if the function has an empty body.
The fix here is to remove the assert and use the GT_ARR_ELEM as the inserting point and remove the GT_ARR_ELEM later.
Jan Kotas [Thu, 7 Jan 2016 03:07:27 +0000 (19:07 -0800)]
Merge pull request #2548 from ellismg/fix-en-us-posix-casing
Don't use Turkish casing for en-US-POSIX.
Jan Kotas [Thu, 7 Jan 2016 01:54:53 +0000 (17:54 -0800)]
Merge pull request #2546 from AndyAyersMS/InlineTestCleanup
Remove some redundant inlining tests
Jan Vorlicek [Thu, 7 Jan 2016 01:40:46 +0000 (02:40 +0100)]
Merge pull request #2529 from janvorli/fix-osx-build-with-new-cmake
Fix build on OSX with CMake version >= 3.4
Jan Kotas [Thu, 7 Jan 2016 01:35:22 +0000 (17:35 -0800)]
Merge pull request #2543 from janvorli/fix-div-0-ovf-detection
Fix div by zero or overflow detection on Unix
William Godbe [Wed, 30 Dec 2015 22:16:10 +0000 (14:16 -0800)]
Audit usage of memcpy in PAL for Debug
Matt Ellis [Wed, 6 Jan 2016 22:51:44 +0000 (14:51 -0800)]
Don't use Turkish casing for en-US-POSIX.
Previously, we were using a comparision between "i" and "I" (while
ignoring case) to figure out if we needed to do Turkish casing (on the
assumption that locales which compared i and I as non equal when
ignoring case were doing Turkish casing).
ICU Does tailoring of the en-US-POSIX locale and assigns different
primary wights to 'i' and 'I'. You can see this in the ICU Collation
Demo by looking at the raw collation elements. Different primary weights
mean they different letters, not the same letter with a difference in
casing (which is a trinary weight).
This changes the check to compare using an actual Turkish i when doing
our detection to not get confused by these cases.
Fixes #2531