Skip to content

Commit

Permalink
GlobalISel: Remove dead code
Browse files Browse the repository at this point in the history
Generic code should probably not introduce G_INSERT/G_EXTRACT. The
mirror unpackRegs should also be removed, but AMDGPU still has a use
remaining which needs to be fixed.
  • Loading branch information
arsenm committed Mar 1, 2021
1 parent 3e8223b commit 0131498
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 35 deletions.
10 changes: 0 additions & 10 deletions llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
Expand Up @@ -251,16 +251,6 @@ class CallLowering {
SmallVectorImpl<ArgInfo> &SplitArgs,
const DataLayout &DL, CallingConv::ID CallConv) const;

/// Generate instructions for packing \p SrcRegs into one big register
/// corresponding to the aggregate type \p PackedTy.
///
/// \param SrcRegs should contain one virtual register for each base type in
/// \p PackedTy, as returned by computeValueLLTs.
///
/// \return The packed register.
Register packRegs(ArrayRef<Register> SrcRegs, Type *PackedTy,
MachineIRBuilder &MIRBuilder) const;

/// Generate instructions for unpacking \p SrcReg into the \p DstRegs
/// corresponding to the aggregate type \p PackedTy.
///
Expand Down
25 changes: 0 additions & 25 deletions llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
Expand Up @@ -224,31 +224,6 @@ void CallLowering::splitToValueTypes(const ArgInfo &OrigArg,
SplitArgs.back().Flags[0].setInConsecutiveRegsLast();
}

Register CallLowering::packRegs(ArrayRef<Register> SrcRegs, Type *PackedTy,
MachineIRBuilder &MIRBuilder) const {
assert(SrcRegs.size() > 1 && "Nothing to pack");

const DataLayout &DL = MIRBuilder.getMF().getDataLayout();
MachineRegisterInfo *MRI = MIRBuilder.getMRI();

LLT PackedLLT = getLLTForType(*PackedTy, DL);

SmallVector<LLT, 8> LLTs;
SmallVector<uint64_t, 8> Offsets;
computeValueLLTs(DL, *PackedTy, LLTs, &Offsets);
assert(LLTs.size() == SrcRegs.size() && "Regs / types mismatch");

Register Dst = MRI->createGenericVirtualRegister(PackedLLT);
MIRBuilder.buildUndef(Dst);
for (unsigned i = 0; i < SrcRegs.size(); ++i) {
Register NewDst = MRI->createGenericVirtualRegister(PackedLLT);
MIRBuilder.buildInsert(NewDst, Dst, SrcRegs[i], Offsets[i]);
Dst = NewDst;
}

return Dst;
}

void CallLowering::unpackRegs(ArrayRef<Register> DstRegs, Register SrcReg,
Type *PackedTy,
MachineIRBuilder &MIRBuilder) const {
Expand Down

0 comments on commit 0131498

Please sign in to comment.