RFR: 8347405: MergeStores with reverse bytes order value
kuaiwei
duke at openjdk.org
Fri Jan 10 09:12:55 UTC 2025
This patch enhance MergeStores optimization to support merge value with reverse byte order.
Below is benchmark result before and after the patch:
On aliyun g8a (aarch64)
test , before , after , ratio
MergeStoreBench.setCharBS ,5669.655000 ,5669.566000 ,0.00 %
MergeStoreBench.setCharBV ,5516.911000 ,5516.273000 ,0.01 %
MergeStoreBench.setCharC ,5578.644000 ,5552.809000 ,0.47 %
MergeStoreBench.setCharLS ,5782.140000 ,5779.264000 ,0.05 %
MergeStoreBench.setCharLV ,5496.403000 ,5499.195000 ,-0.05 %
MergeStoreBench.setIntB ,6087.703000 ,2768.385000 ,119.90 %
MergeStoreBench.setIntBU ,6733.813000 ,2950.240000 ,128.25 %
MergeStoreBench.setIntBV ,1362.233000 ,1361.821000 ,0.03 %
MergeStoreBench.setIntL ,2834.785000 ,2833.042000 ,0.06 %
MergeStoreBench.setIntLU ,2947.145000 ,2946.874000 ,0.01 %
MergeStoreBench.setIntLV ,5506.791000 ,5506.229000 ,0.01 %
MergeStoreBench.setIntRB ,7634.279000 ,5611.058000 ,36.06 %
MergeStoreBench.setIntRBU ,7766.737000 ,5551.281000 ,39.91 %
MergeStoreBench.setIntRL ,5689.793000 ,5689.385000 ,0.01 %
MergeStoreBench.setIntRLU ,5628.287000 ,5628.789000 ,-0.01 %
MergeStoreBench.setIntRU ,5536.039000 ,5534.910000 ,0.02 %
MergeStoreBench.setIntU ,5595.363000 ,5567.810000 ,0.49 %
MergeStoreBench.setLongB ,13722.671000 ,6811.098000 ,101.48 %
MergeStoreBench.setLongBU ,13728.844000 ,4280.240000 ,220.75 %
MergeStoreBench.setLongBV ,2785.255000 ,2785.949000 ,-0.02 %
MergeStoreBench.setLongL ,5714.615000 ,5710.402000 ,0.07 %
MergeStoreBench.setLongLU ,4128.746000 ,4129.324000 ,-0.01 %
MergeStoreBench.setLongLV ,2793.125000 ,2794.438000 ,-0.05 %
MergeStoreBench.setLongRB ,14465.223000 ,7015.050000 ,106.20 %
MergeStoreBench.setLongRBU ,14546.954000 ,6173.210000 ,135.65 %
MergeStoreBench.setLongRL ,6816.145000 ,6813.348000 ,0.04 %
MergeStoreBench.setLongRLU ,4289.445000 ,4284.239000 ,0.12 %
MergeStoreBench.setLongRU ,3132.471000 ,3133.093000 ,-0.02 %
MergeStoreBench.setLongU ,3086.779000 ,3087.298000 ,-0.02 %
AMD EPYC 9T24 96-Core Processor
test , before , after , ratio
MergeStoreBench.setCharBS ,5317.887000 ,5327.174000 ,-0.17 %
MergeStoreBench.setCharBV ,3088.976000 ,3091.006000 ,-0.07 %
MergeStoreBench.setCharC ,3388.877000 ,3380.690000 ,0.24 %
MergeStoreBench.setCharLS ,4584.065000 ,4588.369000 ,-0.09 %
MergeStoreBench.setCharLV ,2250.598000 ,2252.032000 ,-0.06 %
MergeStoreBench.setIntB ,6833.492000 ,2277.048000 ,200.10 %
MergeStoreBench.setIntBU ,10100.114000 ,4599.712000 ,119.58 %
MergeStoreBench.setIntBV ,571.860000 ,571.757000 ,0.02 %
MergeStoreBench.setIntL ,2239.958000 ,2239.086000 ,0.04 %
MergeStoreBench.setIntLU ,4565.547000 ,4596.785000 ,-0.68 %
MergeStoreBench.setIntLV ,590.695000 ,589.769000 ,0.16 %
MergeStoreBench.setIntRB ,8161.235000 ,3051.716000 ,167.43 %
MergeStoreBench.setIntRBU ,10395.762000 ,6216.037000 ,67.24 %
MergeStoreBench.setIntRL ,2555.976000 ,2554.368000 ,0.06 %
MergeStoreBench.setIntRLU ,5244.833000 ,5258.066000 ,-0.25 %
MergeStoreBench.setIntRU ,569.180000 ,569.181000 ,-0.00 %
MergeStoreBench.setIntU ,592.201000 ,593.928000 ,-0.29 %
MergeStoreBench.setLongB ,17983.730000 ,4889.856000 ,267.78 %
MergeStoreBench.setLongBU ,19592.106000 ,4688.507000 ,317.88 %
MergeStoreBench.setLongBV ,1142.753000 ,1143.237000 ,-0.04 %
MergeStoreBench.setLongL ,4288.793000 ,4283.908000 ,0.11 %
MergeStoreBench.setLongLU ,4459.737000 ,4452.856000 ,0.15 %
MergeStoreBench.setLongLV ,1166.993000 ,1167.104000 ,-0.01 %
MergeStoreBench.setLongRB ,17946.584000 ,4348.289000 ,312.73 %
MergeStoreBench.setLongRBU ,20017.846000 ,5646.924000 ,254.49 %
MergeStoreBench.setLongRL ,4895.993000 ,4899.112000 ,-0.06 %
MergeStoreBench.setLongRLU ,4652.172000 ,4706.134000 ,-1.15 %
MergeStoreBench.setLongRU ,1144.522000 ,1144.203000 ,0.03 %
MergeStoreBench.setLongU ,1172.038000 ,1171.341000 ,0.06 %
-------------
Commit messages:
- Remove unused test option
- 8347405: MergeStores with reverse bytes order value
Changes: https://git.openjdk.org/jdk/pull/23030/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23030&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8347405
Stats: 109 lines in 3 files changed: 86 ins; 0 del; 23 mod
Patch: https://git.openjdk.org/jdk/pull/23030.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/23030/head:pull/23030
PR: https://git.openjdk.org/jdk/pull/23030
More information about the hotspot-compiler-dev
mailing list