summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_generator.cc
diff options
context:
space:
mode:
authorDavid Srbecky <dsrbecky@google.com>2018-06-03 12:00:11 +0100
committerDavid Srbecky <dsrbecky@google.com>2018-06-07 12:00:18 +0100
commit6de8833fb64e59301eada4005ed04da995796170 (patch)
tree9f5b731ae1c0428cf5dcae4105936a7a165a43c9 /compiler/optimizing/code_generator.cc
parentd97e0828958fd14a962e37af2865bc2e628547ce (diff)
Delta-compress register maps in stack maps.
The register maps tend to be similar from stack map to stack map, so instead of encoding them again, store only the modified ones. The dex register bitmap stores the delta now - if register has been modified since the previous stack map, the bit will be set. The decoding logic scans backwards through stack maps until it eventfully finds the most recent value of each register. This CL saves ~2.5% of .oat file size (~10% of stackmap size). Due to the scan, this makes dex register decoding slower by factor of 2.5, but that still beats the old algorithm before refactoring. Test: test-art-host-gtest-stack_map_test Change-Id: Id5217a329eb757954e0c9447f38b05ec34118f84
Diffstat (limited to 'compiler/optimizing/code_generator.cc')
0 files changed, 0 insertions, 0 deletions