[llvm-commits] CVS: llvm/lib/ExecutionEngine/JIT/JIT.h TargetSelect.cpp
Reid Spencer
reid at x10sys.com
Sat Mar 3 10:19:40 PST 2007
Changes in directory llvm/lib/ExecutionEngine/JIT:
JIT.h updated: 1.30 -> 1.31
TargetSelect.cpp updated: 1.13 -> 1.14
---
Log message:
Deal with error handling better.
---
Diffs of the changes: (+10 -3)
JIT.h | 2 +-
TargetSelect.cpp | 11 +++++++++--
2 files changed, 10 insertions(+), 3 deletions(-)
Index: llvm/lib/ExecutionEngine/JIT/JIT.h
diff -u llvm/lib/ExecutionEngine/JIT/JIT.h:1.30 llvm/lib/ExecutionEngine/JIT/JIT.h:1.31
--- llvm/lib/ExecutionEngine/JIT/JIT.h:1.30 Fri Feb 23 20:57:03 2007
+++ llvm/lib/ExecutionEngine/JIT/JIT.h Sat Mar 3 12:19:18 2007
@@ -71,7 +71,7 @@
/// create - Create an return a new JIT compiler if there is one available
/// for the current target. Otherwise, return null.
///
- static ExecutionEngine *create(ModuleProvider *MP);
+ static ExecutionEngine *create(ModuleProvider *MP, std::string* = 0);
/// run - Start execution with the specified function and arguments.
///
Index: llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
diff -u llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp:1.13 llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp:1.14
--- llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp:1.13 Thu Dec 7 14:04:42 2006
+++ llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp Sat Mar 3 12:19:18 2007
@@ -38,11 +38,15 @@
/// 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 @@
// 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;
}
More information about the llvm-commits
mailing list