diff options
author | 2016-02-25 21:55:03 +0000 | |
---|---|---|
committer | 2016-04-01 17:01:55 +0100 | |
commit | 61b28a17d9b6e8e998103646e98e4a9772e11927 (patch) | |
tree | 438c4a73f72423ddc71e6dca9f082d9e1d533996 /runtime/entrypoints/entrypoint_utils.cc | |
parent | cf0f8560f41467331427418584687830932e66ed (diff) |
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
Diffstat (limited to 'runtime/entrypoints/entrypoint_utils.cc')
-rw-r--r-- | runtime/entrypoints/entrypoint_utils.cc | 5 |
1 files changed, 4 insertions, 1 deletions
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); } } } |