summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2024-01-22 09:43:55 +0000
committer VladimĂ­r Marko <vmarko@google.com> 2024-01-23 14:28:20 +0000
commitcb406b706134e0e5b444b8c705064de772391481 (patch)
tree63ede3bf02d33565cc6b6bcf89af140d85d93d05 /compiler/optimizing/nodes.h
parent0c36cea9ffc17d0fbdb3797917b095818ca15973 (diff)
Reduce memory used for blocked registers.
Represent groups of registers blocked for calls, catch blocks and irreducible loop headers by a special interval to reduce memory use and improve performance. Building the boot image on host with kArenaAllocatorCountAllocations = true kArenaAllocatorPreciseTracking = false kArenaAllocatorMemoryReportThreshold = 16 * MB dex2oat reports only `IActivityManager$Stub.onTransact` and the difference in arena memory usage is - arm: 19481332 -> 18568516 - ArenaStack: 4913380 -> 4000564 - SsaLiveness 2435300 -> 1522700 - RegAllocator 102808 -> 102592 - arm64: 19500044 -> 17893052 - ArenaStack: 5601636 -> 3994644 - SsaLiveness 3122836 -> 1516444 - RegAllocator 103560 -> 102960 Building a mini boot image (ART module dex files only) for arm64 with with the "speed" filter and `--dump-timings` and taking three samples with and without `baseline` I measured - "dex2oat took": - before: 6.181s, 6.174s, 6.235s - after: 6.056s, 6.081s, 6.069s - baseline before: 4.189s, 4.075s, 3.876s - baseline after: 3.766s, 3.769s, 3.757s - sum of the five "Compile Dex File Quick": - before: 3.720s, 3.732s, 3.756s - after: 3.593s, 3.62s, 3.605s - baseline before: 1.645s, 1.469s, 1.425s - baseline after: 1.322s, 1.320s, 1.322s Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 181943478 Change-Id: I356e7cc5a42af9b5b6bfee3dbef538d9025ca398
Diffstat (limited to 'compiler/optimizing/nodes.h')
0 files changed, 0 insertions, 0 deletions