Optimizing: Reduce arena memory used by GraphChecker.
Use member variables to reuse the storage instead of
repeatedly allocating new storage for local variables.
Bug: 27690481
Change-Id: I614db9b8614d585653cfbff62e9cf7d7f0c58810
diff --git a/compiler/optimizing/graph_checker.h b/compiler/optimizing/graph_checker.h
index 27d5621..a536b30 100644
--- a/compiler/optimizing/graph_checker.h
+++ b/compiler/optimizing/graph_checker.h
@@ -33,7 +33,9 @@
seen_ids_(graph->GetArena(),
graph->GetCurrentInstructionId(),
false,
- kArenaAllocGraphChecker) {}
+ kArenaAllocGraphChecker),
+ blocks_storage_(graph->GetArena()->Adapter(kArenaAllocGraphChecker)),
+ visited_storage_(graph->GetArena(), 0u, true, kArenaAllocGraphChecker) {}
// Check the whole graph (in reverse post-order).
void Run() {
@@ -102,6 +104,10 @@
const char* const dump_prefix_;
ArenaBitVector seen_ids_;
+ // To reduce the total arena memory allocation, we reuse the same storage.
+ ArenaVector<HBasicBlock*> blocks_storage_;
+ ArenaBitVector visited_storage_;
+
DISALLOW_COPY_AND_ASSIGN(GraphChecker);
};