diff options
author | solenberg@chromium.org <solenberg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-16 13:28:03 +0000 |
---|---|---|
committer | solenberg@chromium.org <solenberg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-16 13:28:03 +0000 |
commit | 26648718eec415776b202c507063e67ed58cf8a6 (patch) | |
tree | f70c35130c9e884d3912c2395e68d50b5efad3e7 /third_party/opus | |
parent | c976fba1262c41d01654deb2357b8cad9dc589ad (diff) | |
download | chromium_src-26648718eec415776b202c507063e67ed58cf8a6.zip chromium_src-26648718eec415776b202c507063e67ed58cf8a6.tar.gz chromium_src-26648718eec415776b202c507063e67ed58cf8a6.tar.bz2 |
- Enable FIXED_POINT for Opus when building for arm64. This yields:
~21% speed up over floating point.
2.6% increase in executable size.
- Also switched to late expansion of release_optimize in common.gypi (debug_optimize was already using it). This makes it possible to set optimization level via release_optimize in lower level targets.
- Enable -O3 for Opus when building form arm32/arm64. This yields:
arm32: Speed increase up to 21% (encode) and 5% (decode).
arm32: 2.8% increase in executable size.
arm32: Output is bit exact with the output when -Os is used.
arm64: Speed increase up to 18% (encode) and 25% (decode).
arm64: 7.4% increase in executable size.
arm64: Output is exact within one LSB (max difference is 2) with the arm32 output.
Measured using webrtc/audio_codec_speed_tests.
BUG=chromium:354539
Review URL: https://codereview.chromium.org/315673002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277414 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/opus')
-rw-r--r-- | third_party/opus/opus.gyp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/third_party/opus/opus.gyp b/third_party/opus/opus.gyp index 3b37f42..1c6cad2 100644 --- a/third_party/opus/opus.gyp +++ b/third_party/opus/opus.gyp @@ -3,16 +3,27 @@ # found in the LICENSE file. { + 'target_defaults': { + 'variables': { + # Performance gains are substantial on ARM (v7,v8) with -O3 over the + # default -Os configured in common.gypi. + 'release_optimize': '3', + 'debug_optimize': '3', + }, + }, 'variables': { 'conditions': [ - ['((OS=="android" or chromeos==1) and target_arch=="arm") or (OS=="ios" and target_arch=="armv7")', { + ['target_arch=="arm" or target_arch=="armv7" or target_arch=="arm64"', { 'use_opus_fixed_point%': 1, - 'use_opus_arm_optimization%': 1, }, { 'use_opus_fixed_point%': 0, + }], + ['target_arch=="arm" or target_arch=="armv7"', { + 'use_opus_arm_optimization%': 1, + }, { 'use_opus_arm_optimization%': 0, }], - ['(OS=="android" or chromeos==1) and target_arch=="arm"', { + ['target_arch=="arm"', { 'use_opus_rtcd%': 1, }, { 'use_opus_rtcd%': 0, @@ -55,7 +66,7 @@ 4334, # Disable 32-bit shift warning in src/opus_encoder.c . ], }], - [ 'os_posix==1 and OS!="android"', { + ['os_posix==1 and OS!="android"', { # Suppress a warning given by opus_decoder.c that tells us # optimizations are turned off. 'cflags': [ |