diff options
author | Andreas Gampe <agampe@google.com> | 2014-08-12 23:19:23 -0700 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2014-08-22 21:20:08 -0700 |
commit | 53c913bb71b218714823c8c87a1f92830c336f61 (patch) | |
tree | 96aebfc9ae62eb1454b78286236567e2b6f3e5c7 /compiler/compiler.h | |
parent | e18aa4316eb9a15cd6b1051f27a1ce49967c170e (diff) | |
download | android_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.h | 15 |
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) { |