platform/upstream/coreclr.git
6 years agoMerge pull request #18805 from CarolEidt/Fix18746
Carol Eidt [Tue, 10 Jul 2018 20:33:02 +0000 (13:33 -0700)]
Merge pull request #18805 from CarolEidt/Fix18746

Don't change PUTARG_REG spill type on arm64

6 years agoFix two issues in Marshal.SecureStringToBSTR (#18851)
Stephen Toub [Tue, 10 Jul 2018 20:02:06 +0000 (16:02 -0400)]
Fix two issues in Marshal.SecureStringToBSTR (#18851)

1. It wasn't synchronized, even though other operations on SecureString are in order to avoid concurrency problems leading to memory corruption issues (and it's synchronized on netfx).

2. It wasn't throwing an ObjectDisposedException if the instance was disposed.

6 years agoMerge pull request #18812 from briansull/fix_610014
Brian Sullivan [Tue, 10 Jul 2018 20:01:41 +0000 (13:01 -0700)]
Merge pull request #18812 from briansull/fix_610014

Fix 610014

6 years agoMerge pull request #18653 from acmyu/build
Amy [Tue, 10 Jul 2018 18:10:08 +0000 (11:10 -0700)]
Merge pull request #18653 from acmyu/build

R2RDump - Build integration

6 years agoRegenerating the x86 HWIntrinsic tests to cover struct field scenarios
Tanner Gooding [Tue, 10 Jul 2018 01:42:01 +0000 (18:42 -0700)]
Regenerating the x86 HWIntrinsic tests to cover struct field scenarios

6 years agoUpdating the x86 HWIntrinsic test templates to test struct field scenarios
Tanner Gooding [Tue, 10 Jul 2018 01:41:28 +0000 (18:41 -0700)]
Updating the x86 HWIntrinsic test templates to test struct field scenarios

6 years agoMove BinaryReader to shared CoreLib partition (#18845)
Jan Kotas [Tue, 10 Jul 2018 11:13:04 +0000 (04:13 -0700)]
Move BinaryReader to shared CoreLib partition (#18845)

6 years agoExclude failing CoreFx test (#18844)
Amy [Tue, 10 Jul 2018 08:49:54 +0000 (01:49 -0700)]
Exclude failing CoreFx test (#18844)

6 years agoUpdated fix for VSO 610014
Brian Sullivan [Fri, 6 Jul 2018 21:33:36 +0000 (14:33 -0700)]
Updated fix for VSO 610014

6 years agoFixing a call to emitIns_SIMD_R_R_AR_R to pass arguments in the correct order
Tanner Gooding [Sat, 7 Jul 2018 20:02:32 +0000 (13:02 -0700)]
Fixing a call to emitIns_SIMD_R_R_AR_R to pass arguments in the correct order

6 years agoExclude failing CoreFx test
Amy Yu [Mon, 9 Jul 2018 23:36:39 +0000 (16:36 -0700)]
Exclude failing CoreFx test

6 years agoUpdating InstructionSet_BMI1/2 to be controlled by the COMPlus_EnableAVX flag and...
Tanner Gooding [Sat, 7 Jul 2018 14:11:51 +0000 (07:11 -0700)]
Updating InstructionSet_BMI1/2 to be controlled by the COMPlus_EnableAVX flag and fixing formatting issues

6 years agoAdding tests for the ParallelBitDeposit and ParallelBitExtract Bmi2 HWIntrinsics
Tanner Gooding [Fri, 6 Jul 2018 16:29:33 +0000 (09:29 -0700)]
Adding tests for the ParallelBitDeposit and ParallelBitExtract Bmi2 HWIntrinsics

6 years agoImplementing the ParallelBitDeposit and ParallelBitExtract Bmi2 HWIntrinsics
Tanner Gooding [Fri, 6 Jul 2018 15:31:10 +0000 (08:31 -0700)]
Implementing the ParallelBitDeposit and ParallelBitExtract Bmi2 HWIntrinsics

6 years agoAdding tests for the AndNot, ExtractLowestSetBit, GetMaskUpToLowestSetBit, and ResetL...
Tanner Gooding [Fri, 6 Jul 2018 06:36:30 +0000 (23:36 -0700)]
Adding tests for the AndNot, ExtractLowestSetBit, GetMaskUpToLowestSetBit, and ResetLowestSetBit x86 HWIntrinsics

6 years agoImplementing the AndNot, ExtractLowestSetBit, GetMaskUpToLowestSetBit, and ResetLowes...
Tanner Gooding [Fri, 6 Jul 2018 06:34:58 +0000 (23:34 -0700)]
Implementing the AndNot, ExtractLowestSetBit, GetMaskUpToLowestSetBit, and ResetLowestSetBit x86 HWIntrinsics

6 years agoAdding tests for the x86 TrailingZeroCount HWintrinsic
Tanner Gooding [Wed, 4 Jul 2018 23:32:55 +0000 (16:32 -0700)]
Adding tests for the x86 TrailingZeroCount HWintrinsic

6 years agoImplementing the x86 TrailingZeroCount HWIntrinsic
Tanner Gooding [Wed, 4 Jul 2018 23:32:27 +0000 (16:32 -0700)]
Implementing the x86 TrailingZeroCount HWIntrinsic

6 years agoRenaming ScalarUnOpTest to ScalarSimdUnOpTest
Tanner Gooding [Wed, 4 Jul 2018 14:55:28 +0000 (07:55 -0700)]
Renaming ScalarUnOpTest to ScalarSimdUnOpTest

6 years agoFix serialization type in NotFiniteNumberException (#18833)
Viktor Hofer [Mon, 9 Jul 2018 21:41:07 +0000 (23:41 +0200)]
Fix serialization type in NotFiniteNumberException (#18833)

6 years agoFix test errors
Amy Yu [Tue, 3 Jul 2018 19:59:22 +0000 (12:59 -0700)]
Fix test errors

6 years agoUse BuildManagedTools argument instead of environment variable, removed unneeded...
Amy Yu [Tue, 3 Jul 2018 19:13:51 +0000 (12:13 -0700)]
Use BuildManagedTools argument instead of environment variable, removed unneeded flags

6 years agoAdd R2RDump to build.proj, running dotnet restore before target build
Amy Yu [Tue, 3 Jul 2018 00:45:00 +0000 (17:45 -0700)]
Add R2RDump to build.proj, running dotnet restore before target build

6 years agoCoreFX CI Unix Staging commit (#18750)
Andon Andonov [Mon, 9 Jul 2018 17:45:24 +0000 (10:45 -0700)]
CoreFX CI Unix Staging commit (#18750)

* Modify netci.groovy

* Add script exit codes

* Ad PR Triggers for Ubuntu and OSX10.12

* Remove release PR triggers

* Rename arch

Remove IsJitStressTestScenario assert

* Add correct asserts

* Reformat conditions and add triggers for Release/Checked/Debug

* Change %WORKSPACE% to \${WORKSPACE}

6 years agoFix a comment in the string.ToLower() method (#18832)
HumanEquivalentUnit [Mon, 9 Jul 2018 15:22:38 +0000 (16:22 +0100)]
Fix a comment in the string.ToLower() method (#18832)

Line 307 is lowercasing the current character, but the comment says "store the current character, upper-cased", fixed comment to say "store the current character, lower-cased".
(Equivalent and correct "upper-cased" comment is on line 252)

6 years agoUndo unnecessary BinaryReader::ReadOneChar/InternalReadOneChar split (#18830)
Jan Kotas [Mon, 9 Jul 2018 13:50:13 +0000 (06:50 -0700)]
Undo unnecessary BinaryReader::ReadOneChar/InternalReadOneChar split (#18830)

This method had misleading comment that this split is required for performance. It was the case when
InternalReadOneChar was called from other places in CoreLib. These calls do not exist anymore.

6 years agoMoved ManualResetEventSlim to shared (#18799)
Anirudh Agnihotry [Mon, 9 Jul 2018 09:21:55 +0000 (02:21 -0700)]
Moved ManualResetEventSlim to shared (#18799)

* Moved ManualResetEventSlim to shared

* covert System.int to System.Int32

6 years agoCorrect AssemblyLoadContext comment (#18809)
Rich Lander [Sun, 8 Jul 2018 21:56:41 +0000 (14:56 -0700)]
Correct AssemblyLoadContext comment (#18809)

6 years agoLastIndexOf corner case fix when span is empty (#18826)
Viktor Hofer [Sun, 8 Jul 2018 17:41:40 +0000 (19:41 +0200)]
LastIndexOf corner case fix when span is empty (#18826)

6 years agoFix Span LastIndexOf empty value handling
Viktor Hofer [Sun, 8 Jul 2018 13:41:26 +0000 (15:41 +0200)]
Fix Span LastIndexOf empty value handling

6 years agoTargetFrameworkName property initialized (#18814)
Anirudh Agnihotry [Sat, 7 Jul 2018 01:47:46 +0000 (18:47 -0700)]
TargetFrameworkName property initialized (#18814)

6 years agoImprove DateTime{Offset}.ParseExact performance for "O"/"o" roundtrip format (#18800)
Stephen Toub [Fri, 6 Jul 2018 16:12:54 +0000 (12:12 -0400)]
Improve DateTime{Offset}.ParseExact performance for "O"/"o" roundtrip format (#18800)

Ports the code used by Utf8Parser, modified to support things Utf8Parser doesn't but DateTime{Offset{.ParseExact do, such as single-digit offset hours.

6 years agoMerge pull request #18795 from BruceForstall/RemoveArmemJobs
Bruce Forstall [Fri, 6 Jul 2018 16:00:49 +0000 (09:00 -0700)]
Merge pull request #18795 from BruceForstall/RemoveArmemJobs

Remove Ubuntu/Ubuntu16.04 emulator CI jobs

6 years agoDon't change PUTARG_REG type on arm64
Carol Eidt [Fri, 6 Jul 2018 14:00:03 +0000 (07:00 -0700)]
Don't change PUTARG_REG type on arm64

Fix #18746

6 years ago[ARM] Mention a clang-5.0 issue in the documentation (#18803)
nkaretnikov2 [Fri, 6 Jul 2018 12:54:28 +0000 (15:54 +0300)]
[ARM] Mention a clang-5.0 issue in the documentation (#18803)

6 years agoMerge pull request #18775 from briansull/add-noway-assert
Brian Sullivan [Thu, 5 Jul 2018 23:03:18 +0000 (16:03 -0700)]
Merge pull request #18775 from briansull/add-noway-assert

Add noway asserts in gtNewZeroConNode and gtNewOneConNode

6 years agoRemove Ubuntu/Ubuntu16.04 emulator CI jobs
Bruce Forstall [Thu, 5 Jul 2018 22:07:14 +0000 (15:07 -0700)]
Remove Ubuntu/Ubuntu16.04 emulator CI jobs

Now that we have Ubuntu arm hardware in the lab, these are unnecessary.

The jobs have also been failing for months.

6 years agoUpdate certain Marshal APIs to match exception thrown on .NET Framework (#18791)
Aaron Robinson [Thu, 5 Jul 2018 21:29:27 +0000 (14:29 -0700)]
Update certain Marshal APIs to match exception thrown on .NET Framework (#18791)

Update certain Marshal APIs to match exception thrown on Desktop

6 years agoAdded noway asserts in gtNewZeroConNode and gtNewOneConNode
Brian Sullivan [Wed, 20 Jun 2018 23:51:15 +0000 (16:51 -0700)]
Added noway asserts in gtNewZeroConNode and gtNewOneConNode
Added source code change that was needed to service 4.7.2 in fgMorphRecursiveFastTailCallIntoLoop
Set zero/one to null after noway_assert

6 years agoMerge pull request #18793 from BruceForstall/UpdateLibUnwindIssue
Bruce Forstall [Thu, 5 Jul 2018 17:51:42 +0000 (10:51 -0700)]
Merge pull request #18793 from BruceForstall/UpdateLibUnwindIssue

Update Linux ARM libunwind instructions

6 years agoUpdate Linux ARM libunwind instructions
Bruce Forstall [Thu, 5 Jul 2018 17:50:06 +0000 (10:50 -0700)]
Update Linux ARM libunwind instructions

6 years agoEnable genFnCalleeRegArgs for Arm64 Varargs (#18714)
Jarret Shook [Thu, 5 Jul 2018 16:46:51 +0000 (09:46 -0700)]
Enable genFnCalleeRegArgs for Arm64 Varargs (#18714)

* Enable genFnCalleeRegArgs for Arm64 Varargs

Before the method would early out and incorrectly expect the usage
of all incoming arguments to be their homed stack slots. It is
instead possible for incoming arguments to be homed to different
integer registers.

The change will mangle the float types for vararg cases in the same
way that is done during lvaInitUserArgs and fgMorphArgs.

* Apply format patch

* Account for softfp case

* Address feedback

* Apply format patch

* Use standard function header for mangleVarArgsType

* Remove confusing comment

6 years agoDelete dead code (#18783)
Jan Kotas [Thu, 5 Jul 2018 06:04:02 +0000 (08:04 +0200)]
Delete dead code (#18783)

- Leftover from unobserved exception desktop quirk
- Unnecessary calls to AppDomain.IsFinalizingForUnload(). They were actually never required even with AppDomain support because of Environment.HasShutdownStarted returns true during AppDomain unload.

6 years agoImprove DateTime{Offset}.ParseExact{Multiple} performance for RFC1123 ("r") (#18771)
Stephen Toub [Thu, 5 Jul 2018 01:38:05 +0000 (21:38 -0400)]
Improve DateTime{Offset}.ParseExact{Multiple} performance for RFC1123 ("r") (#18771)

* Improve DateTime{Offset}.ParseExact{Multiple} performance for RFC1123 ("r")

Significantly improves the performance by porting and adapting the Utf8Parser code from corefx.  This optimizes for the (default) case of a DateTimeStyles.None; specifying any other style falls back to the normal parsing support, as that requires handling things such as arbitrary whitespace anywhere in the string.

* Address PR feedback

6 years agoRe-enable jit regression test DevDiv_590771 (#18724)
Andy Ayers [Wed, 4 Jul 2018 20:33:36 +0000 (13:33 -0700)]
Re-enable jit regression test DevDiv_590771 (#18724)

The issue the test was hitting was worked around in #18292.

Fixes #17967.

Also add GitHub_18522_8 to the arm/arm64 lists (from #18708).

6 years agoAdd LastIndexOf compareoptions overload (#18652)
Viktor Hofer [Wed, 4 Jul 2018 18:56:25 +0000 (20:56 +0200)]
Add LastIndexOf compareoptions overload (#18652)

* Add LastIndexOf compareoptions overload

6 years agoAdding tests for the byte overload of Ssse3.Shuffle
Tanner Gooding [Sun, 1 Jul 2018 15:06:46 +0000 (08:06 -0700)]
Adding tests for the byte overload of Ssse3.Shuffle

6 years agoAdding support for the `byte` overload of `Ssse3.Shuffle`
Tanner Gooding [Sun, 1 Jul 2018 15:01:49 +0000 (08:01 -0700)]
Adding support for the `byte` overload of `Ssse3.Shuffle`

6 years agoRemove mention of security transparency from message and comment (#18776)
Jan Kotas [Wed, 4 Jul 2018 09:19:38 +0000 (11:19 +0200)]
Remove mention of security transparency from message and comment (#18776)

6 years agocompGSReorderStackLayout is not supported when EnC is on (#18713)
Andrew Au [Wed, 4 Jul 2018 06:12:54 +0000 (23:12 -0700)]
compGSReorderStackLayout is not supported when EnC is on (#18713)

6 years agoUpdate CoreClr, CoreFx to preview1-26704-01, preview1-26704-01, respectively (#18773)
dotnet-maestro-bot [Wed, 4 Jul 2018 03:36:31 +0000 (20:36 -0700)]
Update CoreClr, CoreFx to preview1-26704-01, preview1-26704-01, respectively (#18773)

6 years agoDelete InternalsVisibleTo attributes from S.P.CoreLib (#18697)
Luqun Lou [Wed, 4 Jul 2018 01:30:33 +0000 (18:30 -0700)]
Delete InternalsVisibleTo attributes from S.P.CoreLib (#18697)

6 years agoMerge pull request #18504 from mikedn/comp-small
Bruce Forstall [Tue, 3 Jul 2018 22:53:28 +0000 (15:53 -0700)]
Merge pull request #18504 from mikedn/comp-small

Make Compiler and CodeGen objects smaller

6 years agoadd missing files to package properly on FreeBSD (#18764)
Tomas Weinfurt [Tue, 3 Jul 2018 21:00:40 +0000 (14:00 -0700)]
add missing files to package properly on FreeBSD (#18764)

6 years agoMerge pull request #18768 from CarolEidt/RemoveIsMultiReg
Carol Eidt [Tue, 3 Jul 2018 20:02:07 +0000 (13:02 -0700)]
Merge pull request #18768 from CarolEidt/RemoveIsMultiReg

Remove Interval::isMultiReg

6 years agoMerge pull request #18766 from CarolEidt/Fix18765
Carol Eidt [Tue, 3 Jul 2018 19:21:11 +0000 (12:21 -0700)]
Merge pull request #18766 from CarolEidt/Fix18765

Build uses for atomic ops

6 years agoMerge pull request #18716 from BruceForstall/RemoveTstJobsFromViews
Bruce Forstall [Tue, 3 Jul 2018 17:27:00 +0000 (10:27 -0700)]
Merge pull request #18716 from BruceForstall/RemoveTstJobsFromViews

Remove build-only and TST jobs from the Jenkins views

6 years agoUpdate CoreClr, PgoData to preview1-26703-04, master-20180703-0030, respectively...
dotnet-maestro-bot [Tue, 3 Jul 2018 17:20:00 +0000 (10:20 -0700)]
Update CoreClr, PgoData to preview1-26703-04, master-20180703-0030, respectively (#18761)

6 years agoRemove Interval::isMultiReg
Carol Eidt [Tue, 3 Jul 2018 16:46:04 +0000 (09:46 -0700)]
Remove Interval::isMultiReg

This is no longer used after #16517

6 years agoBuild uses for atomic ops
Carol Eidt [Tue, 3 Jul 2018 14:42:12 +0000 (07:42 -0700)]
Build uses for atomic ops

Fix #18765

6 years agoUse generic win-x86/win-x64 RIDs in stress_dependencies
Egor Chesakov [Tue, 3 Jul 2018 02:37:15 +0000 (19:37 -0700)]
Use generic win-x86/win-x64 RIDs in stress_dependencies

6 years agoAdd back most CreateInstance APIs to AppDomain and Activator (#18751)
Marco Rossignoli [Tue, 3 Jul 2018 04:38:33 +0000 (06:38 +0200)]
Add back most CreateInstance APIs to AppDomain and Activator (#18751)

* add ObjectHandle.cs

* add signature placeholder

* move CreateInstance from netfx

* move CreateInstanceFrom from netfx

* nit: visibility, text formatting

6 years agoUpdate CoreFX CI packages to NetcoreApp3 (#18760)
Andon Andonov [Tue, 3 Jul 2018 03:20:38 +0000 (20:20 -0700)]
Update CoreFX CI packages to NetcoreApp3 (#18760)

* Update to FX CI packages to NetcoreApp3

* Add Extra Dependencies

* Enable all tests fixed by change

6 years agoUpdating SSE_StaticCast and AVX_StaticCast to set the correct type on the returned...
Tanner Gooding [Sat, 30 Jun 2018 05:21:22 +0000 (22:21 -0700)]
Updating SSE_StaticCast and AVX_StaticCast to set the correct type on the returned node.

6 years agoFold away Sse.StaticCast and Avx.StaticCast in the importer
Tanner Gooding [Sun, 17 Jun 2018 15:58:20 +0000 (08:58 -0700)]
Fold away Sse.StaticCast and Avx.StaticCast in the importer

6 years agoAdding an Avx.StaticCast test (modified from the Sse.StaticCast test)
Tanner Gooding [Sun, 17 Jun 2018 15:57:51 +0000 (08:57 -0700)]
Adding an Avx.StaticCast test (modified from the Sse.StaticCast test)

6 years agoSuperPMI: add ability to exclude failing method contexts from replays (#18721)
Sergey Andreenko [Tue, 3 Jul 2018 00:32:59 +0000 (17:32 -0700)]
SuperPMI: add ability to exclude failing method contexts from replays (#18721)

* format spmi

* rename mchFile to mchFileName

* refactor ProcessChildStdOut

* add a stub to exclude methods

6 years agoSet the activation context for the CoreRun application to what is defined (#18728)
Aaron Robinson [Mon, 2 Jul 2018 23:21:59 +0000 (16:21 -0700)]
Set the activation context for the CoreRun application to what is defined (#18728)

in the target managed assembly. This allows RegFree COM scenarios and ensures
the intended app manifest is used for the 'exe' scenario.

6 years agoDebug registers cannot be copied in user mode (#18730)
Andrew Au [Mon, 2 Jul 2018 22:39:03 +0000 (15:39 -0700)]
Debug registers cannot be copied in user mode (#18730)

6 years agoDispatch Runtime Events to EventListener (#18649)
Brian Robbins [Mon, 2 Jul 2018 22:08:32 +0000 (15:08 -0700)]
Dispatch Runtime Events to EventListener (#18649)

6 years agoUpdate BuildTools, CoreClr, PgoData to preview1-03002-01, preview1-26702-04, master...
dotnet-maestro-bot [Mon, 2 Jul 2018 21:02:48 +0000 (14:02 -0700)]
Update BuildTools, CoreClr, PgoData to preview1-03002-01, preview1-26702-04, master-20180702-0047, respectively (#18731)

6 years agoMove RuntimeIDArg initialization (#18747)
Andon Andonov [Mon, 2 Jul 2018 20:54:58 +0000 (13:54 -0700)]
Move RuntimeIDArg initialization (#18747)

6 years agoFixing up the Sse41.Insert float HWIntrinsics
Tanner Gooding [Sat, 30 Jun 2018 21:58:14 +0000 (14:58 -0700)]
Fixing up the Sse41.Insert float HWIntrinsics

6 years agoreenable fixed arm64 altjit tests (#18722)
Sergey Andreenko [Mon, 2 Jul 2018 17:21:36 +0000 (10:21 -0700)]
reenable fixed arm64 altjit tests (#18722)

6 years agoAdd back DefinePInvokeMethod (#18742)
Atsushi Kanamori [Mon, 2 Jul 2018 17:11:33 +0000 (10:11 -0700)]
Add back DefinePInvokeMethod (#18742)

6 years agoAdding back the tests for Avx.MaskLoad
Tanner Gooding [Sat, 30 Jun 2018 19:12:32 +0000 (12:12 -0700)]
Adding back the tests for Avx.MaskLoad

6 years agoUpdating the Avx.Extract/Insert methods to throw PNSE when IsSupported is false
Tanner Gooding [Sat, 30 Jun 2018 19:10:40 +0000 (12:10 -0700)]
Updating the Avx.Extract/Insert methods to throw PNSE when IsSupported is false

a

6 years agoRemoving unnecessary `try/catch` blocks from the ExtractScalar and InsertScalar HWInt...
Tanner Gooding [Sat, 30 Jun 2018 18:28:47 +0000 (11:28 -0700)]
Removing unnecessary `try/catch` blocks from the ExtractScalar and InsertScalar HWIntrinsic test templates

6 years agoTabs vs. spaces (#18740)
dotnet-maestro-bot [Mon, 2 Jul 2018 09:32:47 +0000 (02:32 -0700)]
Tabs vs. spaces (#18740)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoFix some build breaks seen with the older VS we use to build with on desktop. (#18736)
Andy Ayers [Sun, 1 Jul 2018 22:43:16 +0000 (15:43 -0700)]
Fix some build breaks seen with the older VS we use to build with on desktop. (#18736)

6 years agoFix recursive inlining of PInvoke stubs (#18737)
Jan Kotas [Sun, 1 Jul 2018 13:02:04 +0000 (06:02 -0700)]
Fix recursive inlining of PInvoke stubs (#18737)

PInvoke stubs can be inlined into a regular methods in CoreRT. PInvoke transition
has to be inlined as well when that happens. Otherwise, there is a risk of recursive
inlining in corner cases.

6 years agoReplace compGetMemArray uses
Mike Danes [Sat, 30 Jun 2018 19:45:01 +0000 (22:45 +0300)]
Replace compGetMemArray uses

6 years agoFix incorrect lvaTrackedToVarNum memset size
Mike Danes [Thu, 21 Jun 2018 18:36:47 +0000 (21:36 +0300)]
Fix incorrect lvaTrackedToVarNum memset size

6 years agoHandle the missing cache case in gtGetStructHandleForSIMD
Mike Danes [Mon, 18 Jun 2018 18:19:08 +0000 (21:19 +0300)]
Handle the missing cache case in gtGetStructHandleForSIMD

6 years agoAllocate space for siLatestTrackedScopes on demand
Mike Danes [Sat, 16 Jun 2018 15:56:36 +0000 (18:56 +0300)]
Allocate space for siLatestTrackedScopes on demand

By the time siLatestTrackedScopes is needed the number of tracked variables is known so we can allocate an array of suitable size. Defaulting to lclMAX_TRACKED requires 4 kbytes and for many small methods that's a waste.

6 years agoRemove Compiler::impSmallStack
Mike Danes [Sat, 16 Jun 2018 20:07:49 +0000 (23:07 +0300)]
Remove Compiler::impSmallStack

Memory allocation via ArenaAllocator is cheap so it's not worth having this inline array that ends up wasting 384 bytes when a larger stack is needed.

Care needs to be taken when inlining to avoid allocating a new stack every time - just steal the stack of the inliner compiler (after ensuring that it is large enough).

6 years agoCleanup hashBvGlobalData
Mike Danes [Sat, 16 Jun 2018 19:21:40 +0000 (22:21 +0300)]
Cleanup hashBvGlobalData

Each compiler object contains a hashBvGlobalData that's 80 bytes in size. Only 16 bytes are actually used - the hash and node free lists.
* hbvFreeVectorList is supposed to be used by hashBv::freeVector but nothing calls that and getNewVector does not attempt to use the free list
* hbvHashSizeLog2 is always 0
* hashBvNextIterator is used only in HbvNext and that function is never used

6 years agoRemove unused Compiler members
Mike Danes [Sat, 16 Jun 2018 17:04:09 +0000 (20:04 +0300)]
Remove unused Compiler members

6 years agoMove SIMD/Intrinsic handles out of Compiler
Mike Danes [Sat, 16 Jun 2018 14:43:15 +0000 (17:43 +0300)]
Move SIMD/Intrinsic handles out of Compiler

These handles require ~256 bytes and are only needed if the method uses SIMD/intrinsics. Also, the inlinee compiler can/should reuse them to avoid redundant name lookups.

6 years agoMove temp info from Compiler to RegSet
Mike Danes [Sat, 16 Jun 2018 13:45:02 +0000 (16:45 +0300)]
Move temp info from Compiler to RegSet

Temporaries are only used during register allocation and code generation. They waste space (136 bytes) in the compiler object during inlining.

6 years agoAllocate space for lvaTrackedToVarNum on demand
Mike Danes [Sat, 16 Jun 2018 12:53:38 +0000 (15:53 +0300)]
Allocate space for lvaTrackedToVarNum on demand

Compiler::lvaTrackedToVarNum requires 2 kbytes and it's not used when the compiler object is used for inlining.

6 years agoAllocate space for the loop table on demand
Mike Danes [Sat, 16 Jun 2018 11:38:36 +0000 (14:38 +0300)]
Allocate space for the loop table on demand

Compiler::optLoopTable requires 2.5kbytes (the entire Compiler object is around 7.5kbytes) and it's not used when the method does not contain loops, when optimizations are disabled or when the compiler is used for inlining.

6 years agoPass CompAllocator by value (#15025)
mikedn [Sat, 30 Jun 2018 17:05:30 +0000 (20:05 +0300)]
Pass CompAllocator by value (#15025)

Passing CompAllocator objects by value is advantageous because it no longer needs to be dynamically allocated and cached. CompAllocator instances can now be freely created, copied and stored, which makes adding new CompMemKind values easier.

Together with other cleanup this also improves memory allocation performance by removing some extra levels of indirection that were previously required - jitstd::allocator had a pointer to CompAllocator, CompAllocator had a pointer to Compiler and Compiler finally had a pointer to ArenaAllocator. Without MEASURE_MEM_ALLOC enabled, both jitstd::allocator and CompAllocator now just contain a pointer to ArenaAllocator. When MEASURE_MEM_ALLOC is enabled CompAllocator also contains a pointer but to a MemStatsAllocator object that holds the relevant memory kind. This way CompAllocator is always pointer sized so that enabling MEASURE_MEM_ALLOC does not result in increased memory usage due to objects that store a CompAllocator instance.

In order to implement this, 2 additional signficant changes have been made:
* MemStats has been moved to ArenaAllocator, it's after all the allocator's job to maintain statistics. This also fixes some issues related to memory statistics, such as not tracking the memory allocated by the inlinee compiler (since that one used its own MemStats instance).
* Extract the arena page pooling logic out of the allocator. It doesn't make sense to pool an allocator, it has very little state that can actually be reused and everyting else (including MemStats) needs to be reset on reuse. What really needs to be pooled is just a page of memory.

Since this was touching allocation code the opportunity has been used to perform additional cleanup:
* Remove unnecessary LSRA ListElementAllocator
* Remove compGetMem and compGetMemArray
* Make CompAllocator and HostAllocator more like the std allocator
* Update HashTable to use CompAllocator
* Update ArrayStack to use CompAllocator
* Move CompAllocator & friends to alloc.h

6 years agoUpdate CoreClr, PgoData to preview1-26630-01, master-20180630-0049, respectively...
dotnet-maestro-bot [Sat, 30 Jun 2018 11:53:40 +0000 (04:53 -0700)]
Update CoreClr, PgoData to preview1-26630-01, master-20180630-0049, respectively (#18729)

6 years agoFix build breaks with older MSVC compiler (#18725)
Jan Kotas [Sat, 30 Jun 2018 03:43:08 +0000 (20:43 -0700)]
Fix build breaks with older MSVC compiler (#18725)

6 years agoFixing some Bmi1 HWIntrinsic method names (#18718)
Tanner Gooding [Sat, 30 Jun 2018 02:19:31 +0000 (19:19 -0700)]
Fixing some Bmi1 HWIntrinsic method names (#18718)

6 years agoRegex: reduce allocation slightly, add tests, code cleanup, add parser comments ...
Viktor Hofer [Fri, 29 Jun 2018 15:47:53 +0000 (17:47 +0200)]
Regex: reduce allocation slightly, add tests, code cleanup, add parser comments (#30632)

* RegexParser & optionsstack ref

* Add test coverage for Group.Synchronized

* Adjust options mode test case

* Add inline comment '#' test branch

* Add comments

* Replace manual ToLower calls by Span.ToLower

* Make applicable fields readonly in parser

* Change to Assert to reduce an if check in one branch

* Code formatting

* Avoid string allocation when IgnoreCase set

Prefix patterns which are passed to RegexBoyerMoore are already
lowercased by the parser. Remove the redundant ToLower() call and assert
the patterns lowercase state

* Add surrogate pair positive & negative tests

* Add test cases for rtl anchor

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoMerge pull request #18715 from BruceForstall/FixSignedComparison
Bruce Forstall [Fri, 29 Jun 2018 21:49:09 +0000 (14:49 -0700)]
Merge pull request #18715 from BruceForstall/FixSignedComparison

Fix issue with signed/unsigned comparison

6 years agooptimize fgMorphTree for GenTreeArgList (#18582)
Sergey Andreenko [Fri, 29 Jun 2018 20:38:44 +0000 (13:38 -0700)]
optimize fgMorphTree for GenTreeArgList (#18582)

* add fgMorphArgList

* hide the call inside fgMorphSmpOp

* fix grammar mistakes

6 years agoRemove build-only and TST jobs from the Jenkins views
Bruce Forstall [Fri, 29 Jun 2018 19:28:29 +0000 (12:28 -0700)]
Remove build-only and TST jobs from the Jenkins views

We only want non-PR, "top-level" jobs in the views. Build-only
and TST jobs are always "child" jobs of other flow jobs, which
will be in the views.