summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-03-03 18:19:18 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-03-03 18:19:18 +0000
commit603682ad1d5f422b5565b8d29cd08bb28f8a8edb (patch)
treed1cd766ae01d3e2512e4b934108046621e1e590f /llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
parent30ed3bdaf21b4928bb2d73a3cd176dc679c9d796 (diff)
downloadbcm5719-llvm-603682ad1d5f422b5565b8d29cd08bb28f8a8edb.tar.gz
bcm5719-llvm-603682ad1d5f422b5565b8d29cd08bb28f8a8edb.zip
Deal with error handling better.
llvm-svn: 34887
Diffstat (limited to 'llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp b/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
index c30f88c572e..30fd2fae4bc 100644
--- a/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
+++ b/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
@@ -38,11 +38,15 @@ MAttrs("mattr",
/// create - Create an return a new JIT compiler if there is one available
/// for the current target. Otherwise, return null.
///
-ExecutionEngine *JIT::create(ModuleProvider *MP) {
+ExecutionEngine *JIT::create(ModuleProvider *MP, std::string *ErrorStr) {
if (MArch == 0) {
std::string Error;
MArch = TargetMachineRegistry::getClosestTargetForJIT(Error);
- if (MArch == 0) return 0;
+ if (MArch == 0) {
+ if (ErrorStr)
+ *ErrorStr = Error;
+ return 0;
+ }
} else if (MArch->JITMatchQualityFn() == 0) {
cerr << "WARNING: This target JIT is not designed for the host you are"
<< " running. If bad things happen, please choose a different "
@@ -66,5 +70,8 @@ ExecutionEngine *JIT::create(ModuleProvider *MP) {
// If the target supports JIT code generation, return a new JIT now.
if (TargetJITInfo *TJ = Target->getJITInfo())
return new JIT(MP, *Target, *TJ);
+
+ if (ErrorStr)
+ *ErrorStr = "target does not support JIT code generation";
return 0;
}
OpenPOWER on IntegriCloud