summaryrefslogtreecommitdiffstats
path: root/compiler/compiler.h
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2014-08-12 23:19:23 -0700
committerAndreas Gampe <agampe@google.com>2014-08-22 21:20:08 -0700
commit53c913bb71b218714823c8c87a1f92830c336f61 (patch)
tree96aebfc9ae62eb1454b78286236567e2b6f3e5c7 /compiler/compiler.h
parente18aa4316eb9a15cd6b1051f27a1ce49967c170e (diff)
downloadandroid_art-53c913bb71b218714823c8c87a1f92830c336f61.tar.gz
android_art-53c913bb71b218714823c8c87a1f92830c336f61.tar.bz2
android_art-53c913bb71b218714823c8c87a1f92830c336f61.zip
ART: Clean up compiler
Clean up the compiler: less extern functions, dis-entangle compilers, hide some compiler specifics, lower global includes. Change-Id: Ibaf88d02505d86994d7845cf0075be5041cc8438
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) {