From 952dfcd6108dc14e310be28a60bd2902457afb93 Mon Sep 17 00:00:00 2001 From: nakeee Date: Sun, 4 Jan 2009 10:20:38 +0000 Subject: [PATCH] Some code cleanup + added scons flavor=prof git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1763 8ced0084-cf51-0410-be5f-012b33b47a6e --- SConstruct | 28 +++++++++++++++---- .../Core/Core/Src/PowerPC/Jit64/JitCache.cpp | 12 ++++---- .../Core/Src/PowerPC/Jit64IL/JitCache.cpp | 12 ++++---- 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/SConstruct b/SConstruct index 843e5fbf78..c170d54105 100644 --- a/SConstruct +++ b/SConstruct @@ -101,7 +101,7 @@ vars.AddVariables( BoolVariable('gltest', 'temp don\'t use (WIP)', False), BoolVariable('jittest', 'temp don\'t use (WIP)', False), EnumVariable('flavor', 'Choose a build flavor', 'release', - allowed_values = ('release', 'devel', 'debug', 'fastlog'), + allowed_values = ('release', 'devel', 'debug', 'fastlog', 'prof'), ignorecase = 2 ), EnumVariable('osx', 'Choose a backend (WIP)', '32cocoa', @@ -117,6 +117,7 @@ vars.AddVariables( env = Environment( CPPPATH = include_paths, LIBPATH = lib_paths, + RPATH = [], variables = vars, ENV = { 'PATH' : os.environ['PATH'], @@ -147,6 +148,7 @@ if not env['verbose']: env['RANLIBCOMSTR'] = "Indexing $TARGET" + # build falvuor flavour = ARGUMENTS.get('flavor') if (flavour == 'debug'): @@ -155,14 +157,16 @@ if (flavour == 'debug'): cppDefines.append('_DEBUG') # FIXME: this disable wx debugging how do we make it work? cppDefines.append('NDEBUG') - elif (flavour == 'devel'): compileFlags.append('-g') cppDefines.append('DEBUGFAST') elif (flavour == 'fastlog'): compileFlags.append('-O3') cppDefines.append('LOGGING') -else: +elif (flavour == 'prof'): + compileFlags.append('-O3') + compileFlags.append('-g') +elif (flavour == 'release'): compileFlags.append('-O3') # more warnings @@ -261,6 +265,18 @@ conf.Define('USE_WX', env['USE_WX']) conf.Define('HAVE_X11', env['HAVE_X11']) conf.Define('HAVE_COCOA', env['HAVE_COCOA']) + +# profile +env['USE_OPROFILE'] = 0 +if (flavour == 'prof'): + env['LIBPATH'] += [ '/usr/lib/oprofile' ] + env['RPATH'] += [ '/usr/lib/oprofile' ] + if conf.CheckPKG('opagent'): + env['USE_OPROFILE'] = 1 + else: + print "Can't build prof without oprofile, disabling" + +conf.Define('USE_OPROFILE', env['USE_OPROFILE']) # After all configuration tests are done conf.Finish() @@ -278,8 +294,10 @@ env['base_dir'] = os.getcwd()+ '/'; # install paths extra='' -if env['flavor'] == 'debug': +if flavour == 'debug': extra = '-debug' +elif flavour == 'prof': + extra = '-prof' # TODO: support global install env['prefix'] = os.path.join(env['base_dir'] + 'Binary', platform.system() + '-' + platform.machine() + extra +os.sep) @@ -292,7 +310,7 @@ env['libs_dir'] = env['prefix'] + 'Libs/' #TODO where should this go? env['data_dir'] = env['prefix'] -env['RPATH'] = env['libs_dir'] +env['RPATH'] += env['libs_dir'] env['LIBPATH'] += [ env['libs_dir'] ] diff --git a/Source/Core/Core/Src/PowerPC/Jit64/JitCache.cpp b/Source/Core/Core/Src/PowerPC/Jit64/JitCache.cpp index 932737f9f6..6d3871d3bd 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/JitCache.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/JitCache.cpp @@ -22,8 +22,6 @@ // performance hit, it's not enabled by default, but it's useful for // locating performance issues. -//#define OPROFILE_REPORT - #include "Common.h" #include "../../Core.h" #include "MemoryUtil.h" @@ -44,11 +42,11 @@ #include "disasm.h" -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE #include #endif -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE op_agent_t agent; #endif @@ -76,7 +74,7 @@ bool JitBlock::ContainsAddress(u32 em_address) MAX_NUM_BLOCKS = 65536*8; } -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE agent = op_open_agent(); #endif blocks = new JitBlock[MAX_NUM_BLOCKS]; @@ -92,7 +90,7 @@ bool JitBlock::ContainsAddress(u32 em_address) blocks = 0; blockCodePointers = 0; num_blocks = 0; -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE op_close_agent(agent); #endif } @@ -184,7 +182,7 @@ bool JitBlock::ContainsAddress(u32 em_address) LinkBlockExits(block_num); } -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE char buf[100]; sprintf(buf, "EmuCode%x", b.originalAddress); const u8* blockStart = blockCodePointers[block_num]; diff --git a/Source/Core/Core/Src/PowerPC/Jit64IL/JitCache.cpp b/Source/Core/Core/Src/PowerPC/Jit64IL/JitCache.cpp index 932737f9f6..6d3871d3bd 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64IL/JitCache.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64IL/JitCache.cpp @@ -22,8 +22,6 @@ // performance hit, it's not enabled by default, but it's useful for // locating performance issues. -//#define OPROFILE_REPORT - #include "Common.h" #include "../../Core.h" #include "MemoryUtil.h" @@ -44,11 +42,11 @@ #include "disasm.h" -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE #include #endif -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE op_agent_t agent; #endif @@ -76,7 +74,7 @@ bool JitBlock::ContainsAddress(u32 em_address) MAX_NUM_BLOCKS = 65536*8; } -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE agent = op_open_agent(); #endif blocks = new JitBlock[MAX_NUM_BLOCKS]; @@ -92,7 +90,7 @@ bool JitBlock::ContainsAddress(u32 em_address) blocks = 0; blockCodePointers = 0; num_blocks = 0; -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE op_close_agent(agent); #endif } @@ -184,7 +182,7 @@ bool JitBlock::ContainsAddress(u32 em_address) LinkBlockExits(block_num); } -#ifdef OPROFILE_REPORT +#if defined USE_OPROFILE && USE_OPROFILE char buf[100]; sprintf(buf, "EmuCode%x", b.originalAddress); const u8* blockStart = blockCodePointers[block_num];