summaryrefslogtreecommitdiffstats
path: root/third_party/opus
diff options
context:
space:
mode:
authorsolenberg@chromium.org <solenberg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-16 13:28:03 +0000
committersolenberg@chromium.org <solenberg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-16 13:28:03 +0000
commit26648718eec415776b202c507063e67ed58cf8a6 (patch)
treef70c35130c9e884d3912c2395e68d50b5efad3e7 /third_party/opus
parentc976fba1262c41d01654deb2357b8cad9dc589ad (diff)
downloadchromium_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.gyp19
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': [