- 06 Nov, 2017 1 commit
-
-
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:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49138}
-
- 04 Nov, 2017 1 commit
-
-
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:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49123}
-
- 03 Nov, 2017 1 commit
-
-
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:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49106}
-
- 27 Apr, 2017 3 commits
-
-
Clemens Hammacher authored
With fix for architectures where x<<32 != x. Original change's description: > [base] Introduce RoundUpToPowerOfTwo64 > > And fix RoundUpToPowerOfTwo32 to return 1 for the input 0. > 0 is no power of two. > Beside being the correct value, this also avoids a special case in the > (new) fast path using the number of leading zeros. > > R=jochen@chromium.org, ahaas@chromium.org > > Change-Id: I87173495e13b334954bcebbb55724fb666dfa809 > Reviewed-on: https://chromium-review.googlesource.com/488143 > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44925} TBR=ahaas@chromium.org,jochen@chromium.org,clemensh@chromium.org,v8-reviews@googlegroups.com Change-Id: I7b4719d84a419bb7b38e3b5c9d6d183275087ace Reviewed-on: https://chromium-review.googlesource.com/488981 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44951}
-
Clemens Hammacher authored
This reverts commit 9ceaf212. Reason for revert: Fails on arm: http://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20debug/builds/2950/steps/Check/logs/Bits.RoundUpToPowerOf.. Original change's description: > [base] Introduce RoundUpToPowerOfTwo64 > > And fix RoundUpToPowerOfTwo32 to return 1 for the input 0. > 0 is no power of two. > Beside being the correct value, this also avoids a special case in the > (new) fast path using the number of leading zeros. > > R=jochen@chromium.org, ahaas@chromium.org > > Change-Id: I87173495e13b334954bcebbb55724fb666dfa809 > Reviewed-on: https://chromium-review.googlesource.com/488143 > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44925} TBR=ahaas@chromium.org,jochen@chromium.org,clemensh@chromium.org,v8-reviews@googlegroups.com,wasm-v8@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ib353ee0a944316da6f919bac3bb88d4f95d98ea0 Reviewed-on: https://chromium-review.googlesource.com/488365Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44935}
-
Clemens Hammacher authored
And fix RoundUpToPowerOfTwo32 to return 1 for the input 0. 0 is no power of two. Beside being the correct value, this also avoids a special case in the (new) fast path using the number of leading zeros. R=jochen@chromium.org, ahaas@chromium.org Change-Id: I87173495e13b334954bcebbb55724fb666dfa809 Reviewed-on: https://chromium-review.googlesource.com/488143Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44925}
-
- 14 Jul, 2016 1 commit
-
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2101123005 Cr-Commit-Position: refs/heads/master@{#37748}
-
- 06 May, 2016 1 commit
-
-
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}
-
- 26 Oct, 2014 1 commit
-
-
bmeurer@chromium.org authored
Also fix the sdiv/udiv instructions on ARM as a nice side effect. TEST=cctest,unittests R=jarin@chromium.org Review URL: https://codereview.chromium.org/677483005 Cr-Commit-Position: refs/heads/master@{#24888} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Oct, 2014 2 commits
-
-
bmeurer@chromium.org authored
Apparently SMMLS r, b, c, a computes r = ((a << 32) - b * c) >> 32 while the documentation is kinda misleading and states that it should compute r = a - ((b * c) >> 32) The actual behavior is kinda useless, so we drop the instruction again. TEST=cctest,unittests TBR=dcarney@chromium.org Review URL: https://codereview.chromium.org/654653004 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
TEST=cctest,unittests R=hpayer@chromium.org Review URL: https://codereview.chromium.org/648283002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Sep, 2014 1 commit
-
-
bmeurer@chromium.org authored
TEST=base-unittests,cctest,mjsunit R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/528993002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-