Page MenuHomePhabricator

[AArch64][GlobalISel] Enable memcpy family combines on minsize functions
ClosedPublic

Authored by paquette on May 10 2021, 2:12 PM.

Details

Summary

The combines in tryCombineMemCpyFamily have heuristics (e.g. TLI.getMaxStoresPerMemset) which consider size. So, theoretically, enabling these combines on minsize functions shouldn't be harmful.

With this enabled we save 0.9% geomean on CTMark at -Oz, and 5.1% on Bullet. There are no code size regressions.

Diff Detail

Unit TestsFailed

TimeTest
30 msx64 debian > LLVM.MC/WebAssembly::unnamed-data.ll
Script: -- : 'RUN: at line 1'; /mnt/disks/ssd0/agent/llvm-project/build/bin/llc -filetype=obj /mnt/disks/ssd0/agent/llvm-project/llvm/test/MC/WebAssembly/unnamed-data.ll -o - | /mnt/disks/ssd0/agent/llvm-project/build/bin/obj2yaml | /mnt/disks/ssd0/agent/llvm-project/build/bin/FileCheck /mnt/disks/ssd0/agent/llvm-project/llvm/test/MC/WebAssembly/unnamed-data.ll
40 msx64 windows > LLVM.MC/WebAssembly::unnamed-data.ll
Script: -- : 'RUN: at line 1'; c:\ws\w16-1\llvm-project\premerge-checks\build\bin\llc.exe -filetype=obj C:\ws\w16-1\llvm-project\premerge-checks\llvm\test\MC\WebAssembly\unnamed-data.ll -o - | c:\ws\w16-1\llvm-project\premerge-checks\build\bin\obj2yaml.exe | c:\ws\w16-1\llvm-project\premerge-checks\build\bin\filecheck.exe C:\ws\w16-1\llvm-project\premerge-checks\llvm\test\MC\WebAssembly\unnamed-data.ll

Event Timeline

paquette created this revision.May 10 2021, 2:12 PM
paquette requested review of this revision.May 10 2021, 2:12 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 10 2021, 2:12 PM
aemerson accepted this revision.May 10 2021, 3:04 PM

Wow, not running this at all for -Oz? LGTM.

This revision is now accepted and ready to land.May 10 2021, 3:04 PM
This revision was landed with ongoing or failed builds.May 10 2021, 3:25 PM
This revision was automatically updated to reflect the committed changes.