Set FTZ and DAZ flags by default for all JACK client threads.

pull/116/head
Jonathan Moore Liles 2013-08-09 17:41:11 -07:00
parent dd21a18c81
commit fab76b1c4f
2 changed files with 53 additions and 39 deletions

View File

@ -26,7 +26,9 @@
#include "debug.h"
#ifdef __SSE2_MATH__
#include <xmmintrin.h>
#endif
namespace JACK
{
@ -113,6 +115,11 @@ namespace JACK
void
Client::thread_init ( void *arg )
{
#if __SSE2_MATH__
/* set FTZ and DAZ flags */
_mm_setcsr(_mm_getcsr() | 0x8040);
#endif
((Client*)arg)->thread_init();
}

83
wscript
View File

@ -19,6 +19,8 @@ def options(opt):
# help="Link to system-installed shared NTK instead of bundled version")
opt.add_option('--enable-debug', action='store_true', default=False, dest='debug',
help='Build for debugging')
opt.add_option('--disable-sse', action='store_false', default=True, dest='sse',
help='Disable SSE optimization')
opt.add_option('--project', action='store', default=False, dest='project',
help='Limit build to a single project (' + ', '.join( projects ) + ')')
@ -33,43 +35,6 @@ def configure(conf):
conf.load('gccdeps')
conf.line_just = 52
optimization_flags = [
"-O3",
"-fomit-frame-pointer",
"-ffast-math",
"-msse",
"-mfpmath=sse",
"-ftree-vectorize",
# "-fstrength-reduce",
"-pipe"
]
debug_flags = [ '-O0', '-g3' ]
if Options.options.debug:
conf.env.append_value('CFLAGS', debug_flags )
conf.env.append_value('CXXFLAGS', debug_flags )
else:
conf.env.append_value('CFLAGS', optimization_flags )
conf.env.append_value('CXXFLAGS', optimization_flags )
conf.define( 'NDEBUG', 1 )
conf.define( "_GNU_SOURCE", 1)
conf.env.append_value('CFLAGS',['-Wall'])
# conf.env.append_value('CXXFLAGS',['-Wall','-fno-exceptions', '-fno-rtti'])
conf.env.append_value('CXXFLAGS',['-Wall','-fno-rtti'])
global_flags = [ '-pthread',
'-D_LARGEFILE64_SOURCE',
'-D_FILE_OFFSET_BITS=64',
'-D_GNU_SOURCE' ]
conf.env.append_value('CFLAGS', global_flags )
conf.env.append_value('CXXFLAGS', global_flags )
conf.env['LIB_PTHREAD'] = ['pthread']
conf.env['LIB_DL'] = ['dl']
conf.env['LIB_M'] = ['m']
@ -95,12 +60,54 @@ def configure(conf):
conf.check_cfg(package='liblo', uselib_store='LIBLO',args="--cflags --libs",
atleast_version='0.26', mandatory=True)
###
for i in common:
conf.recurse(i)
optimization_flags = [
"-O3",
"-fomit-frame-pointer",
"-ffast-math",
"-pipe"
]
if Options.options.sse:
print('Using SSE optimization')
optimization_flags.extend( [
"-msse2",
"-mfpmath=sse",
"-ftree-vectorize" ] )
conf.define( 'USE_SSE', 1 )
debug_flags = [ '-O0', '-g3' ]
if Options.options.debug:
print('Building for debugging')
conf.env.append_value('CFLAGS', debug_flags )
conf.env.append_value('CXXFLAGS', debug_flags )
else:
print('Building for performance')
conf.env.append_value('CFLAGS', optimization_flags )
conf.env.append_value('CXXFLAGS', optimization_flags )
conf.define( 'NDEBUG', 1 )
conf.define( "_GNU_SOURCE", 1)
conf.env.append_value('CFLAGS',['-Wall'])
# conf.env.append_value('CXXFLAGS',['-Wall','-fno-exceptions', '-fno-rtti'])
conf.env.append_value('CXXFLAGS',['-Wall','-fno-rtti'])
global_flags = [ '-pthread',
'-D_LARGEFILE64_SOURCE',
'-D_FILE_OFFSET_BITS=64',
'-D_GNU_SOURCE' ]
conf.env.append_value('CFLAGS', global_flags )
conf.env.append_value('CXXFLAGS', global_flags )
conf.env.PROJECT = conf.options.project
if conf.env.PROJECT: