Amy [Tue, 10 Jul 2018 18:10:08 +0000 (11:10 -0700)]
Merge pull request #18653 from acmyu/build
R2RDump - Build integration
Tanner Gooding [Tue, 10 Jul 2018 01:42:01 +0000 (18:42 -0700)]
Regenerating the x86 HWIntrinsic tests to cover 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
Jan Kotas [Tue, 10 Jul 2018 11:13:04 +0000 (04:13 -0700)]
Move BinaryReader to shared CoreLib partition (#18845)
Amy [Tue, 10 Jul 2018 08:49:54 +0000 (01:49 -0700)]
Exclude failing CoreFx test (#18844)
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
Amy Yu [Mon, 9 Jul 2018 23:36:39 +0000 (16:36 -0700)]
Exclude failing CoreFx test
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
Tanner Gooding [Fri, 6 Jul 2018 16:29:33 +0000 (09:29 -0700)]
Adding tests for 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
Tanner Gooding [Fri, 6 Jul 2018 06:36:30 +0000 (23:36 -0700)]
Adding tests for the AndNot, ExtractLowestSetBit, GetMaskUpToLowestSetBit, and ResetLowestSetBit x86 HWIntrinsics
Tanner Gooding [Fri, 6 Jul 2018 06:34:58 +0000 (23:34 -0700)]
Implementing the AndNot, ExtractLowestSetBit, GetMaskUpToLowestSetBit, and ResetLowestSetBit x86 HWIntrinsics
Tanner Gooding [Wed, 4 Jul 2018 23:32:55 +0000 (16:32 -0700)]
Adding tests for the x86 TrailingZeroCount HWintrinsic
Tanner Gooding [Wed, 4 Jul 2018 23:32:27 +0000 (16:32 -0700)]
Implementing the x86 TrailingZeroCount HWIntrinsic
Tanner Gooding [Wed, 4 Jul 2018 14:55:28 +0000 (07:55 -0700)]
Renaming ScalarUnOpTest to ScalarSimdUnOpTest
Viktor Hofer [Mon, 9 Jul 2018 21:41:07 +0000 (23:41 +0200)]
Fix serialization type in NotFiniteNumberException (#18833)
Amy Yu [Tue, 3 Jul 2018 19:59:22 +0000 (12:59 -0700)]
Fix test errors
Amy Yu [Tue, 3 Jul 2018 19:13:51 +0000 (12:13 -0700)]
Use BuildManagedTools argument instead of environment variable, removed unneeded flags
Amy Yu [Tue, 3 Jul 2018 00:45:00 +0000 (17:45 -0700)]
Add R2RDump to build.proj, running dotnet restore before target build
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}
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)
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.
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
Rich Lander [Sun, 8 Jul 2018 21:56:41 +0000 (14:56 -0700)]
Correct AssemblyLoadContext comment (#18809)
Viktor Hofer [Sun, 8 Jul 2018 17:41:40 +0000 (19:41 +0200)]
LastIndexOf corner case fix when span is empty (#18826)
Viktor Hofer [Sun, 8 Jul 2018 13:41:26 +0000 (15:41 +0200)]
Fix Span LastIndexOf empty value handling
Anirudh Agnihotry [Sat, 7 Jul 2018 01:47:46 +0000 (18:47 -0700)]
TargetFrameworkName property initialized (#18814)
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.
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
nkaretnikov2 [Fri, 6 Jul 2018 12:54:28 +0000 (15:54 +0300)]
[ARM] Mention a clang-5.0 issue in the documentation (#18803)
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
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.
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
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
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
Bruce Forstall [Thu, 5 Jul 2018 17:50:06 +0000 (10:50 -0700)]
Update Linux ARM libunwind instructions
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
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.
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
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).
Viktor Hofer [Wed, 4 Jul 2018 18:56:25 +0000 (20:56 +0200)]
Add LastIndexOf compareoptions overload (#18652)
* Add LastIndexOf compareoptions overload
Tanner Gooding [Sun, 1 Jul 2018 15:06:46 +0000 (08:06 -0700)]
Adding tests 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`
Jan Kotas [Wed, 4 Jul 2018 09:19:38 +0000 (11:19 +0200)]
Remove mention of security transparency from message and comment (#18776)
Andrew Au [Wed, 4 Jul 2018 06:12:54 +0000 (23:12 -0700)]
compGSReorderStackLayout is not supported when EnC is on (#18713)
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)
Luqun Lou [Wed, 4 Jul 2018 01:30:33 +0000 (18:30 -0700)]
Delete InternalsVisibleTo attributes from S.P.CoreLib (#18697)
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
Tomas Weinfurt [Tue, 3 Jul 2018 21:00:40 +0000 (14:00 -0700)]
add missing files to package properly on FreeBSD (#18764)
Carol Eidt [Tue, 3 Jul 2018 20:02:07 +0000 (13:02 -0700)]
Merge pull request #18768 from CarolEidt/RemoveIsMultiReg
Remove Interval::isMultiReg
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
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
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)
Carol Eidt [Tue, 3 Jul 2018 16:46:04 +0000 (09:46 -0700)]
Remove Interval::isMultiReg
This is no longer used after #16517
Carol Eidt [Tue, 3 Jul 2018 14:42:12 +0000 (07:42 -0700)]
Build uses for atomic ops
Fix #18765
Egor Chesakov [Tue, 3 Jul 2018 02:37:15 +0000 (19:37 -0700)]
Use generic win-x86/win-x64 RIDs in stress_dependencies
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
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
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.
Tanner Gooding [Sun, 17 Jun 2018 15:58:20 +0000 (08:58 -0700)]
Fold away Sse.StaticCast and Avx.StaticCast in the importer
Tanner Gooding [Sun, 17 Jun 2018 15:57:51 +0000 (08:57 -0700)]
Adding an Avx.StaticCast test (modified from the Sse.StaticCast test)
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
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.
Andrew Au [Mon, 2 Jul 2018 22:39:03 +0000 (15:39 -0700)]
Debug registers cannot be copied in user mode (#18730)
Brian Robbins [Mon, 2 Jul 2018 22:08:32 +0000 (15:08 -0700)]
Dispatch Runtime Events to EventListener (#18649)
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)
Andon Andonov [Mon, 2 Jul 2018 20:54:58 +0000 (13:54 -0700)]
Move RuntimeIDArg initialization (#18747)
Tanner Gooding [Sat, 30 Jun 2018 21:58:14 +0000 (14:58 -0700)]
Fixing up the Sse41.Insert float HWIntrinsics
Sergey Andreenko [Mon, 2 Jul 2018 17:21:36 +0000 (10:21 -0700)]
reenable fixed arm64 altjit tests (#18722)
Atsushi Kanamori [Mon, 2 Jul 2018 17:11:33 +0000 (10:11 -0700)]
Add back DefinePInvokeMethod (#18742)
Tanner Gooding [Sat, 30 Jun 2018 19:12:32 +0000 (12:12 -0700)]
Adding back the tests for Avx.MaskLoad
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
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
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>
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)
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.
Mike Danes [Sat, 30 Jun 2018 19:45:01 +0000 (22:45 +0300)]
Replace compGetMemArray uses
Mike Danes [Thu, 21 Jun 2018 18:36:47 +0000 (21:36 +0300)]
Fix incorrect lvaTrackedToVarNum memset size
Mike Danes [Mon, 18 Jun 2018 18:19:08 +0000 (21:19 +0300)]
Handle the missing cache case in gtGetStructHandleForSIMD
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.
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).
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
Mike Danes [Sat, 16 Jun 2018 17:04:09 +0000 (20:04 +0300)]
Remove unused Compiler members
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.
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.
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.
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.
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
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)
Jan Kotas [Sat, 30 Jun 2018 03:43:08 +0000 (20:43 -0700)]
Fix build breaks with older MSVC compiler (#18725)
Tanner Gooding [Sat, 30 Jun 2018 02:19:31 +0000 (19:19 -0700)]
Fixing some Bmi1 HWIntrinsic method names (#18718)
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>
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
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
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.
Bruce Forstall [Fri, 29 Jun 2018 19:05:59 +0000 (12:05 -0700)]
Fix issue with signed/unsigned comparison
On Mac (maybe on other platforms using clang?) the following set of
comparisons in the emitter were done as unsigned:
```
(val >= 0xFFFFFFFF80000000LL)
```
even though 'val' is signed. This led to assertion failures. On Windows,
the comparisons were signed.
To fix this, cast the constant to the signed `ssize_t` type (to match `val`).
Fixes #18341
Bruce Forstall [Fri, 29 Jun 2018 18:44:40 +0000 (11:44 -0700)]
Merge pull request #18693 from BruceForstall/FixLinuxX64FlowJobs
Stop creating Linux/x64 corefx flow jobs
Luqun Lou [Fri, 29 Jun 2018 17:59:07 +0000 (10:59 -0700)]
Change CancellationTokenRegistration.Unregister visibility from internal to public (#18698)
Phil Garcia [Fri, 29 Jun 2018 17:33:35 +0000 (10:33 -0700)]
Corrected a few typos in the documentation and comments (#18706)
* Corrected a few typos in the documentation and comments
* Corrected a few typos in the documentation and comments
* Corrected a few typos in the documentation and comments
* Corrected a few typos in the documentation and comments
* Corrected a few typos in the documentation and comments
* Corrected a few typos in the documentation and comments
Stephen Toub [Fri, 29 Jun 2018 17:31:51 +0000 (13:31 -0400)]
Improve bool.TryFormat perf (#18711)
* Improve bool.TryFormat perf
Improves throughput by ~50%, by avoiding AsSpan().CopyTo and just writing out the characters one-by-one. I experimented with playing the same tricks around storing the data in a ulong and blitting it out to the destination reinterpreted as a span of ulongs, but it didn't make a measurable improvement and increased the code complexity.
* Update Boolean.cs