On AArch64 (which seems to be the only target that supports it), this attribute allows codegen to avoid saving/restoring the value in x0 across a call.
Gives a 0.1% geomean -Os code size improvement on CTMark.
Paths
| Differential D96099
[AArch64][GlobalISel] Support the 'returned' parameter attribute. ClosedPublic Authored by aemerson on Feb 4 2021, 7:45 PM.
Details Summary On AArch64 (which seems to be the only target that supports it), this attribute allows codegen to avoid saving/restoring the value in x0 across a call. Gives a 0.1% geomean -Os code size improvement on CTMark.
Diff Detail
Unit TestsFailed Event TimelineHerald added subscribers: danielkiss, hiraditya, kristof.beyls, rovka. · View Herald TranscriptFeb 4 2021, 7:45 PM
This revision is now accepted and ready to land.Feb 8 2021, 11:29 AM This revision was landed with ongoing or failed builds.Feb 8 2021, 12:47 PM Closed by commit rGec41ed5b1b94: [AArch64][GlobalISel] Support the 'returned' parameter attribute. (authored by aemerson). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 321638 llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
llvm/include/llvm/CodeGen/TargetCallingConv.h
llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-switch.ll
llvm/test/CodeGen/AArch64/arm64-this-return.ll
|
Can we document this parameter?