1. 06 Nov, 2017 1 commit
    • Clemens Hammacher's avatar
      Reland "[bits] Consolidate Count{Leading,Trailing}Zeros" · 27ffc624
      Clemens Hammacher authored
      This is a reland of 7d231e57, fixed to
      avoid instantiating CountLeadingZeros for bits==0.
      
      Original change's description:
      > [bits] Consolidate Count{Leading,Trailing}Zeros
      > 
      > Instead of having one method for 32 bit integers and one for 64 bit,
      > plus a templatized version to choose from those two, just implement one
      > version which handles unsigned integers of any size. Also, make them
      > constexpr.
      > The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in
      > order to keep the amount of code changes small. Also, sometimes it
      > improves readability by stating exactly the size of the argument,
      > especially for leading zeros (where zero-extending would add more
      > leading zeros).
      > 
      > CountLeadingZeros now uses a binary search inspired implementation
      > as proposed in Hacker's Delight. It's more than 20% faster on x64 if
      > the builtins are disabled.
      > CountTrailingZeros falls back to CountPopulation instead of counting in
      > a naive loop. This is ~50% faster.
      > 
      > R=mstarzinger@chromium.org
      > 
      > Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e
      > Reviewed-on: https://chromium-review.googlesource.com/741231
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49106}
      
      Change-Id: Icdff2510ec66d1c96a1912cef29d77d8550994ee
      Reviewed-on: https://chromium-review.googlesource.com/753903Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49138}
      27ffc624
  2. 04 Nov, 2017 1 commit
    • Michael Achenbach's avatar
      Revert "[bits] Consolidate Count{Leading,Trailing}Zeros" · 1a1968fe
      Michael Achenbach authored
      This reverts commit 7d231e57.
      
      Reason for revert: Breaks revert for win-clang:
      https://build.chromium.org/p/tryserver.chromium.win/builders/win_clang/builds/342755
      
      Original change's description:
      > [bits] Consolidate Count{Leading,Trailing}Zeros
      > 
      > Instead of having one method for 32 bit integers and one for 64 bit,
      > plus a templatized version to choose from those two, just implement one
      > version which handles unsigned integers of any size. Also, make them
      > constexpr.
      > The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in
      > order to keep the amount of code changes small. Also, sometimes it
      > improves readability by stating exactly the size of the argument,
      > especially for leading zeros (where zero-extending would add more
      > leading zeros).
      > 
      > CountLeadingZeros now uses a binary search inspired implementation
      > as proposed in Hacker's Delight. It's more than 20% faster on x64 if
      > the builtins are disabled.
      > CountTrailingZeros falls back to CountPopulation instead of counting in
      > a naive loop. This is ~50% faster.
      > 
      > R=​mstarzinger@chromium.org
      > 
      > Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e
      > Reviewed-on: https://chromium-review.googlesource.com/741231
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49106}
      
      TBR=mstarzinger@chromium.org,clemensh@chromium.org
      
      Change-Id: Iceeb35bf9c7539a1013c9bdbc47118008611bef2
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/753463Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49123}
      1a1968fe
  3. 03 Nov, 2017 1 commit
    • Clemens Hammacher's avatar
      [bits] Consolidate Count{Leading,Trailing}Zeros · 7d231e57
      Clemens Hammacher authored
      Instead of having one method for 32 bit integers and one for 64 bit,
      plus a templatized version to choose from those two, just implement one
      version which handles unsigned integers of any size. Also, make them
      constexpr.
      The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in
      order to keep the amount of code changes small. Also, sometimes it
      improves readability by stating exactly the size of the argument,
      especially for leading zeros (where zero-extending would add more
      leading zeros).
      
      CountLeadingZeros now uses a binary search inspired implementation
      as proposed in Hacker's Delight. It's more than 20% faster on x64 if
      the builtins are disabled.
      CountTrailingZeros falls back to CountPopulation instead of counting in
      a naive loop. This is ~50% faster.
      
      R=mstarzinger@chromium.org
      
      Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e
      Reviewed-on: https://chromium-review.googlesource.com/741231Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49106}
      7d231e57
  4. 27 Apr, 2017 3 commits
  5. 14 Jul, 2016 1 commit
  6. 06 May, 2016 1 commit
    • lpy's avatar
      Create TimeBase for time related classes. · 5cbe0f5d
      lpy authored
      Currently we have Time and TimeTicks sharing some methods. This patch
      creates TimeBase, and makes Time and TimeTicks inherits from it, so that time
      related classes won't have to implement common methods and it's easier to
      introduce new time related classes.
      
      BUG=v8:4990
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1952843002
      Cr-Commit-Position: refs/heads/master@{#36088}
      5cbe0f5d
  7. 26 Oct, 2014 1 commit
  8. 14 Oct, 2014 2 commits
  9. 02 Sep, 2014 1 commit