Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(621)

Issue 1270573002: Port SkUtils opts to SkOpts. (Closed)

Created:
5 years, 4 months ago by mtklein_C
Modified:
5 years, 4 months ago
Reviewers:
djsollen
CC:
reviews_skia.org
Base URL:
https://skia.googlesource.com/skia.git@master
Target Ref:
refs/heads/master
Project:
skia
Visibility:
Public.

Description

Port SkUtils opts to SkOpts. With this new arrangement, the benefits of inlining sk_memset16/32 have changed. On x86, they're not significantly different, except for small N<=10 where the inlined code is significantly slower. On ARMv7 with NEON, our custom code is still significantly faster for N>10 (up to 2x faster). For small N<=10 inlining is still significantly faster. On ARMv7 without NEON, our custom code is still ridiculously faster (up to 10x) than inlining for N>10, though for small N<=10 inlining is still a little faster. We were not using the NEON memset16 and memset32 procs on ARMv8. At first blush, that seems to be an oversight, but if so it's an extremely lucky one. The ARMv8 code generation for our memset16/32 procs is total garbage, leaving those methods ~8x slower than just inlining the memset, using the compiler's autovectorization. So, no need to inline any more on x86, and still inline for N<=10 on ARMv7. Always inline for ARMv8. BUG=skia:4117 Committed: https://skia.googlesource.com/skia/+/7eb0945af254d376df11475150d184623104cf93

Patch Set 1 #

Patch Set 2 : return inlining #

Patch Set 3 : note #

Patch Set 4 : always inline armv8 #

Total comments: 6

Patch Set 5 : derek #

Unified diffs Side-by-side diffs Delta from patch set Stats (+140 lines, -420 lines) Patch
M gyp/opts.gypi View 6 chunks +0 lines, -6 lines 0 comments Download
M include/core/SkFloatingPoint.h View 1 2 3 4 2 chunks +1 line, -2 lines 0 comments Download
M include/core/SkUtils.h View 1 2 3 4 1 chunk +22 lines, -33 lines 0 comments Download
A + include/private/SkOpts.h View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M src/core/SkOpts.h View 1 2 3 4 1 chunk +0 lines, -25 lines 0 comments Download
M src/core/SkOpts.cpp View 1 2 chunks +12 lines, -2 lines 0 comments Download
M src/core/SkUtils.cpp View 1 chunk +0 lines, -128 lines 0 comments Download
M src/opts/SkOpts_neon.cpp View 1 1 chunk +59 lines, -2 lines 0 comments Download
M src/opts/SkOpts_sse2.cpp View 1 1 chunk +42 lines, -1 line 0 comments Download
D src/opts/SkUtils_opts_SSE2.h View 1 chunk +0 lines, -16 lines 0 comments Download
D src/opts/SkUtils_opts_SSE2.cpp View 1 chunk +0 lines, -69 lines 0 comments Download
D src/opts/SkUtils_opts_arm.cpp View 1 chunk +0 lines, -32 lines 0 comments Download
D src/opts/SkUtils_opts_arm_neon.cpp View 1 chunk +0 lines, -66 lines 0 comments Download
D src/opts/SkUtils_opts_none.cpp View 1 chunk +0 lines, -18 lines 0 comments Download
M src/opts/opts_check_x86.cpp View 2 chunks +0 lines, -20 lines 0 comments Download

Messages

Total messages: 16 (6 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1270573002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1270573002/60001
5 years, 4 months ago (2015-07-30 18:21:31 UTC) #2
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 4 months ago (2015-07-30 18:29:23 UTC) #4
mtklein_C
5 years, 4 months ago (2015-07-30 18:45:29 UTC) #6
djsollen
https://codereview.chromium.org/1270573002/diff/60001/include/core/SkUtils.h File include/core/SkUtils.h (right): https://codereview.chromium.org/1270573002/diff/60001/include/core/SkUtils.h#newcode14 include/core/SkUtils.h:14: extern void (*memset16)(uint16_t[], uint16_t, int); does this mean that ...
5 years, 4 months ago (2015-07-31 17:25:23 UTC) #7
mtklein_C
https://codereview.chromium.org/1270573002/diff/60001/include/core/SkUtils.h File include/core/SkUtils.h (right): https://codereview.chromium.org/1270573002/diff/60001/include/core/SkUtils.h#newcode14 include/core/SkUtils.h:14: extern void (*memset16)(uint16_t[], uint16_t, int); On 2015/07/31 17:25:23, djsollen ...
5 years, 4 months ago (2015-07-31 17:36:25 UTC) #8
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1270573002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1270573002/80001
5 years, 4 months ago (2015-07-31 17:37:42 UTC) #10
djsollen
lgtm
5 years, 4 months ago (2015-07-31 17:41:13 UTC) #11
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 4 months ago (2015-07-31 17:44:54 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1270573002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1270573002/80001
5 years, 4 months ago (2015-07-31 17:46:15 UTC) #15
commit-bot: I haz the power
5 years, 4 months ago (2015-07-31 17:46:56 UTC) #16
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as
https://skia.googlesource.com/skia/+/7eb0945af254d376df11475150d184623104cf93

Powered by Google App Engine
This is Rietveld 408576698