diff options
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) { |