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/instruction_simplifier.cc | |
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/instruction_simplifier.cc')
0 files changed, 0 insertions, 0 deletions