diff options
author | 2024-06-27 17:46:39 +0500 | |
---|---|---|
committer | 2024-07-17 12:37:07 +0000 | |
commit | 57fe2140f6a78a66cf80c9b46e96acc6b83ec3ed (patch) | |
tree | 535f5a91d38c0c203dd969f02765ee5e6617b943 /libdexfile/Android.bp | |
parent | 91c9502fdf437fce5596631e50db5e70c034312a (diff) |
riscv64: Extend Shl+Add optimization for many Adds
Extend instruction_simplifier_riscv64 so it can optimize not only one
non environment Add use of Shl<1|2|3>.
Replaces every Add use of Shl<1|2|3> with Riscv64ShiftAdd even if there
are other uses. If Shl has no any uses then remove it.
Even if there is not only an Add among Shl uses such an extension gives
a gain. sh<1|2|3>add takes one clock cycle therefore 2 independent
shifts (e.g. slli and sh<1|2|3>add) can go parallel on a dual-issue
processor.
By compiling with dex2oat all the methods of applications below I got:
Facebook: +20% (+9) cases
TikTok: +15% (+4) cases (pattern detections) of the optimization.
Test: art/test/testrunner/testrunner.py --target --64 --ndebug --optimizing
Change-Id: I2c194ad74f1b8c60f8c926894c389af61333ec28
Diffstat (limited to 'libdexfile/Android.bp')
0 files changed, 0 insertions, 0 deletions