diff options
author | Andreas Gampe <agampe@google.com> | 2014-12-08 16:59:43 -0800 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2014-12-22 10:01:27 -0800 |
commit | e21dc3db191df04c100620965bee4617b3b24397 (patch) | |
tree | 2ad762c6afb024bf95e1eced3d584649a4d57d23 /compiler/jni | |
parent | 6d1a047b4b3f9707d4ee1cc19e99717ee021ef48 (diff) | |
download | art-e21dc3db191df04c100620965bee4617b3b24397.zip art-e21dc3db191df04c100620965bee4617b3b24397.tar.gz art-e21dc3db191df04c100620965bee4617b3b24397.tar.bz2 |
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
Diffstat (limited to 'compiler/jni')
-rw-r--r-- | compiler/jni/quick/jni_compiler.cc | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/compiler/jni/quick/jni_compiler.cc b/compiler/jni/quick/jni_compiler.cc index c3fe75b..bf996a2 100644 --- a/compiler/jni/quick/jni_compiler.cc +++ b/compiler/jni/quick/jni_compiler.cc @@ -430,13 +430,18 @@ CompiledMethod* ArtJniCompileMethodInternal(CompilerDriver* driver, MemoryRegion code(&managed_code[0], managed_code.size()); __ FinalizeInstructions(code); jni_asm->FinalizeFrameDescriptionEntry(); - return new CompiledMethod(driver, - instruction_set, - managed_code, - frame_size, - main_jni_conv->CoreSpillMask(), - main_jni_conv->FpSpillMask(), - jni_asm->GetFrameDescriptionEntry()); + std::vector<uint8_t>* fde(jni_asm->GetFrameDescriptionEntry()); + ArrayRef<const uint8_t> cfi_ref; + if (fde != nullptr) { + cfi_ref = ArrayRef<const uint8_t>(*fde); + } + return CompiledMethod::SwapAllocCompiledMethodCFI(driver, + instruction_set, + ArrayRef<const uint8_t>(managed_code), + frame_size, + main_jni_conv->CoreSpillMask(), + main_jni_conv->FpSpillMask(), + cfi_ref); } // Copy a single parameter from the managed to the JNI calling convention |