gallivm: Override some of the default target options.
In particular: - enable LLVM <-> GDB integration for JIT code - disable frame-pointer elimination on debug/profile builds - enable fast-math.
This commit is contained in:
parent
21a9ef12bf
commit
4d2407699b
|
@ -78,6 +78,9 @@ enum LLVM_CodeGenOpt_Level {
|
|||
extern void
|
||||
lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE);
|
||||
|
||||
extern void
|
||||
lp_set_target_options(void);
|
||||
|
||||
|
||||
void
|
||||
lp_build_init(void)
|
||||
|
@ -86,6 +89,8 @@ lp_build_init(void)
|
|||
gallivm_debug = debug_get_flags_option("GALLIVM_DEBUG", lp_bld_debug_flags, 0 );
|
||||
#endif
|
||||
|
||||
lp_set_target_options();
|
||||
|
||||
LLVMInitializeNativeTarget();
|
||||
|
||||
LLVMLinkInJIT();
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include <llvm-c/Core.h>
|
||||
#include <llvm-c/ExecutionEngine.h>
|
||||
#include <llvm/Target/TargetOptions.h>
|
||||
#include <llvm/ExecutionEngine/ExecutionEngine.h>
|
||||
#include <llvm/ExecutionEngine/JITEventListener.h>
|
||||
|
||||
|
@ -119,3 +120,28 @@ lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE)
|
|||
{
|
||||
llvm::unwrap(EE)->RegisterJITEventListener(llvm::createOProfileJITEventListener());
|
||||
}
|
||||
|
||||
|
||||
extern "C" void
|
||||
lp_set_target_options(void)
|
||||
{
|
||||
#if defined(DEBUG)
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
llvm::JITEmitDebugInfo = true;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG) || defined(PROFILE)
|
||||
llvm::NoFramePointerElim = true;
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
llvm::NoFramePointerElimNonLeaf = true;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
llvm::NoExcessFPPrecision = false;
|
||||
|
||||
/* XXX: Investigate this */
|
||||
#if 0
|
||||
llvm::UnsafeFPMath = true;
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue