Early inlining of simple methods.
Inlining "special" methods: empty methods, methods returning
constants or their arguments, simple getters and setters.
Bug: 8164439
Change-Id: I8c7fa9c14351fbb2470000b378a22974daaef236
diff --git a/compiler/dex/mir_graph.h b/compiler/dex/mir_graph.h
index 036dd84..fd25798 100644
--- a/compiler/dex/mir_graph.h
+++ b/compiler/dex/mir_graph.h
@@ -522,6 +522,8 @@
return method_lowering_infos_.GetRawStorage()[mir->meta.method_lowering_info];
}
+ void ComputeInlineIFieldLoweringInfo(uint16_t field_idx, MIR* invoke, MIR* iget_or_iput);
+
void InitRegLocations();
void RemapRegLocations();
@@ -811,6 +813,11 @@
BasicBlock* NextDominatedBlock(BasicBlock* bb);
bool LayoutBlocks(BasicBlock* bb);
+ bool InlineCallsGate();
+ void InlineCallsStart();
+ void InlineCalls(BasicBlock* bb);
+ void InlineCallsEnd();
+
/**
* @brief Perform the initial preparation for the Method Uses.
*/