OSDN Git Service

Move saved SSA map to ScopedArenaAllocator to save memory.
authorVladimir Marko <vmarko@google.com>
Fri, 21 Mar 2014 17:10:58 +0000 (17:10 +0000)
committerVladimir Marko <vmarko@google.com>
Fri, 21 Mar 2014 17:10:58 +0000 (17:10 +0000)
Bug: 13564922
Change-Id: I917d451267ca6fceb2f6b2ff33b872ee8c209893

compiler/dex/ssa_transformation.cc

index dab98d9..5f89c21 100644 (file)
@@ -621,8 +621,9 @@ void MIRGraph::DoDFSPreOrderSSARename(BasicBlock* block) {
   int map_size = sizeof(int) * cu_->num_dalvik_registers;
 
   /* Save SSA map snapshot */
+  ScopedArenaAllocator allocator(&cu_->arena_stack);
   int* saved_ssa_map =
-      static_cast<int*>(arena_->Alloc(map_size, kArenaAllocDalvikToSSAMap));
+      static_cast<int*>(allocator.Alloc(map_size, kArenaAllocDalvikToSSAMap));
   memcpy(saved_ssa_map, vreg_to_ssa_map_, map_size);
 
   if (block->fall_through != NullBasicBlockId) {
@@ -648,7 +649,6 @@ void MIRGraph::DoDFSPreOrderSSARename(BasicBlock* block) {
       memcpy(vreg_to_ssa_map_, saved_ssa_map, map_size);
     }
   }
-  vreg_to_ssa_map_ = saved_ssa_map;
   return;
 }