Prefix passed using '--with-NE10=PFX' not used as NE10 include path.
Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Signed-off-by: Ralph Giles <giles@thaumas.net>
libopus only uses the DSP module of Ne10, and never uses the init functions.
Signed-off-by: Michael Bradshaw <mjbshaw@google.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
Different distributions of doxygen have different default
values of HAVE_DOT setting, so we need to pick a specific
setting to avoid 'missing dot' warnings on some platforms.
Doxygen uses it to generate inclusion graphs for our various
header files, which is somewhat useful, but not essential.
We therefore enable dot if it's present (usually through
the parent graphviz package) but disable it if it's not
available, silencing the warning, but not giving uniform
results.
This makes it match the formatting of the output for ARM assembly
better, and removes some redundant repetition of the word
"intrinsics". It also fixes the output if a compiler supports RTCD
for Neon intrinsics but not assembly.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
The implementation currently only codes each channel independently with no
special allocation rules.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
These were causing "syntax error near unexpected token `fi'" in the
generated configure on some systems, because they produced an
else
fi
with no commands between the two.
Optimize opus encode (float only) usecase using ARM NE10
library. Mainly effects opus_fft and ctl_mdct_forward
and related functions.
This optimization can be used for ARM CPUs that have NEON
VFP unit. This patch only enables optimizations for ARMv7.
Official ARM NE10 library page available at
http://projectne10.github.io/Ne10/
To enable this optimization, use
--enable-intrinsics --with-NE10=<install_prefix>
or
--enable-intrinsics --with-NE10-libraries=<NE10_lib_dir> --with-NE10-includes=<NE10_includes_dir>
Compile time checks made during configure process to make sure
optimization option available only when compiler supports NEON
instrinsics.
Runtime checks made to make sure optimized functions only called
on appropriate hardware.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
Enable x86 intrinsics when building in floating-point mode.
Support SSE as an arch value.
Use RTCD to conditionally enable existing floating-point Celt SSE code.
Call functions directly (without RTCD) when their architecture can be presumed.
Use SSE4.1 intrinsics optimized code for Silk even in floating-point mode.
Actually try to compile intrinsics rather than using the output of --help.
Allow caller of configure script to set custom compiler options to enable intrinsics.
Detect when intrinsics are always available, without needing special compiler options.
Make naming of #defines for detected intrinsics support more systematic.
Optimize celt_pitch_xcorr function (for floating point)
using ARM NEON intrinsics for SoCs that have NEON VFP unit.
To enable this optimization, use --enable-intrinsics
configure option.
Compile time and runtime checks are also supported to make sure
this optimization is only enabled when the compiler supports
NEON intrinsics.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
It was under-quoted in c95c9a048f, which
leads to a flood of warnings when it gets incorrectly expanded, like:
configure.ac:354: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
1. Only for fixed point on x86 platform (32bit and 64bit, uses SIMD
intrinsics up to SSE4.2)
2. Use "configure --enable-fixed-point --enable-intrinsics" to enable
optimization, default is disabled.
3. Official test cases are verified and passed.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
This allows building the arm assembly for iOS.
This checks for the __APPLE__ preprocessor built-in define to
determine whether this extra handling should be enabled.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
Breaks configure when /bin/sh isn't bash with:
configure: Trying to force-enable ARMv6 media instructions...
checking if assembler supports ARMv6 media instructions on ARM... yes
configure: Trying to force-enable NEON instructions...
checking if assembler supports NEON instructions on ARM... yes
./configure.lineno: 12799: Bad substitution
Fix it by using the %% expansion to remove everything from the first
space instead.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
This avoids at least one case where ./autogen.sh && ./configure && make
will re-run configure because the makefile rules updated something that
it depends upon. Pulling a new version from git will change the version
so we should update that at the first step rather than iterating after
the last one.
It only existed to not include -lm in the .pc for fixed point builds,
but that is still needed since the float API is still enabled and
will use at least lrint.
Drop the test for getopt, it's not used anywhere anymore.
Switch the last uses of AC_TRY_COMPILE to AC_COMPILE_IFELSE now.
The former is marked as obsolete, and this will leave no confusion
about which to cut and paste if new tests are added.
Double quote all the parameters to AC_LANG_SOURCE and AC_LANG_PROGRAM.
This is actually required, even if you can get away with not doing it
sometimes, so again set a good example for future changes to follow,
to hopefully avoid people getting bitten harder than they need to be.
Don't bother checking for alloca if we're never going to use it
(ie. if we have C99 variable-size array support).
The test for this is a bit sketchy anyway ... we separately test for
HAVE_ALLOCA_H and USE_ALLOCA, but the test for USE_ALLOCA depends upon
having alloca.h present, yet the use of these macros in stack_alloc.h
only tests for HAVE_ALLOCA_H inside of a test for USE_ALLOCA.
I'm not going to change this logic right now, since I don't know what
crazy system it was attempting to cater for, though I suspect it was
one that was not using the autoconf build system ... since with the
current test that combination should not be possible to obtain.
Use LT_LIB_M instead of the song and dance with testing for exp().
This should also work for BeOS which is what the exp test was added for.
It also means we don't unconditionally add -lm to everything via LIBS.
Use LIBM now instead of hardcoding -lm everywhere.
Use AS_HELP_STRING to format all option descriptions.
Don't bother to test for doxygen if using it is --disable'd.
Drop the SYMBOL_VISIBILITY export, it isn't used anywhere (we add the
compiler flag to CFLAGS).