diff options
author | David Srbecky <dsrbecky@google.com> | 2019-05-26 00:10:25 +0100 |
---|---|---|
committer | David Srbecky <dsrbecky@google.com> | 2019-05-26 23:47:47 +0000 |
commit | e42a4b95eed312e6f7019645f4c66b2d77254433 (patch) | |
tree | dd150dd4651180c5fbba3a4fd90f8ca8a3f14e9d /compiler/optimizing/stack_map_stream.h | |
parent | 67ba872df798271d2960be27c7f1e813259feabc (diff) |
Optimize stack maps: add fast path for no inline info.
Consumers of CodeInfo can skip significant chunks of work
if they can quickly determine that method has no inlining.
Store this fact as a flag bit at the start of code info.
This changes binary format and adds <0.1% to oat size.
I added the extra flag field as the simplest solution for now,
although I would like to use it for more things in the future.
(e.g. store the special cases of empty/deduped tables in it)
This improves app startup by 0.4% (maps,speed).
PMD on golem seems to gets around 15% faster.
Bug: 133257467
Test: ./art/test.py -b --host --64
Change-Id: Ia498a31bafc74b51cc95b8c70cf1da4b0e3d894e
Diffstat (limited to 'compiler/optimizing/stack_map_stream.h')
-rw-r--r-- | compiler/optimizing/stack_map_stream.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/optimizing/stack_map_stream.h b/compiler/optimizing/stack_map_stream.h index 01c6bf9e0e..20dd32e308 100644 --- a/compiler/optimizing/stack_map_stream.h +++ b/compiler/optimizing/stack_map_stream.h @@ -99,6 +99,7 @@ class StackMapStream : public DeletableArenaObject<kArenaAllocStackMapStream> { ScopedArenaAllocator* allocator_; const InstructionSet instruction_set_; + uint32_t flags_ = 0; uint32_t packed_frame_size_ = 0; uint32_t core_spill_mask_ = 0; uint32_t fp_spill_mask_ = 0; |