[PATCH] D42374: [RFC] Add IsFixed field to ISD::ArgFlagsTy
Alex Bradbury via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 22 07:27:02 PST 2018
asb created this revision.
asb added a reviewer: dsanders.
Herald added subscribers: llvm-commits, niosHD, sabuasal, apazos, jordy.potman.lists, simoncook, johnrusso, rbar, kristof.beyls, arichardson, sdardis, aemerson.
asb added a subscriber: kparzysz.
As discussed on llvm-dev <http://lists.llvm.org/pipermail/llvm-dev/2018-January/120098.html>, it's unfortunate that ISD::ArgFlagsTy doesn't contain IsFixed. Adding this field isn't enough to get rid of SystemZ, PPC or Mips custom CCState, but does allow simplifications in the Lanai and Mips backends as well as removal of HexagonCCState.
This patch doesn't update any backend's GlobalISel call lowering to use the new field. Further improvements are possible: AArch64ISelLowering::CCAssignFnForCall could be updated to not take an IsVarArg parameter, AArch64 vararg calling conventions could be removed and CCIfFixed used instead, and CCAssignFnForCall could then be called only once per function rather than once per argument.
Posted with the hope of getting initial feedback on this direction.
Repository:
rL LLVM
https://reviews.llvm.org/D42374
Files:
include/llvm/CodeGen/GlobalISel/CallLowering.h
include/llvm/CodeGen/TargetCallingConv.h
include/llvm/Target/TargetCallingConv.td
lib/CodeGen/SelectionDAG/FastISel.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/Target/Hexagon/HexagonISelLowering.cpp
lib/Target/Lanai/LanaiISelLowering.cpp
lib/Target/Mips/MipsCCState.cpp
lib/Target/Mips/MipsCCState.h
lib/Target/Mips/MipsCallingConv.td
lib/Target/RISCV/RISCVISelLowering.cpp
lib/Target/SystemZ/SystemZCallingConv.h
lib/Target/SystemZ/SystemZCallingConv.td
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D42374.130889.patch
Type: text/x-patch
Size: 17020 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180122/0c303557/attachment-0001.bin>
More information about the llvm-commits
mailing list