summaryrefslogtreecommitdiff
path: root/compiler/compiler.h
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/compiler.h')
-rw-r--r--compiler/compiler.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/compiler/compiler.h b/compiler/compiler.h
index 4caebf32cd..05fa8587fc 100644
--- a/compiler/compiler.h
+++ b/compiler/compiler.h
@@ -26,13 +26,19 @@ class Backend;
struct CompilationUnit;
class CompilerDriver;
class CompiledMethod;
-class MIRGraph;
class OatWriter;
namespace mirror {
class ArtMethod;
}
+// Base class for compiler-specific thread-local storage for compiler worker threads
+class CompilerTls {
+ public:
+ CompilerTls() {}
+ ~CompilerTls() {}
+};
+
class Compiler {
public:
enum Kind {
@@ -47,6 +53,9 @@ class Compiler {
virtual void UnInit() const = 0;
+ virtual bool CanCompileMethod(uint32_t method_idx, const DexFile& dex_file, CompilationUnit* cu)
+ const = 0;
+
virtual CompiledMethod* Compile(const DexFile::CodeItem* code_item,
uint32_t access_flags,
InvokeType invoke_type,
@@ -109,6 +118,10 @@ class Compiler {
return nullptr;
}
+ virtual CompilerTls* CreateNewCompilerTls() {
+ return nullptr;
+ }
+
protected:
explicit Compiler(CompilerDriver* driver, uint64_t warning) :
driver_(driver), maximum_compilation_time_before_warning_(warning) {