[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