diff options
| author | 2024-01-23 17:21:28 +0100 | |
|---|---|---|
| committer | 2024-02-08 16:18:38 +0000 | |
| commit | 899cecf6daa9e463b3115fa343aa62777c77baba (patch) | |
| tree | 60a2dd1313a2fa164b802b1095085691cd1fbfd4 /compiler/optimizing/parallel_move_resolver.h | |
| parent | 75467a7322415de053c99d2518bb34b23d8d15fe (diff) | |
Use register pair loads/stores in JNI stubs...
... on arm/arm64 for local reference frame manipulation.
Golem results for art-opt-cc (higher is better):
linux-armv7 (Odroid-C2)          before after
NativeDowncallStaticFast         21.622 21.622 (unchanged)
NativeDowncallStaticFast6        18.500 18.491 (-0.0500%)
NativeDowncallStaticFastRefs6    15.354 15.354 (unchanged)
NativeDowncallVirtualFast        21.027 20.741 (-1.361%)
NativeDowncallVirtualFast6       18.953 18.953 (unchanged)
NativeDowncallVirtualFastRefs6   15.504 15.504 (unchanged)
NativeDowncallStaticNormal       14.620 14.620 (unchanged)
NativeDowncallStaticNormal6      13.120 13.120 (unchanged)
NativeDowncallStaticNormalRefs6  11.454 11.454 (unchanged)
NativeDowncallVirtualNormal      14.342 14.216 (-0.8823%)
NativeDowncallVirtualNormal6     13.347 13.347 (unchanged)
NativeDowncallVirtualNormalRefs6 11.538 11.544 (+0.0481%)
linux-armv7 (Raspberry Pi 4)     before after
NativeDowncallStaticFast         41.937 41.564 (-0.8906%)
NativeDowncallStaticFast6        33.234 35.608 (+7.144%)
NativeDowncallStaticFastRefs6    30.527 31.469 (+3.085%)
NativeDowncallVirtualFast        37.531 35.429 (-5.600%)
NativeDowncallVirtualFast6       32.803 34.125 (+4.028%)
NativeDowncallVirtualFastRefs6   30.500 31.500 (+3.279%)
NativeDowncallStaticNormal       13.599 14.112 (+3.773%)
NativeDowncallStaticNormal6      13.599 13.599 (unchanged)
NativeDowncallStaticNormalRefs6  12.358 12.677 (+2.580%)
NativeDowncallVirtualNormal      13.473 13.848 (+2.781%)
NativeDowncallVirtualNormal6     13.235 13.242 (+0.0495%)
NativeDowncallVirtualNormalRefs6 12.165 12.364 (+1.632%)
linux-armv8 (Odroid-C2)          before after
NativeDowncallStaticFast         23.988 24.765 (+3.238%)
NativeDowncallStaticFast6        21.923 22.571 (+2.955%)
NativeDowncallStaticFastRefs6    18.719 19.183 (+2.480%)
NativeDowncallVirtualFast        21.027 21.622 (+2.828%)
NativeDowncallVirtualFast6       20.267 21.319 (+5.190%)
NativeDowncallVirtualFastRefs6   16.683 17.448 (+4.583%)
NativeDowncallStaticNormal       16.683 17.057 (+2.239%)
NativeDowncallStaticNormal6      15.656 15.992 (+2.149%)
NativeDowncallStaticNormalRefs6  13.958 14.085 (+0.9054)
NativeDowncallVirtualNormal      15.196 15.504 (+2.026%)
NativeDowncallVirtualNormal6     15.049 15.347 (+1.980%)
NativeDowncallVirtualNormalRefs6 13.006 13.466 (+3.541%)
linux-armv8 (Raspberry Pi 4)     before after
NativeDowncallStaticFast         36.482 38.366 (+5.164%)
NativeDowncallStaticFast6        37.406 38.366 (+2.564%)
NativeDowncallStaticFastRefs6    28.770 31.652 (+10.02%)
NativeDowncallVirtualFast        34.000 35.201 (+3.532%)
NativeDowncallVirtualFast6       33.251 34.000 (+2.254%)
NativeDowncallVirtualFastRefs6   26.474 27.201 (+2.747%)
NativeDowncallStaticNormal       14.237 14.606 (+2.592%)
NativeDowncallStaticNormal6      14.244 14.948 (+4.942%)
NativeDowncallStaticNormalRefs6  13.012 14.181 (+8.983%)
NativeDowncallVirtualNormal      14.105 14.663 (+3.954%)
NativeDowncallVirtualNormal6     13.979 14.735 (+5.406%)
NativeDowncallVirtualNormalRefs6 13.725 14.244 (+3.775%)
The Odroid-C2 results appear essentially unchanged for armv7
(with some minor regressions within noise) and only little
better for armv8 (but still likely within noise). On the
Raspberry Pi 4, there appears to be some improvement for
armv7 and a decent improvement for armv8 but there is higher
level of noise than on Odroid-C2. Results from this single
run are not very conclusive but we expect to see a clear
trend in the data after submission.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: run-gtest.sh
Test: testrunner.py --target --optimizing
Bug: 172332525
Change-Id: I01033950355c988c8a0e7ed6bdb6e585587dcfb4
Diffstat (limited to 'compiler/optimizing/parallel_move_resolver.h')
0 files changed, 0 insertions, 0 deletions