mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 10:32:48 +02:00
GlobalISel: Surface offsets parameter from ComputeValueVTs
This commit is contained in:
parent
79609410ad
commit
ef17052770
@ -355,9 +355,13 @@ protected:
|
||||
/// Break \p OrigArgInfo into one or more pieces the calling convention can
|
||||
/// process, returned in \p SplitArgs. For example, this should break structs
|
||||
/// down into individual fields.
|
||||
///
|
||||
/// If \p Offsets is non-null, it points to a vector to be filled in
|
||||
/// with the in-memory offsets of each of the individual values.
|
||||
void splitToValueTypes(const ArgInfo &OrigArgInfo,
|
||||
SmallVectorImpl<ArgInfo> &SplitArgs,
|
||||
const DataLayout &DL, CallingConv::ID CallConv) const;
|
||||
const DataLayout &DL, CallingConv::ID CallConv,
|
||||
SmallVectorImpl<uint64_t> *Offsets = nullptr) const;
|
||||
|
||||
/// Generate instructions for unpacking \p SrcReg into the \p DstRegs
|
||||
/// corresponding to the aggregate type \p PackedTy.
|
||||
|
@ -207,12 +207,12 @@ CallLowering::setArgFlags<CallBase>(CallLowering::ArgInfo &Arg, unsigned OpIdx,
|
||||
void CallLowering::splitToValueTypes(const ArgInfo &OrigArg,
|
||||
SmallVectorImpl<ArgInfo> &SplitArgs,
|
||||
const DataLayout &DL,
|
||||
CallingConv::ID CallConv) const {
|
||||
CallingConv::ID CallConv,
|
||||
SmallVectorImpl<uint64_t> *Offsets) const {
|
||||
LLVMContext &Ctx = OrigArg.Ty->getContext();
|
||||
|
||||
SmallVector<EVT, 4> SplitVTs;
|
||||
SmallVector<uint64_t, 4> Offsets;
|
||||
ComputeValueVTs(*TLI, DL, OrigArg.Ty, SplitVTs, &Offsets, 0);
|
||||
ComputeValueVTs(*TLI, DL, OrigArg.Ty, SplitVTs, Offsets, 0);
|
||||
|
||||
if (SplitVTs.size() == 0)
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user