1. 19 Oct, 2021 1 commit
  2. 06 Jul, 2021 1 commit
    • Z Nguyen-Huu's avatar
      Use type feedback to improve exponentiation. · ae95f46d
      Z Nguyen-Huu authored
      With this change, we use Float64Pow for both Smi and Float inputs, also
      introduce new speculative operator.
      
      For this PoC
      ==========================================================
      let result = [NaN]; // Avoid HeapNumber-boxing the results.
      
      function slow(){
        for(let i = 0; i < 100000000; i++) {
          result[0] = i ** 2;
        }
      }
      
      start = Date.now();
      slow();
      console.log(Date.now() - start);
      ==========================================================
      Before: 1313
      After: 112
      
      Bug: v8:11731
      Change-Id: I07a1bde068bef8184b9f556be9d1fe2d6a288705
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960064
      Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#75590}
      ae95f46d
  3. 01 Jul, 2021 1 commit
  4. 29 Jun, 2021 1 commit
  5. 28 Jun, 2021 2 commits
  6. 31 May, 2021 1 commit
  7. 03 May, 2021 1 commit
  8. 27 Apr, 2021 1 commit
  9. 20 Apr, 2021 1 commit
  10. 19 Apr, 2021 2 commits
  11. 12 Apr, 2021 2 commits
  12. 27 Jan, 2021 1 commit
  13. 28 Oct, 2020 1 commit
  14. 24 Jun, 2020 1 commit
  15. 04 Jun, 2020 1 commit
  16. 28 May, 2020 1 commit
    • Nico Hartmann's avatar
      Reland "[turbofan] Improve equality on NumberOrOddball" · 120d4333
      Nico Hartmann authored
      This is a reland of 6204768b
      
      The original issue exposed the problem that NumberEqual performs
      implicit conversion of oddballs to numbers, which is incorrect for
      abstract equality comparison (i.e. 0 == null must not be true).
      
      This reland fixes this by applying the following steps:
      * Introduced a new kNumberOrBoolean value for CompareOperationFeedback,
        CompareOperationHint, TypeCheckKind and CheckedTaggedInputMode.
      * In CodeStubAssembler::Equal: Further distinguish between boolean and
        non-boolean oddballs and set feedback accoringly.
      * In JSTypedLowering: Construct [Speculative]NumberEqual operator with
        CompareOperationHint::kNumberOrBoolean, when this feedback is present.
        JSOperatorBuilder and operator cache are extended accordingly.
      * In SimplifiedLowering: Propagate a UseInfo with new
        TypeCheckKind::kNumberOrBoolean.
      * This leads to the generation of CheckedTaggedToFloat64 in
        RepresentationChanger with new CheckedTaggedInputMode::kNumberOrBoolean.
      * In EffectControlLinearizer: Handle this new mode. Accept and convert
        number and boolean and deopt for rest.
      
      Original change's description:
      > [turbofan] Improve equality on NumberOrOddball
      >
      > This CL cleans up CompareOperationFeedback by replacing it with a
      > composable set of flags. The interpreter is changed to collect
      > more specific feedback for abstract equality, especially if oddballs
      > are involved.
      >
      > TurboFan is changed to construct SpeculativeNumberEqual operator
      > instead of the generic JSEqual in many more cases. This change has
      > shown a local speedup of a factor of 3-10, because the specific
      > operator is way faster than calling into the generic builtin, but
      > it also enables additional optimizations, further improving
      > runtime performance.
      >
      > Bug: v8:5660
      > Change-Id: I856752caa707e9a4f742c6e7a9c75552fb431d28
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2162854
      > Reviewed-by: Mythri Alle <mythria@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67645}
      
      TBR: tebbi@chromium.org
      Bug: v8:5660
      Change-Id: I12e733149a1d2773cafb781a1d4b10aa1eb242a7
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2193713
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68037}
      120d4333
  17. 06 May, 2020 1 commit
  18. 21 Feb, 2020 1 commit
  19. 19 Feb, 2020 2 commits
  20. 18 Feb, 2020 2 commits
  21. 08 Jan, 2020 1 commit
  22. 12 Dec, 2019 1 commit
  23. 29 Nov, 2019 1 commit
  24. 26 Nov, 2019 1 commit
  25. 20 Nov, 2019 1 commit
  26. 11 Nov, 2019 2 commits
  27. 16 Oct, 2019 1 commit
  28. 04 Oct, 2019 1 commit
  29. 01 Oct, 2019 1 commit
  30. 26 Sep, 2019 1 commit
  31. 26 Aug, 2019 1 commit
  32. 23 Aug, 2019 2 commits
  33. 12 Aug, 2019 1 commit