FastISel already does this since the initial arm64 port was upstreamed, so it seems there are no issues with doing this at -O0 for very small memcpys.
Gives a 0.2% geomean code size improvement on CTMark.
Paths
| Differential D65758
[AArch64][GlobalISel] Inline tiny memcpy et al at -O0 ClosedPublic Authored by aemerson on Aug 5 2019, 10:05 AM.
Details Summary FastISel already does this since the initial arm64 port was upstreamed, so it seems there are no issues with doing this at -O0 for very small memcpys. Gives a 0.2% geomean code size improvement on CTMark.
Diff Detail
Event TimelineThis revision is now accepted and ready to land.Aug 5 2019, 11:05 AM Closed by commit rL367919: [AArch64][GlobalISel] Inline tiny memcpy et al at -O0. (authored by aemerson). · Explain WhyAug 5 2019, 1:02 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 213446 llvm/trunk/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
llvm/trunk/lib/CodeGen/GlobalISel/CombinerHelper.cpp
llvm/trunk/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp
llvm/trunk/test/CodeGen/AArch64/GlobalISel/inline-small-memcpy.mir
|