From e21dc3db191df04c100620965bee4617b3b24397 Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Mon, 8 Dec 2014 16:59:43 -0800 Subject: ART: Swap-space in the compiler Introduce a swap-space and corresponding allocator to transparently switch native allocations to memory backed by a file. Bug: 18596910 (cherry picked from commit 62746d8d9c4400e4764f162b22bfb1a32be287a9) Change-Id: I131448f3907115054a592af73db86d2b9257ea33 --- compiler/dex/quick/codegen_util.cc | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'compiler/dex/quick/codegen_util.cc') diff --git a/compiler/dex/quick/codegen_util.cc b/compiler/dex/quick/codegen_util.cc index cc61e93d82..67ea8972b7 100644 --- a/compiler/dex/quick/codegen_util.cc +++ b/compiler/dex/quick/codegen_util.cc @@ -1086,12 +1086,20 @@ CompiledMethod* Mir2Lir::GetCompiledMethod() { }); std::unique_ptr> cfi_info(ReturnFrameDescriptionEntry()); - CompiledMethod* result = - new CompiledMethod(cu_->compiler_driver, cu_->instruction_set, code_buffer_, frame_size_, - core_spill_mask_, fp_spill_mask_, &src_mapping_table_, encoded_mapping_table_, - vmap_encoder.GetData(), native_gc_map_, cfi_info.get(), - ArrayRef(patches_)); - return result; + ArrayRef cfi_ref; + if (cfi_info.get() != nullptr) { + cfi_ref = ArrayRef(*cfi_info); + } + return CompiledMethod::SwapAllocCompiledMethod( + cu_->compiler_driver, cu_->instruction_set, + ArrayRef(code_buffer_), + frame_size_, core_spill_mask_, fp_spill_mask_, + &src_mapping_table_, + ArrayRef(encoded_mapping_table_), + ArrayRef(vmap_encoder.GetData()), + ArrayRef(native_gc_map_), + cfi_ref, + ArrayRef(patches_)); } size_t Mir2Lir::GetMaxPossibleCompilerTemps() const { -- cgit v1.2.3-59-g8ed1b