Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some System.Decimal performance improvements #99212

Open
wants to merge 27 commits into
base: main
Choose a base branch
from

Commits on Feb 18, 2024

  1. Configuration menu
    Copy the full SHA
    03b5226 View commit details
    Browse the repository at this point in the history
  2. Remove usage of mulx via instrinct on 32bit x86 since it produces wor…

    …se code than
    
    Job=ShortRun  IterationCount=3  LaunchCount=1
    WarmupCount=3
    
    | Method                     | a | b          | Mean     | Error     | StdDev    | Allocated |
    |--------------------------- |-- |----------- |---------:|----------:|----------:|----------:|
    | Mul64By32_New | 3 | 4294967295 | 2.068 ns | 0.0459 ns | 0.0383 ns |         - |
    | Mul64By32_Ori                |  3   | 4294967295 | 2.916 ns | 0.0231 ns | 0.0193 ns |         - |
    Daniel-Svensson committed Feb 18, 2024
    Configuration menu
    Copy the full SHA
    f593c2e View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2024

  1. update part of Multiply

    - Add comment to BigMul64By32 and make it return nunit to avoid clearing upper 32 bits
    - Simplify IncreaseScale
    Daniel-Svensson committed Feb 22, 2024
    Configuration menu
    Copy the full SHA
    218b373 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f19ef92 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e984fc5 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2024

  1. Configuration menu
    Copy the full SHA
    f0d62fd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    792c3eb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6dab5f9 View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2024

  1. Configuration menu
    Copy the full SHA
    83efb42 View commit details
    Browse the repository at this point in the history
  2. Remove BigMul64By32 and add overloads of Math.BigMul instead so that …

    …it can easily be removed once JIT recognize and optimize "ulong * uint"
    Daniel-Svensson committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    a20f37f View commit details
    Browse the repository at this point in the history
  3. Simplify Div96By32

    Daniel-Svensson committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    2f6e107 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    14a662b View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2024

  1. Configuration menu
    Copy the full SHA
    cfcd379 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0bd0cc3 View commit details
    Browse the repository at this point in the history
  3. Add new IncreaseScale overload to fix issue with Store-To-Load forwar…

    …ding
    
    * Gives around 20% faster perf for 64bit for full 96bit division
    * removes cast
    Daniel-Svensson committed Mar 11, 2024
    Configuration menu
    Copy the full SHA
    00ca6c7 View commit details
    Browse the repository at this point in the history
  4. Add back old 32bit code for IncreaseScale

    * makes the 5-10% regression 20% faster (25% speedup) for 1/3
    Daniel-Svensson committed Mar 11, 2024
    Configuration menu
    Copy the full SHA
    0659dc2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    83191db View commit details
    Browse the repository at this point in the history

Commits on Mar 12, 2024

  1. Configuration menu
    Copy the full SHA
    f2ada41 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    46aca48 View commit details
    Browse the repository at this point in the history
  3. switch from Bigmul to (ulong)a * (uint)b in IncreaseScale

    * Gives up to 10ns (or 14% faster)
    Daniel-Svensson committed Mar 12, 2024
    Configuration menu
    Copy the full SHA
    488c294 View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2024

  1. Configuration menu
    Copy the full SHA
    0087c61 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2024

  1. Configuration menu
    Copy the full SHA
    f2a291e View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2024

  1. Configuration menu
    Copy the full SHA
    baae42d View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2024

  1. Configuration menu
    Copy the full SHA
    7fe82f4 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2024

  1. Configuration menu
    Copy the full SHA
    233700b View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2024

  1. Configuration menu
    Copy the full SHA
    8baedf7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3a97891 View commit details
    Browse the repository at this point in the history