Cache method lowering info in mir graph.
This should enable easy inlining checks. It should also
improve compilation time of methods that call the same
methods over and over - it is exactly such methods that
tend to exceed our 100ms time limit.
Change-Id: If01cd18e039071a74a1444570283c153429c9cd4
diff --git a/compiler/dex/mir_graph.cc b/compiler/dex/mir_graph.cc
index 868730f..0b50e2f 100644
--- a/compiler/dex/mir_graph.cc
+++ b/compiler/dex/mir_graph.cc
@@ -89,7 +89,8 @@
max_available_non_special_compiler_temps_(0),
punt_to_interpreter_(false),
ifield_lowering_infos_(arena, 0u),
- sfield_lowering_infos_(arena, 0u) {
+ sfield_lowering_infos_(arena, 0u),
+ method_lowering_infos_(arena, 0u) {
try_block_addr_ = new (arena_) ArenaBitVector(arena_, 0, true /* expandable */);
max_available_special_compiler_temps_ = std::abs(static_cast<int>(kVRegNonSpecialTempBaseReg))
- std::abs(static_cast<int>(kVRegTempBaseReg));
@@ -1176,6 +1177,7 @@
info->is_range = is_range;
info->index = mir->dalvikInsn.vB;
info->offset = mir->offset;
+ info->mir = mir;
return info;
}