summaryrefslogtreecommitdiffstats
path: root/vm/compiler/Compiler.h
diff options
context:
space:
mode:
authorBill Buzbee <buzbee@google.com>2010-03-06 23:30:57 -0800
committerBill Buzbee <buzbee@google.com>2010-03-07 08:24:00 -0800
commitfc519dc8f4444f6d93806ec15ce7445b322070fd (patch)
tree7128bbc741b5125cbe85300e1cd264ab3aca6bde /vm/compiler/Compiler.h
parent164d1279b67ec13061e473cb453b1ff24189e0e0 (diff)
downloadandroid_dalvik-fc519dc8f4444f6d93806ec15ce7445b322070fd.tar.gz
android_dalvik-fc519dc8f4444f6d93806ec15ce7445b322070fd.tar.bz2
android_dalvik-fc519dc8f4444f6d93806ec15ce7445b322070fd.zip
Jit: Make most Jit compile failures non-fatal; just abort offending translation
Issue 2175597 Jit compile failures should abort translation, but not the VM Added new dvmCompileAbort() to replace uses of dvmAbort() when something goes wrong during the compliation of a trace. In that case, we'll abort the translation and set it's head to the interpret-only "translation".
Diffstat (limited to 'vm/compiler/Compiler.h')
-rw-r--r--vm/compiler/Compiler.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/vm/compiler/Compiler.h b/vm/compiler/Compiler.h
index 932f41d8e..21c86abb8 100644
--- a/vm/compiler/Compiler.h
+++ b/vm/compiler/Compiler.h
@@ -15,6 +15,7 @@
*/
#include <Thread.h>
+#include <setjmp.h>
#ifndef _DALVIK_VM_COMPILER
#define _DALVIK_VM_COMPILER
@@ -56,6 +57,7 @@ typedef struct CompilerWorkOrder {
WorkOrderKind kind;
void* info;
JitTranslationInfo result;
+ jmp_buf *bailPtr;
} CompilerWorkOrder;
/* Chain cell for predicted method invocation */
@@ -152,7 +154,7 @@ bool dvmCompilerWorkEnqueue(const u2* pc, WorkOrderKind kind, void* info);
void *dvmCheckCodeCache(void *method);
bool dvmCompileMethod(const Method *method, JitTranslationInfo *info);
bool dvmCompileTrace(JitTraceDescription *trace, int numMaxInsts,
- JitTranslationInfo *info);
+ JitTranslationInfo *info, jmp_buf *bailPtr);
void dvmCompilerDumpStats(void);
void dvmCompilerDrainQueue(void);
void dvmJitUnchainAll(void);
@@ -184,5 +186,4 @@ void dvmCompilerDataFlowAnalysisDispatcher(struct CompilationUnit *cUnit,
void dvmCompilerStateRefresh(void);
JitTraceDescription *dvmCopyTraceDescriptor(const u2 *pc,
const struct JitEntry *desc);
-
#endif /* _DALVIK_VM_COMPILER */