summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-05-04Fix for ARM secure delegate non-standard register argBruce Forstall2-9/+34
For ARM, doing a secure delegate call requires adding a custom calling convention argument R4 as the address of the secure delegate invoke indirection cell. This is done using the fgMorphArgs nonStandardArgs mechanism, and the argument is added at the end. For calls with 4 or more register arguments, this didn't work: we would initially set the non-standard arg as a non-register argument, and the nonStandardArgs check didn't consider converting an argument from a stack argument back to a register argument. The fix allows nonStandardArgs to be either stack or register arguments, no matter what their place in the argument list would imply. Fixes #17738
2018-05-04Update CoreClr, CoreFx to rtm-26504-02, rtm-26504-02, respectively (#17883)dotnet-maestro-bot2-6/+6
2018-05-04Update BuildTools, CoreClr, CoreFx to rc1-02803-01, rtm-26502-03, ↵dotnet-maestro-bot3-9/+9
rtm-26502-02, respectively (#17874)
2018-05-03Merge pull request #17875 from ↵Ricardo Arenas1-4/+2
riarenas/riarenas/revert-private-intermediate-containers Revert "Make blobfeed containers private. (#17792)"
2018-05-03Revert "Make blobfeed containers private. (#17792)"Ricardo Arenas1-4/+2
This reverts commit 4950b038c84c223ddd9fc198dcf5722d46e21552.
2018-05-02Update BuildTools, PgoData to rc1-02801-02, release-20180502-0048, ↵dotnet-maestro-bot2-5/+5
respectively (#17860)
2018-05-02Make blobfeed containers private. (#17792)Ricardo Arenas1-2/+4
2018-05-01Add runtimeconfig.json support for tiered compilation (#17839)Noah Falk3-138/+52
2018-05-01Update PgoData to release-20180501-0050 (#17849)dotnet-maestro-bot1-2/+2
2018-05-01Merge pull request #17846 from weshaggard/FixSourceBuildWes Haggard1-5/+5
Switch source build property to DotNetBuildFromSource
2018-05-01Disable GC Coop mode switching during fatal error handling during GC ↵Sung Yoon Whang3-5/+69
exception (#17710) (#17844)
2018-04-30Add better portable PDB caching to System.Diagnostics.StackTrace. (#17804) ↵Mike McLaughlin4-83/+71
(#17842) Add portable PDB caching to StackTrace. This is the mscorlib side of the change.
2018-04-30Switch source build property to DotNetBuildFromSourceWes Haggard1-5/+5
Detect source-build via DotNetBuildFromSource instead of DotNetBuildOffline which is set for the tarball build.
2018-04-30Move from rc1 to rtm prerelease labelRuss Keldorph1-1/+1
2018-04-30Initialize Compiler::Vector128/256ULongHandle in compInitCarol Eidt1-0/+2
2018-04-30Merge pull request #17779 from weshaggard/RemoveAlpineBuildsWes Haggard8-27/+14
[release/2.1] Remove Alpine 3.6 builds
2018-04-30Update ARM32 Cross Build Docker Image (#17819) (#17834)Brian Robbins2-2/+2
2018-04-30Update BuildTools, CoreClr, CoreFx, PgoData to rc1-02726-01, rc1-26423-02, ↵dotnet-maestro-bot3-11/+11
rc1-26423-06, release-20180430-0045, respectively (#17696)
2018-04-30Don't optimize away Task code needed for debugger (#17786)Jan Kotas1-0/+10
This prevents the IL linker from optimizing away some properties/methods related to tasks that are used by a debugger but are not referenced anywhere else in coreclr. This specifically fixes async callstack frames for the xplat C# debugger.
2018-04-30Fix Number.ParseNumber to not assume '\0' at the end of a span (#17808) (#17820)Stephen Toub1-26/+35
* Fix Number.ParseNumber to not assume '\0' at the end of a span This routine was written for parsing strings, which are implicitly null-terminated, and it doesn't factor in string length but instead uses tricks to exit loops when the next character is null. Now that the routine is also used for spans, this is very problematic, as spans need not be null terminated, and generally aren't when they represent slices, and expecting a null termination like this can result in walking off the end of valid memory. I would like to see all of this code rewritten to use span. In the interim, though, as a short-term fix I've changed all dereferences of the current position to compare against the length of the span (or, rather, a pointer to the end), and pretend that a null terminator was found if we've hit the end. * Address PR feedback
2018-04-25Remove Alpine 3.6 buildsWes Haggard8-27/+14
The alpine 3.6 builds have been replaced with the more generic linux-musl builds so removing them.
2018-04-23Make intra-build containers private (#17682)Matt Mitchell1-3/+3
Make intra-build containers private
2018-04-21Use volatile load to read brick table entries (#17718)Jan Kotas2-15/+9
Fixes #17716
2018-04-21disable DevDiv_255294 in stress modes. (#17618)Sergey Andreenko1-0/+2
2018-04-20Preserve pinned flag in {ReadOnly}Memory<T>.Slice (dotnet/corefx#29246) ↵Ahson Khan2-7/+19
(#17712) (#17714) * Preserve pinned flag in {ReadOnly}Memory<T>.Slice * Address PR feedback. Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
2018-04-20Port two changes from CoreFX missed by mirror: (#17713)Dan Moseley2-10/+42
commit b4d701a72c20b695715371a99b48473053b63250 Author: Ahson Khan <ahkha@microsoft.com> Date: Wed Apr 11 13:43:36 2018 -0700 Add CreateFromPinnedArray to System.Memory ref and add tests (#28992) * Fixing bug in Memory.Pin and adding API to uapaot baseline commit 76e01040fcfdb1c652ef1bf4e8e123c7db4e1be8 Author: Ahson Khan <ahkha@microsoft.com> Date: Mon Apr 16 01:54:54 2018 -0700 Update xml comment for {ReadOnly}Memory.Pin method (#29137)
2018-04-20fix DevDiv_601045 assert (#17685)Sergey Andreenko1-1/+3
2018-04-19Merge pull request #17489 from dotnet-maestro-bot/release/2.1-UpdateDependenciesWes Haggard3-11/+11
Update BuildTools, CoreClr, CoreFx, PgoData to rc1-02719-01, rc1-26419-03, rc1-26419-03, release-20180419-0038, respectively (release/2.1)
2018-04-19Merge pull request #17675 from weshaggard/addlinuxmusl21Wes Haggard3-11/+36
[release/2.1] Add linux-musl build leg
2018-04-19Fix reading Time zone rules using Julian days (#17672)Tarek Mahmoud Sayed2-62/+138
2018-04-19Remove debug/checked builds (#17663)Matt Mitchell1-120/+0
The debug/checked builds don't publish and aren't submitted for testing currently. To reduce resource usage during the build, do not build these pipelines for now.
2018-04-19Update BuildTools, CoreClr, CoreFx, PgoData to rc1-02719-01, rc1-26419-03, ↵dotnet-maestro-bot3-11/+11
rc1-26419-03, release-20180419-0038, respectively
2018-04-19Fix OutputRID for linux-musl official buildWes Haggard1-1/+1
Need to include the `-x64` in the output rid.
2018-04-19Add linux-musl build legWes Haggard3-11/+36
2018-04-18Skip container creation (#17655)Matt Mitchell1-18/+21
Skip container creation if not in flatcontainer mode Container creation isn't required and would be incorrect if the ExpectedFeedUrl's account name didn't match AccountName
2018-04-18Merge pull request #17615 from CarolEidt/Port17575To2.1Carol Eidt1-8/+0
[Arm64] Disable SIMD in crossgen (added as part of #14633)
2018-04-18Merge pull request #17616 from CarolEidt/Port17560To2.1Carol Eidt1-2/+2
Fix extra register-dependency on mem-form cvtsd/s2ss
2018-04-17Fix GC tests. (#17594) (#17613)Sergey Andreenko7-42/+102
* Fix dlbigleak * cleanup dlstack * Fix doublinknoleak * Fix doublinkstay * Fix dlcollect * Fix doublinkgen * Fix dlbigleakthd
2018-04-17Fix extra register-dependency on mem-form cvtsd/s2ssCarol Eidt1-2/+2
2018-04-17[Arm64] Disable SIMD in crossgen (added as part of #14633)Carol Eidt1-8/+0
2018-04-16Merge pull request #17599 from BruceForstall/CleanupUbunuArmBuildMachine_2.1Bruce Forstall1-0/+11
Cleanup ubuntu arm build machine 2.1
2018-04-16Merge pull request #17586 from RussKeldorph/21lastRuss Keldorph213-3263/+5378
Merge master into release/2.1
2018-04-16Clean up Ubuntu arm build machinesBruce Forstall1-0/+11
2018-04-16Set prerelease label to rc1Russ Keldorph1-1/+1
2018-04-16Merge commit 'master' into release/2.1Russ Keldorph213-3262/+5377
2018-04-15Update CoreClr, CoreFx, PgoData to preview3-26416-01, preview3-26416-01, ↵dotnet-maestro-bot2-8/+8
master-20180415-0051, respectively (#17540)
2018-04-15[Arm64] Add full barrier after locking operations (#17567)Steve MacLean1-8/+7
2018-04-14Merge pull request #17569 from dotnet/dev/unix_test_workflowBruce Forstall1-9/+1
Don't use runtesttilstable script for Ubuntu arm jobs
2018-04-14Avoid creating illegal byref pointers (#17524)Bruce Forstall2-1/+105
Byref pointers need to point within their "host" object -- thus the alternate name "interior pointers". If the JIT creates and reports a pointer as a "byref", but it points outside the host object, and a GC occurs that moves the host object, the byref pointer will not be updated. If a subsequent calculation puts the byref "back" into the host object, it will actually be pointing to garbage, since the host object has moved. This occurred on ARM with array index calculations, in particular because ARM doesn't have a single-instruction "base + scale*index + offset" addressing mode. Thus, we were generating, for the jaggedarr_cs_do test case, `ProcessJagged3DArray()` function: ``` // r0 = array object, r6 = computed index offset. We mark r4 as a byref. add r4, r0, r6 // r4 - 32 is the offset of the object we care about. Then we load the array element. // In this case, the loaded element is a gcref, so r4 becomes a gcref. ldr r4, [r4-32] ``` We get this math because the user code uses `a[i - 10]`, which is essentially `a + (i - 10) * 4 + 8` for element size 4. This is optimized to `a + i * 4 - 32`. In the above code, `r6` is `i * 4`. In this case, after the first instruction, `r4` can point beyond the array. If a GC happens, `r4` isn't updated, and the second instruction loads garbage. There are several fixes: 1. Change array morphing in `fgMorphArrayIndex()` to rearrange the array index IR node creation to only create a byref pointer that is precise; don't create "intermediate" byref pointers that don't represent the actual array element address being computed. The tree matching code that annotates the generated tree with field sequences needs to be updated to match the new form. 2. Change `fgMoveOpsLeft()` to prevent the left-weighted reassociation optimization `[byref]+ (ref, [int]+ (int, int)) => [byref]+ ([byref]+ (ref, int), int)`. This optimization creates "incorrect" byrefs that don't necessarily point within the host object. 3. Add an additional condition to the `Fold "((x+icon1)+icon2) to (x+(icon1+icon2))"` morph optimization to prevent merging of constant TYP_REF nodes, which now were being recognized due to different tree shapes. This was probably always a problem, but the particular tree shape wasn't seen before. These fixes are all-platform. However, to reduce risk at this point, the are enabled for ARM only, under the `FEATURE_PREVENT_BAD_BYREFS` `#ifdef`. Fixes #17517. There are many, many diffs. For ARM32 ngen-based desktop asm diffs, it is a 0.30% improvement across all framework assemblies. A lot of the diffs seem to be because we CSE the entire array address offset expression, not just the index expression.
2018-04-14Don't use tests/runtesttilstable.sh for Ubuntu arm jobsEgor Chesakov1-9/+1