Use sse4.2 CRC32 instructions to hash when available.
authormtklein <mtklein@chromium.org>
Mon, 8 Aug 2016 16:06:27 +0000 (09:06 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 8 Aug 2016 16:06:28 +0000 (09:06 -0700)
commit4e97607d9a1cef66fac16f347c5ca813ec4f9515
treee523cac97fae89a2abb1ec0d4c1fc87f86e3169f
parent9a5a201472c3fb9f02b954ba09ae1ec13ebd50f4
Use sse4.2 CRC32 instructions to hash when available.

About 9x faster than Murmur3 for long inputs.

Most of this is a mechanical change from SkChecksum::Murmur3(...) to SkOpts::hash(...).

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2208903002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot

Review-Url: https://codereview.chromium.org/2208903002
26 files changed:
BUILD.gn
bench/ChecksumBench.cpp
cmake/CMakeLists.txt
gyp/core.gypi
gyp/opts.gypi
include/private/SkChecksum.h
src/core/SkChecksum.cpp [deleted file]
src/core/SkDescriptor.h
src/core/SkImageFilterCache.cpp
src/core/SkOpts.cpp
src/core/SkOpts.h
src/core/SkPaint.cpp
src/core/SkResourceCache.cpp
src/gpu/GrProgramDesc.h
src/gpu/GrResourceCache.cpp
src/gpu/batches/GrAADistanceFieldPathRenderer.h
src/gpu/effects/GrTextureStripAtlas.h
src/gpu/text/GrAtlasTextBlob.h
src/gpu/text/GrStencilAndCoverTextContext.h
src/gpu/vk/GrVkPipelineStateCache.cpp
src/opts/SkChecksum_opts.h [new file with mode: 0644]
src/opts/SkOpts_sse42.cpp [new file with mode: 0644]
src/pdf/SkPDFGraphicState.h
src/utils/SkWhitelistTypefaces.cpp
tests/ChecksumTest.cpp
tools/UrlDataManager.h