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
|
extern void
|
||||||
lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE);
|
lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE);
|
||||||
|
|
||||||
|
extern void
|
||||||
|
lp_set_target_options(void);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
lp_build_init(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 );
|
gallivm_debug = debug_get_flags_option("GALLIVM_DEBUG", lp_bld_debug_flags, 0 );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
lp_set_target_options();
|
||||||
|
|
||||||
LLVMInitializeNativeTarget();
|
LLVMInitializeNativeTarget();
|
||||||
|
|
||||||
LLVMLinkInJIT();
|
LLVMLinkInJIT();
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
|
|
||||||
#include <llvm-c/Core.h>
|
#include <llvm-c/Core.h>
|
||||||
#include <llvm-c/ExecutionEngine.h>
|
#include <llvm-c/ExecutionEngine.h>
|
||||||
|
#include <llvm/Target/TargetOptions.h>
|
||||||
#include <llvm/ExecutionEngine/ExecutionEngine.h>
|
#include <llvm/ExecutionEngine/ExecutionEngine.h>
|
||||||
#include <llvm/ExecutionEngine/JITEventListener.h>
|
#include <llvm/ExecutionEngine/JITEventListener.h>
|
||||||
|
|
||||||
|
@ -119,3 +120,28 @@ lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE)
|
||||||
{
|
{
|
||||||
llvm::unwrap(EE)->RegisterJITEventListener(llvm::createOProfileJITEventListener());
|
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