[PATCH] D66180: [GlobalISel][CallLowering] Add support for splitting types according to calling conventions
Tim Northover via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 22 06:36:09 PDT 2019
t.p.northover added inline comments.
================
Comment at: llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h:196
+ bool handleAssignments(MachineIRBuilder &MIRBuilder,
+ SmallVectorImpl<ArgInfo> &Args,
ValueHandler &Handler) const;
----------------
It looks like you only use the ability here to change elements, not add/remove them? I think that's a `MutableArrayRef` use-case.
================
Comment at: llvm/lib/CodeGen/GlobalISel/CallLowering.cpp:165
bool CallLowering::handleAssignments(MachineIRBuilder &MIRBuilder,
- ArrayRef<ArgInfo> Args,
+ SmallVectorImpl<ArgInfo> &Args,
ValueHandler &Handler) const {
----------------
It looks like you only modify elements in place? If so, that's `MutableArrayRef`'s thing.
================
Comment at: llvm/lib/CodeGen/GlobalISel/CallLowering.cpp:260
+ if (PartIdx == 0) {
+ Flags.setSplit();
+ } else {
----------------
Why only `setSplit` for outgoing args?
================
Comment at: llvm/lib/CodeGen/GlobalISel/CallLowering.cpp:301
+ for (unsigned Part = 0; Part < NumArgRegs; ++Part) {
+ // There should be Regs.size() ArgLocs per argument.
+ VA = ArgLocs[j + Part];
----------------
Assertion?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66180/new/
https://reviews.llvm.org/D66180
More information about the llvm-commits
mailing list