Sergey Andreenko [Wed, 22 Nov 2017 02:20:16 +0000 (18:20 -0800)]
format spmi source (#15144)
Jan Kotas [Tue, 21 Nov 2017 22:44:58 +0000 (14:44 -0800)]
Delete unused leftovers from binary serialization (#15140)
Michal Strehovský [Tue, 21 Nov 2017 18:26:57 +0000 (19:26 +0100)]
Merge pull request dotnet/corert#4971 from dotnet/nmirror
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Kotas [Tue, 21 Nov 2017 19:20:00 +0000 (11:20 -0800)]
Move SafeBuffer and a few other files to shared CoreLib partition (#15141)
Bruce Forstall [Tue, 21 Nov 2017 18:42:07 +0000 (10:42 -0800)]
Merge pull request #15138 from BruceForstall/FixArmPri1
Temporary fix for arm/armlb/arm64 builds: always build Pri 1 tests
Jan Kotas [Tue, 21 Nov 2017 14:01:12 +0000 (06:01 -0800)]
Move UnmanagedMemoryAccessor to shared CoreLib partition (#15137)
Bruce Forstall [Tue, 21 Nov 2017 05:57:21 +0000 (21:57 -0800)]
Temporary fix for arm/armlb/arm64 builds: always build Pri 1 tests
A fix like #15075 will replace this soon.
Bruce Forstall [Tue, 21 Nov 2017 05:47:20 +0000 (21:47 -0800)]
Merge pull request #15133 from BruceForstall/FixMissingLabel
Fix genPrepForEHCodegen for arm64
Bruce Forstall [Tue, 21 Nov 2017 05:39:24 +0000 (21:39 -0800)]
Merge pull request #15131 from BruceForstall/RemoveX86LegacyBackendTesting
Remove x86 legacy_backend build and CI testing
Justin Van Patten [Tue, 21 Nov 2017 03:49:23 +0000 (19:49 -0800)]
Version: Use int.TryFormat & StringBuilder.Append(int) (#15132)
Now that `int.TryFormat` is available, along with the more efficient
`StringBuilder.Append(int)`, use them in `Version`.
Carol Eidt [Tue, 21 Nov 2017 02:13:14 +0000 (18:13 -0800)]
Merge pull request #15034 from CarolEidt/FixDivRegs
Set reg conflicts on contained IND
Justin Van Patten [Tue, 21 Nov 2017 02:11:58 +0000 (18:11 -0800)]
Reduce allocations in StringBuilder.AppendFormat for primitive types (#15110)
Use the new `TryFormat` APIs to avoid string allocations for primitive types
inside `StringBuilder.AppendFormat`, used by `string.Format`/interpolated
strings.
Santiago Fernandez Madero [Tue, 21 Nov 2017 00:29:58 +0000 (16:29 -0800)]
Change quotes.
Bruce Forstall [Tue, 21 Nov 2017 00:23:22 +0000 (16:23 -0800)]
Remove x86 legacy_backend build and CI testing
Sergey Andreenko [Tue, 21 Nov 2017 00:20:56 +0000 (16:20 -0800)]
fix the adding (#15121)
Santiago Fernandez Madero [Tue, 21 Nov 2017 00:10:57 +0000 (16:10 -0800)]
Add a core dump example.
dotnet bot [Mon, 20 Nov 2017 23:54:50 +0000 (15:54 -0800)]
Fix typo (#15129)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Carol Eidt [Wed, 15 Nov 2017 05:37:12 +0000 (21:37 -0800)]
Set reg conflicts on contained IND
For shift, rotate, mod and div, we were only excluding conflicting registers on the non-fixed operand if it is not contained. However, we still want to do that for the base and index (if any) on a contained IND.
Also, fix the LocationInfoListNodePool to attribute its memory usage to CMK_LSRA.
Mike McLaughlin [Mon, 20 Nov 2017 23:02:22 +0000 (15:02 -0800)]
Fix a few of createdump bugs. (#15079)
1) Fix createdump p_vaddr bias/base problem.
2) createdump was loading the DAC from the directory where createdump was executed from and not from the libcoreclr.so path. Fixed this.
3) Don't use the dac if the libcoreclr.so module is not found.
4) Remove the QI of ICoreDebugDataTarget4 in datatarget.cpp. Forgot to do this when the VirtualUnwind function was removed. Caused crash.
Carol Eidt [Mon, 20 Nov 2017 22:58:37 +0000 (14:58 -0800)]
Merge pull request #15120 from sdmaclea/PR-ARM64-SIMD-SIMD12-genCodeForStoreLcl
[Arm64] SIMD12 genCodeForStoreLcl*
Bruce Forstall [Mon, 20 Nov 2017 22:29:55 +0000 (14:29 -0800)]
Merge pull request #15087 from BruceForstall/FixJmpGsCheck
Fix RyuJIT/arm32 GS cookie check before JMP call
Bruce Forstall [Mon, 20 Nov 2017 22:27:25 +0000 (14:27 -0800)]
Merge pull request #15084 from BruceForstall/FixMulLongBashing3
Fix RyuJIT/arm32 GT_MUL_LONG node bashing
Bruce Forstall [Mon, 20 Nov 2017 22:23:57 +0000 (14:23 -0800)]
Merge pull request #15086 from BruceForstall/FixBitCastGenTreeDefn2
Fix GenTree definition for GT_BITCAST
Bruce Forstall [Mon, 20 Nov 2017 22:23:25 +0000 (14:23 -0800)]
Fix debuggable GenTree (#15081)
* Fix debuggable GenTree
Since the `DEBUGGABLE_GENTREE` hack was introduced, many new
GenTree types have been introduced, and gtstructs.h has shifted
around. This change fixes it so we should see accurate GenTree
vtable pointers for all cases where SetOper gets called.
* Formatting
Andy Ayers [Fri, 17 Nov 2017 00:14:06 +0000 (16:14 -0800)]
Update jitbench harness to capture steady state data
Update jitbench SHA to pick up new version that reports steady state
median response time, with fractional digits.
Bruce Forstall [Mon, 20 Nov 2017 22:05:03 +0000 (14:05 -0800)]
Fix genPrepForEHCodegen for arm64
Enable amd64 code for arm64 as well, to match the expectation of
where labels exist in genReportEH. Fixes #14831, a unique case
during MinOpts (and probably only minopts) where dead code follows
a call/finally block sequence.
Carol Eidt [Mon, 20 Nov 2017 21:07:56 +0000 (13:07 -0800)]
Merge pull request #15115 from CarolEidt/Enable14665Tests
Re-enable tests disabled for #14665
Bruce Forstall [Mon, 20 Nov 2017 21:06:26 +0000 (13:06 -0800)]
Merge pull request #14933 from sdmaclea/PR-ARM64-SIMD-Normalize-Struct-Return
[Arm64] SIMD Normalize struct return type
Bruce Forstall [Mon, 20 Nov 2017 21:01:09 +0000 (13:01 -0800)]
Merge pull request #12552 from mikedn/switch-bt
Use BT in switch lowering
Bruce Forstall [Mon, 20 Nov 2017 20:57:33 +0000 (12:57 -0800)]
Merge pull request #15117 from sdmaclea/PR-ARM64-SIMD-SIMDIntrinsicSet-life
[Arm64] SIMD fix SIMDIntrinsicSet* op2 life
Steve MacLean [Mon, 20 Nov 2017 20:34:03 +0000 (15:34 -0500)]
[Arm64] SIMD12 genCodeForStoreLcl*
Jan Kotas [Mon, 20 Nov 2017 20:19:01 +0000 (12:19 -0800)]
Move MemoryStream to shared CoreLib partition (#15116)
- Apply formating and other minor changes from CoreRT
- Prefer async implementations from CoreCLR since they are more recent and better optimized
- Apply similar changes to UnmanagedMemoryStream as well to keep the two close
Steve MacLean [Mon, 20 Nov 2017 17:40:09 +0000 (12:40 -0500)]
[Arm64] SIMD fix SIMDIntrinsicSet* op2 life
Carol Eidt [Mon, 20 Nov 2017 18:15:58 +0000 (10:15 -0800)]
Re-enable tests disabled for #14665
Jan Kotas [Mon, 20 Nov 2017 16:42:47 +0000 (08:42 -0800)]
Move TaskToApm to shared CoreLib partition (#15113)
- Get TaskToApm in sync with CoreFX copy and move it to shared CoreLib partition
- Delete redundant __Error file
- Delete remaining uses of InternalBlockCopy and replace it with BlockCopy
Bruce Forstall [Mon, 20 Nov 2017 05:26:24 +0000 (21:26 -0800)]
Merge pull request #15088 from BruceForstall/FixArmStressLclFlds
Fix STRESS_LCL_FLDS for ARM
dotnet-maestro-bot [Mon, 20 Nov 2017 04:01:28 +0000 (20:01 -0800)]
Update BuildTools, CoreClr, CoreFx to prerelease-02219-01, preview1-25920-01, preview1-25920-01, respectively (#15099)
Alex [Mon, 20 Nov 2017 02:32:25 +0000 (04:32 +0200)]
Allow ByRef return types in Dynamic Method (#15106)
* Allow ByRef return types in Dynamic Method
* Additional cleanup
Stephen Toub [Sun, 19 Nov 2017 21:10:30 +0000 (16:10 -0500)]
Fix two issues in managed number formatting (#15105)
* Fix ValueStringBuilder to return correct array to pool
When growing the builder, it's erroneously returning the new array rather than the old one.
* Fix number formatting to not share static buffer
Was missing [ThreadStatic] on a static, such that parallel formatting of numbers might end up sharing the same buffer. Oops. But instead of just adding [ThreadStatic], I've switched to starting with a relatively small buffer on the stack. It should suffice for the majority of performed formatting, and the ValueStringBuilder will grow for longer needs.
* Work around C# compiler warning about stack space being exposed
Jan Kotas [Sun, 19 Nov 2017 15:41:14 +0000 (07:41 -0800)]
Delete FriendAccessAllowedAttribute and associated dead code (#15101)
- Preserved commented out FriendAccessAllowed on types and methods that are still used as friends in System.Runtime.WindowsRuntime
Jan Kotas [Sun, 19 Nov 2017 15:39:48 +0000 (07:39 -0800)]
Move debugger attributes to shared partition (#15100)
- Break down DebuggerAttributes.cs into more files, apply cleanup done in CoreRT
- Move two outliers (DebuggerStepperBoundaryAttribute, DebuggerVisualizerAttribute) from CoreFX to CoreLib so that all debugger attributes are together
Jan Kotas [Sun, 19 Nov 2017 13:49:08 +0000 (05:49 -0800)]
Delete SuppressUnmanagedCodeSecurity on QCalls
Mike Danes [Sat, 29 Apr 2017 10:50:26 +0000 (13:50 +0300)]
Use BT in switch lowering
Jan Kotas [Sun, 19 Nov 2017 06:41:39 +0000 (22:41 -0800)]
Delete unnecesary SuppressUnmanagedCodeSecurity annotations (#15102)
Jan Kotas [Sun, 19 Nov 2017 03:24:14 +0000 (19:24 -0800)]
Merge pull request #15069 from stephentoub/coreclrnumbershared
Add TryFormat span-based methods to most primitive types
Stephen Toub [Fri, 17 Nov 2017 00:05:50 +0000 (19:05 -0500)]
Use TryFormat in StringBuilder
Avoid string allocations when appending primitives to StringBuilder. We try to format into the existing array space, and only fall back to using ToString when there isn't enough room and we're going to grow the builder anyway.
Stephen Toub [Thu, 16 Nov 2017 18:59:51 +0000 (13:59 -0500)]
Add TryFormat methods to {S}Byte, {U}Int16/32/64, and Boolean
Stephen Toub [Thu, 16 Nov 2017 17:40:04 +0000 (12:40 -0500)]
Change FormatFixed to avoid bounds checks
Match the original native code's use of pointers.
Stephen Toub [Wed, 15 Nov 2017 23:18:20 +0000 (18:18 -0500)]
Remove now dead code from managed parsing/formatting.
- Remove dead "bigNumber" code.
- Remove custom wcslen function. Use String's.
- Delete dead fcalls from runtime. FormatInt32, FormatUInt32, FormatInt64, and FormatUInt64 are no longer needed. Delete them and many of the helpers used only by them.
Stephen Toub [Wed, 15 Nov 2017 17:54:06 +0000 (12:54 -0500)]
Improve performance of managed formatting code
- Optimize NumberBuffer passing by reference instead of value. It's a large struct of ~50 bytes; copying it around has non-trivial cost.
- Replace formatting StringBuilder with ref struct and stack allocation. Avoids lots of allocation and associated throughput costs.
- Improve perf of 'D' formatting of 32-bit and 64-bit integers.
- Remove array allocations accessing NumberFormatInfo props.
- Accessing array properties like PercentGroupSizes clones the corresponding field. That's unnecessary here, as we don't mutate the array.
- Remove int[] allocation from NumberToStringFormat. Span makes it easy to start with stack space and grow to an allocated array as needed.
- Improve perf of hex formatting of integers. Including removing some sizable allocations.
- Manually inline several hot functions called in only one place.
- Tweak some range comparisons in ParseFormatSpecifier.
- Avoid large stackallocs in NumberToString{Fixed}. It's incurring non-trivial overheads.
- Tweak perf of ValueStringBuilder. In particular, make Append(string) faster for the single-char case, which is extremely common in integer formatting due to its prevalence in strings in NumberFormatInfo.
Stephen Toub [Tue, 14 Nov 2017 21:49:43 +0000 (16:49 -0500)]
Move integer parsing/formatting logic to shared
Moves existing managed parsing code to shared, to be shared with corert.
Takes the managed formatting port from corert and moves that to shared
as well.
Jan Kotas [Sat, 18 Nov 2017 20:02:58 +0000 (12:02 -0800)]
Delete unused Thread::YieldTask (#15091)
dotnet-maestro-bot [Sat, 18 Nov 2017 16:25:54 +0000 (08:25 -0800)]
Update BuildTools, CoreClr, CoreFx, PgoData to prerelease-02217-03, preview1-25918-04, preview1-25917-04, master-
20171116-0044, respectively (#15094)
David Nissimoff [Sat, 18 Nov 2017 15:11:06 +0000 (07:11 -0800)]
Fix #15057 MemoryStream.CopyToAsync calls Write / WriteAsync with count=0 (#15070)
Jan Kotas [Sat, 18 Nov 2017 15:10:35 +0000 (07:10 -0800)]
Rename mscorlib to System.Private.CoreLib in documentation (#15090)
Fixes #15078
Jan Kotas [Sat, 18 Nov 2017 09:03:29 +0000 (01:03 -0800)]
Fix up ConfiguredValueTaskAwaitable signature for new compiler checks (#15092)
Jan Kotas [Sat, 18 Nov 2017 09:02:40 +0000 (01:02 -0800)]
Fix MacOSX build break (#15093)
Fixes #15005
Bruce Forstall [Sat, 18 Nov 2017 02:01:10 +0000 (18:01 -0800)]
Fix STRESS_LCL_FLDS for ARM
The code in lvaStressLclFldCB to force alignment for ARM was
using the ADDR node, not the LCL_VAR node. For LONG vars, this meant
computing an incorrect offset into the morphed BLK type local
(4 instead of 8).
Partially fixes #14862
Bruce Forstall [Sat, 18 Nov 2017 00:48:56 +0000 (16:48 -0800)]
Fix RyuJIT/arm32 GS cookie check before JMP call
The GS cookie check was using r2/r3 registers, after they had been
reloaded as outgoing argument registers for the JMP call, thus
trashing them. Change the temp regs used to r12/lr, the only
non-argument, non-callee-saved registers available on arm32.
Partially fixes #14862
Karthik Rajasekaran [Fri, 17 Nov 2017 23:26:52 +0000 (15:26 -0800)]
Remove deprecated Copy Task (#15050)
Bruce Forstall [Fri, 17 Nov 2017 23:15:29 +0000 (15:15 -0800)]
Fix GenTree definition for GT_BITCAST
Nothing should be defined as GenTreeUnOp; use GenTreeOp instead.
Bruce Forstall [Fri, 17 Nov 2017 23:19:15 +0000 (15:19 -0800)]
Fix RyuJIT/arm32 GT_MUL_LONG node bashing
For RyuJIT/arm32, during decomposition we can bash GT_MUL to
GT_MUL_LONG, which changes its type from GenTreeOp to
GenTreeMultiRegOp. When we do this, we need to initialize
the additional fields in GenTreeMultiRegOp. If we don't,
we get asserts in JitDumps, and presumably other bad things
happen.
Chris Sienkiewicz [Fri, 17 Nov 2017 21:55:43 +0000 (13:55 -0800)]
Enable FEATURE_DATATARGET4 for Unix Arm builds (#15060)
David Mason [Fri, 17 Nov 2017 19:07:31 +0000 (11:07 -0800)]
fix for il to native mapping etw events (#15038)
After investigation the failures look unrelated to my changes. Thanks Jan and Noah.
Fei Peng [Fri, 17 Nov 2017 17:42:29 +0000 (09:42 -0800)]
Generic hardware intrinsics throw exception for non-numeric types (#15068)
Sergey Andreenko [Fri, 17 Nov 2017 02:48:18 +0000 (18:48 -0800)]
Do not check stmts after the tail call candidate if the optimization has been aborted already. (#15065)
Fix #15056
Bruce Forstall [Fri, 17 Nov 2017 01:09:18 +0000 (17:09 -0800)]
Merge pull request #15066 from BruceForstall/CleanUpGroovy2
Fix two typos in trigger phrases
Bruce Forstall [Fri, 17 Nov 2017 00:58:33 +0000 (16:58 -0800)]
Fix two typos in trigger phrases
Bruce Forstall [Thu, 16 Nov 2017 23:20:57 +0000 (15:20 -0800)]
Clean up netci.groovy (#15030)
* Clean up netci.groovy
1. Don't repeat entire list of JIT stress and R2R scenarios over and over;
use functions to check for scenario groups.
2. Merge handling of R2R baseline and stress scenarios.
3. Add function to determine if a scenario is a JIT stress scenario.
4. Fix JIT stress mode display name generator to handle CoreFx tests
as well, preserving the way they are currently displayed.
5. Fix R2R display name generator to handle baseline R2R scenario.
6. Fix bug where x86 R2R baseline job wasn't created.
7. Fix bugs where triggering some jobs, such as R2R jobs, would trigger lots
of other jobs with insufficient trigger strings. Thus, more trigger strings
now have architecture + scenario in them. E.g., "Innerloop" jobs now much
be triggered using a phrase containing "Innerloop".
8. Simplify code that creates builds, and test run commands.
9. Fix mis-casing of COMPlus_JITMinOpts in R2R stress list.
10. Expand list of valid ARM Windows scenarios to match total list of
scenarios, but with some scenarios commented out. Add the
jitstress2 + jitstressregs to the acceptable list. Add note about the
many scenarios in this list that are not in the full scenario list. Add
function to determine if a scenario is in this list.
11. Support crossgen of frameworks using altjit
12. Don't support 'r2r' scenario on arm/armlb/arm64 Windows.
Sergey Andreenko [Thu, 16 Nov 2017 23:09:19 +0000 (15:09 -0800)]
fix format (#15064)
Brian Sullivan [Thu, 16 Nov 2017 22:52:41 +0000 (14:52 -0800)]
Merge pull request #15063 from dotnet-bot/from-tfs
Merge changes from TFS
dotnet-bot [Thu, 16 Nov 2017 21:17:49 +0000 (13:17 -0800)]
Fix desktop build breaks.
[tfs-changeset: 1681307]
Sergey Andreenko [Thu, 16 Nov 2017 18:38:46 +0000 (10:38 -0800)]
Fix 14455: _opt_relrotarg_valref test failure on amd64. (#15032)
* fix the issue
Do not zero-initialize temps, that were created by jit and do not have GC refs.
The confusion was that `varDsc->lvIsTemp` means `short live` variable, when we wanted to ask is it IL temp or not.
* add a non-stress repro.
Sergey Andreenko [Thu, 16 Nov 2017 04:36:41 +0000 (20:36 -0800)]
don't use Compiler:: if we are currently in this namescape. (#15045)
I was confused that we were outside of Compiler::
Jonathan Dickinson [Thu, 16 Nov 2017 02:47:00 +0000 (18:47 -0800)]
HashCode based on xxHash32 (#14863)
* HashCode based on xxHash32
Works by maintaining the xxHash32 state variables (v1 -> v4, length) as well as a queue of values that fall outside of the block size (16 bytes/4 ints). The seed is initialized to random bytes.
Further details, unit tests and history: https://github.com/dotnet/corefx/pull/25013
Ivan Cronyn [Thu, 16 Nov 2017 02:37:22 +0000 (02:37 +0000)]
Added EmitCalli overload (#15040)
mikedn [Wed, 15 Nov 2017 23:14:22 +0000 (01:14 +0200)]
Improve SSA dominator computation memory usage (#14965)
* Improve SSA DF computation memory usage
DF(b) can be stored in a vector instead of a hashtable (set). Nothing needs a O(1) membership test, the duplicates that may be generated during DF construction can be easily avoided by observing that:
* each block in the graph is processed exactly once
* during processing the block is added to the relevant DF vectors, at the end of each vector. If the same DF vector is encountered multiple times then checking if the block is already a member is trivial.
* Use the same block BitVec for topo sort and IDom
* Add BitVecOps::TryAddElemD
Makes the code more readable and avoids the duplicated IsShort test that a separate IsMember/AddElemD may generate.
* Improve SSA IDF computation memory usage
Like DF(b), IDF(b) can be stored in a vector if duplicates are avoided. This can be done by using a BitVector like TopologicalSort and ComputeImmediateDom already do. It's cheaper than using a hashtable (even though it requires a "clear" for every block that has a frontier).
Also, storing IDF(b) into a vector makes it easier to track newly added blocks - they're at the end of the vector. Using a separate "delta" set is no longer needed.
Victor "Nate" Graf [Wed, 15 Nov 2017 22:28:57 +0000 (14:28 -0800)]
change labels to use new Ubuntu machine pool (#15043)
JC Aguilera [Wed, 15 Nov 2017 22:04:21 +0000 (14:04 -0800)]
Merge pull request #15031 from dotnet-maestro-bot/master-UpdateDependencies
Update BuildTools, CoreClr, CoreFx, PgoData to prerelease-02215-01, preview1-25915-02, preview1-25915-02, master-
20171115-1118, respectively (master)
Bruce Forstall [Wed, 15 Nov 2017 21:32:04 +0000 (13:32 -0800)]
Merge pull request #15039 from fiigii/fix
Fix #15035
Victor "Nate" Graf [Wed, 15 Nov 2017 21:29:47 +0000 (13:29 -0800)]
Fire tracepoints for methods with no template (#14987)
Ahson Khan [Wed, 15 Nov 2017 21:25:01 +0000 (13:25 -0800)]
Adding null check for implicit cast from array/arraysegment to Span (#15044)
Sean Gillespie [Wed, 15 Nov 2017 21:18:42 +0000 (13:18 -0800)]
Re-enable Standalone GC job, running daily (#15015)
* Re-enable Standalone GC job, running daily
* osGroup is already defined
* Fix failed assertion
dotnet-maestro-bot [Wed, 15 Nov 2017 19:37:53 +0000 (11:37 -0800)]
Update BuildTools, CoreClr, CoreFx, PgoData to prerelease-02215-01, preview1-25915-02, preview1-25915-02, master-
20171115-1118, respectively
Sergey Andreenko [Wed, 15 Nov 2017 18:52:27 +0000 (10:52 -0800)]
Delete move to return spill in the implicit tail call in the inlinee with several returns. (#14945)
* add fgNeedReturnSpillTemp
* fix the issue
* add the repro without stress mode
Fei Peng [Wed, 15 Nov 2017 09:22:59 +0000 (01:22 -0800)]
Fix #15035
Zhukov Maxim [Wed, 15 Nov 2017 02:30:43 +0000 (05:30 +0300)]
Remove out-of-use method and properties from appdomain (#15029)
Not supported on CoreCLR appdomain's method and properties were removed
#15001
Tarek Mahmoud Sayed [Wed, 15 Nov 2017 01:45:08 +0000 (17:45 -0800)]
Enable Globalization Invariant mode using Environment Variable (#15024)
* Enable Globalization Invariant mode using Environment Variable
* Prefix the environment variable name with DOTNET_
* Address the feedback
dotnet-maestro-bot [Wed, 15 Nov 2017 00:46:49 +0000 (16:46 -0800)]
Update BuildTools, CoreClr, CoreFx, PgoData to prerelease-02214-03, preview1-25914-01, preview1-25913-03, master-
20171113-1530, respectively (#15007)
Sergey Andreenko [Wed, 15 Nov 2017 00:30:52 +0000 (16:30 -0800)]
move fgFixupStructReturn (#14966)
It was done twice during the tail call optimization and in the args morphing. The problem is if tail call optimization was aborted it was not clear was `fgFixupStructReturn` called or not.
Andy Ayers [Fri, 10 Nov 2017 01:07:12 +0000 (17:07 -0800)]
JIT: look through GT_RET_EXPR when forming inline candidates
If an inline candidate has args that come from calls that are inline
candidates, the arg trees for the candidate may be GT_RET_EXPRs. Since
the jit inlines in preorder, any arg inlines will have been resolved
by the time we get to the candidate. So, the jit can look back through
the GT_RET_EXPR to get a better handle on the actual arg tree.
Doing this has several small benefits:
* It short-circuits parts of the subsequent GT_RET_EXPR update and so
saves a little bit of throughput.
* It potentially allows for more streamlined arg passing since the actual
node side effects may be less constraining than the placeholder effects on
the GT_RET_EXPR (which must be "worst case").
* It may unblock inlines as actual arg values can be seen when evaluating
the candidate for profitability.
During testing I found cases where looking at the actual arg seemed to
degrade information. This turned out to be a misuse of `argHasLdargaOp`
to indicate that a caller-supplied argument was potentially locally
aliased.
This misuse was blocking type propagation when the actual arg tree was seen to
be an aliasable local reference instead of the formerly opaque GT_RET_EXPR.
To fix this, I split out the aliased arg case with a different flag. All
that the jit needs to ensure in the aliased case is that it does not directly
substitute the arg; the arg must be evaluated at the point of the call. The
type of the actual can safely propagate to the arg as long as the arg itself
is not modifiable.
Added a utility for walking back through GT_RET_EXPRs and updated the
other case where the jit was doing this to use the utility as well.
Closes #14174.
Carol Eidt [Tue, 14 Nov 2017 22:39:05 +0000 (14:39 -0800)]
Merge pull request #15014 from fiigii/vexencoding
Change VEX-encoding selection to avoid AVX-SSE transition penalties
Jarret Shook [Tue, 14 Nov 2017 22:01:34 +0000 (14:01 -0800)]
Merge pull request #15026 from jashook/re_add_arm64_stress
Add jitstress arm64 jobs again
Carol Eidt [Tue, 14 Nov 2017 21:59:31 +0000 (13:59 -0800)]
Merge pull request #14914 from CarolEidt/Fix14665
ARMARCH: no cascaded adds in addr mode
Tomas Weinfurt [Tue, 14 Nov 2017 21:44:25 +0000 (13:44 -0800)]
small changes to get coreclr building on FreeBSD again (#14964)
jashook [Tue, 14 Nov 2017 21:22:48 +0000 (13:22 -0800)]
Add jitstress arm64 jobs again
Bruce Forstall [Tue, 14 Nov 2017 20:59:01 +0000 (12:59 -0800)]
Merge pull request #15023 from BruceForstall/FixJitOpts
Fix RunTest.cmd argument parsing
Fei Peng [Tue, 14 Nov 2017 05:42:57 +0000 (21:42 -0800)]
Change VEX-encoding selection to avoid AVX-SSE transition penalties
Bruce Forstall [Tue, 14 Nov 2017 18:23:00 +0000 (10:23 -0800)]
Fix RunTest.cmd argument parsing
The "jitminopts" and "jitforcerelocs" options were eating whatever
option followed them.
Bruce Forstall [Tue, 14 Nov 2017 17:46:09 +0000 (09:46 -0800)]
Merge pull request #15017 from BruceForstall/DisableArm64Tests
Disable arm64 tests that fail in Debug CI runs