diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2014-03-18 17:59:20 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2014-03-19 08:47:01 +0000 |
commit | 92cf83e001357329cbf41fa15a6e053fab6f4933 (patch) | |
tree | 1dc03f1fb8c3f9af4021c1b82f0c5b0baee39600 /compiler/optimizing/optimizing_compiler.cc | |
parent | a48850ba1f48066785768d2dd296448cd430d494 (diff) | |
download | art-92cf83e001357329cbf41fa15a6e053fab6f4933.zip art-92cf83e001357329cbf41fa15a6e053fab6f4933.tar.gz art-92cf83e001357329cbf41fa15a6e053fab6f4933.tar.bz2 |
Run Java tests with the optimizing compiler.
Also fix a vector.reserve -> vector.resize braino, and build
a GC map that dex2oat expects.
Change-Id: I6acf2f90a4c32f90b79bf7709bf2e43931b98757
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index cc36bbe..334b185 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -20,6 +20,7 @@ #include "code_generator.h" #include "compilers.h" #include "driver/compiler_driver.h" +#include "driver/dex_compilation_unit.h" #include "nodes.h" #include "utils/arena_allocator.h" @@ -34,12 +35,12 @@ class CodeVectorAllocator FINAL : public CodeAllocator { virtual uint8_t* Allocate(size_t size) { size_ = size; - memory_.reserve(size); + memory_.resize(size); return &memory_[0]; } size_t GetSize() const { return size_; } - std::vector<uint8_t>* GetMemory() { return &memory_; } + const std::vector<uint8_t>& GetMemory() const { return memory_; } private: std::vector<uint8_t> memory_; @@ -57,6 +58,10 @@ CompiledMethod* OptimizingCompiler::TryCompile(CompilerDriver& driver, uint32_t method_idx, jobject class_loader, const DexFile& dex_file) const { + DexCompilationUnit dex_compilation_unit( + nullptr, class_loader, art::Runtime::Current()->GetClassLinker(), dex_file, code_item, + class_def_idx, method_idx, access_flags, driver.GetVerifiedMethod(&dex_file, method_idx)); + ArenaPool pool; ArenaAllocator arena(&pool); HGraphBuilder builder(&arena); @@ -79,11 +84,11 @@ CompiledMethod* OptimizingCompiler::TryCompile(CompilerDriver& driver, std::vector<uint8_t> vmap_table; codegen->BuildVMapTable(&vmap_table); std::vector<uint8_t> gc_map; - codegen->BuildNativeGCMap(&gc_map); + codegen->BuildNativeGCMap(&gc_map, dex_compilation_unit); return new CompiledMethod(driver, instruction_set, - *allocator.GetMemory(), + allocator.GetMemory(), codegen->GetFrameSize(), 0, /* GPR spill mask, unused */ 0, /* FPR spill mask, unused */ |