[PATCH] D157872: [SelectionDAG] Use TypeSize variant of ComputeValueVTs to compute correct offsets for scalable aggregate types.

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 14 07:53:57 PDT 2023


paulwalker-arm added reviewers: eopXD, craig.topper, sdesmalen, kmclaughlin, efriedma.
paulwalker-arm added a comment.

This fixes the issue I reported against D146872 <https://reviews.llvm.org/D146872>.

I investigated making MachinePointerInfo TypeSize aware but that felt wrong because MachinePointerInfo offsets are signed. In the end I've followed the approach used when splitting scalable vector storage ops and used a null MachinePointerInfo.

Whilst not specifically needed today (the LangRef only supports aggregate types that are either all fixed length or all scalable) perhaps the correct answer is for ComputeValueVTs to return StackOffsets, that way we're not a million miles away from supporting aggregate types that mix fixed length and scalable types.  StackOffset being signed would then be a better (although not necessarily an easy) fit for MachinePointerInfo.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D157872/new/

https://reviews.llvm.org/D157872



More information about the llvm-commits mailing list