From 61b28a17d9b6e8e998103646e98e4a9772e11927 Mon Sep 17 00:00:00 2001 From: David Srbecky Date: Thu, 25 Feb 2016 21:55:03 +0000 Subject: Use bit-level packing for InlineInfo in stackmaps as well. Use the same approach as we do for stackmaps to reduce the size. It saves 4.0 MB from non-debuggable boot.oat (AOSP). It does not affect debuggable boot.oat. It saves 3.6 MB (of 96.6 MB) from /system/framework/arm/ (GOOG). It saves 0.6 MB (of 26.7 MB) from /system/framework/oat/arm/ (GOOG). Field loads from inline-info get around 5% slower. (based on the time it takes to load all inline-infos from boot.oat) Change-Id: I67b0fa5eef74c1fdb013680d0231fd44ea696176 --- runtime/entrypoints/entrypoint_utils.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'runtime/entrypoints/entrypoint_utils.cc') diff --git a/runtime/entrypoints/entrypoint_utils.cc b/runtime/entrypoints/entrypoint_utils.cc index 336841145b..e46576e884 100644 --- a/runtime/entrypoints/entrypoint_utils.cc +++ b/runtime/entrypoints/entrypoint_utils.cc @@ -280,7 +280,10 @@ ArtMethod* GetCalleeSaveMethodCaller(ArtMethod** sp, DCHECK(stack_map.IsValid()); if (stack_map.HasInlineInfo(encoding.stack_map_encoding)) { InlineInfo inline_info = code_info.GetInlineInfoOf(stack_map, encoding); - caller = GetResolvedMethod(outer_method, inline_info, inline_info.GetDepth() - 1); + caller = GetResolvedMethod(outer_method, + inline_info, + encoding.inline_info_encoding, + inline_info.GetDepth(encoding.inline_info_encoding) - 1); } } } -- cgit v1.2.3-59-g8ed1b