[llvm] [CodeGen] Give ArgListEntry a proper constructor (NFC) (PR #153817)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 15 08:00:30 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-powerpc
Author: Nikita Popov (nikic)
<details>
<summary>Changes</summary>
This ensures that the required fields are set, and also makes the construction more convenient.
---
Patch is 47.48 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/153817.diff
25 Files Affected:
- (modified) llvm/include/llvm/CodeGen/TargetLowering.h (+14-9)
- (modified) llvm/lib/CodeGen/SelectionDAG/FastISel.cpp (+3-10)
- (modified) llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (+5-11)
- (modified) llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (+3-5)
- (modified) llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp (+3-9)
- (modified) llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (+31-84)
- (modified) llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (+14-43)
- (modified) llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (+4-8)
- (modified) llvm/lib/Target/AArch64/AArch64FastISel.cpp (+4-12)
- (modified) llvm/lib/Target/AArch64/AArch64ISelLowering.cpp (+4-12)
- (modified) llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp (+6-21)
- (modified) llvm/lib/Target/ARM/ARMISelLowering.cpp (+7-20)
- (modified) llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp (+8-15)
- (modified) llvm/lib/Target/AVR/AVRISelLowering.cpp (+2-3)
- (modified) llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp (+4-8)
- (modified) llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp (+1-4)
- (modified) llvm/lib/Target/Mips/MipsISelLowering.cpp (+1-4)
- (modified) llvm/lib/Target/PowerPC/PPCISelLowering.cpp (+7-14)
- (modified) llvm/lib/Target/RISCV/RISCVISelLowering.cpp (+1-4)
- (modified) llvm/lib/Target/Sparc/SparcISelLowering.cpp (+5-13)
- (modified) llvm/lib/Target/SystemZ/SystemZISelLowering.cpp (+2-3)
- (modified) llvm/lib/Target/VE/VEISelLowering.cpp (+4-7)
- (modified) llvm/lib/Target/X86/X86ISelLowering.cpp (+6-19)
- (modified) llvm/lib/Target/XCore/XCoreISelLowering.cpp (+3-13)
- (modified) llvm/lib/Target/XCore/XCoreSelectionDAGInfo.cpp (+4-5)
``````````diff
diff --git a/llvm/include/llvm/CodeGen/TargetLowering.h b/llvm/include/llvm/CodeGen/TargetLowering.h
index ed7495694cc70..5dfd516156352 100644
--- a/llvm/include/llvm/CodeGen/TargetLowering.h
+++ b/llvm/include/llvm/CodeGen/TargetLowering.h
@@ -299,9 +299,9 @@ class LLVM_ABI TargetLoweringBase {
class ArgListEntry {
public:
- Value *Val = nullptr;
- SDValue Node = SDValue();
- Type *Ty = nullptr;
+ Value *Val;
+ SDValue Node;
+ Type *Ty;
bool IsSExt : 1;
bool IsZExt : 1;
bool IsNoExt : 1;
@@ -320,12 +320,17 @@ class LLVM_ABI TargetLoweringBase {
MaybeAlign Alignment = std::nullopt;
Type *IndirectType = nullptr;
- ArgListEntry()
- : IsSExt(false), IsZExt(false), IsNoExt(false), IsInReg(false),
- IsSRet(false), IsNest(false), IsByVal(false), IsByRef(false),
- IsInAlloca(false), IsPreallocated(false), IsReturned(false),
- IsSwiftSelf(false), IsSwiftAsync(false), IsSwiftError(false),
- IsCFGuardTarget(false) {}
+ ArgListEntry(Value *Val, SDValue Node, Type *Ty)
+ : Val(Val), Node(Node), Ty(Ty), IsSExt(false), IsZExt(false),
+ IsNoExt(false), IsInReg(false), IsSRet(false), IsNest(false),
+ IsByVal(false), IsByRef(false), IsInAlloca(false),
+ IsPreallocated(false), IsReturned(false), IsSwiftSelf(false),
+ IsSwiftAsync(false), IsSwiftError(false), IsCFGuardTarget(false) {}
+
+ ArgListEntry(Value *Val, SDValue Node = SDValue())
+ : ArgListEntry(Val, Node, Val->getType()) {}
+
+ ArgListEntry(SDValue Node, Type *Ty) : ArgListEntry(nullptr, Node, Ty) {}
LLVM_ABI void setAttributes(const CallBase *Call, unsigned ArgIdx);
};
diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
index ac1913b4ba5b2..9467ba14cf895 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -729,9 +729,7 @@ bool FastISel::lowerCallOperands(const CallInst *CI, unsigned ArgIdx,
assert(!V->getType()->isEmptyTy() && "Empty type passed to intrinsic.");
- ArgListEntry Entry;
- Entry.Val = V;
- Entry.Ty = V->getType();
+ ArgListEntry Entry(V);
Entry.setAttributes(CI, ArgI);
Args.push_back(Entry);
}
@@ -978,9 +976,7 @@ bool FastISel::lowerCallTo(const CallInst *CI, MCSymbol *Symbol,
assert(!V->getType()->isEmptyTy() && "Empty type passed to intrinsic.");
- ArgListEntry Entry;
- Entry.Val = V;
- Entry.Ty = V->getType();
+ ArgListEntry Entry(V);
Entry.setAttributes(CI, ArgI);
Args.push_back(Entry);
}
@@ -1116,7 +1112,6 @@ bool FastISel::lowerCall(const CallInst *CI) {
Type *RetTy = CI->getType();
ArgListTy Args;
- ArgListEntry Entry;
Args.reserve(CI->arg_size());
for (auto i = CI->arg_begin(), e = CI->arg_end(); i != e; ++i) {
@@ -1126,9 +1121,7 @@ bool FastISel::lowerCall(const CallInst *CI) {
if (V->getType()->isEmptyTy())
continue;
- Entry.Val = V;
- Entry.Ty = V->getType();
-
+ ArgListEntry Entry(V);
// Skip the first return-type Attribute to get to params.
Entry.setAttributes(CI, i - CI->arg_begin());
Args.push_back(Entry);
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index ba0ab2383d87a..bcfc2c5dc9f83 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -2181,12 +2181,10 @@ SelectionDAGLegalize::ExpandLibCall(RTLIB::Libcall LC, SDNode *Node,
std::pair<SDValue, SDValue> SelectionDAGLegalize::ExpandLibCall(RTLIB::Libcall LC, SDNode *Node,
bool isSigned) {
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
for (const SDValue &Op : Node->op_values()) {
EVT ArgVT = Op.getValueType();
Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());
- Entry.Node = Op;
- Entry.Ty = ArgTy;
+ TargetLowering::ArgListEntry Entry(Op, ArgTy);
Entry.IsSExt = TLI.shouldSignExtendTypeInLibCall(ArgTy, isSigned);
Entry.IsZExt = !Entry.IsSExt;
Args.push_back(Entry);
@@ -2325,11 +2323,9 @@ SDValue SelectionDAGLegalize::ExpandBitCountingLibCall(
EVT IntVT =
EVT::getIntegerVT(*DAG.getContext(), DAG.getLibInfo().getIntSize());
- TargetLowering::ArgListEntry Arg;
EVT ArgVT = Op.getValueType();
Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());
- Arg.Node = Op;
- Arg.Ty = ArgTy;
+ TargetLowering::ArgListEntry Arg(Op, ArgTy);
Arg.IsSExt = TLI.shouldSignExtendTypeInLibCall(ArgTy, /*IsSigned=*/false);
Arg.IsZExt = !Arg.IsSExt;
@@ -2370,12 +2366,10 @@ SelectionDAGLegalize::ExpandDivRemLibCall(SDNode *Node,
Type *RetTy = RetVT.getTypeForEVT(*DAG.getContext());
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
for (const SDValue &Op : Node->op_values()) {
EVT ArgVT = Op.getValueType();
Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());
- Entry.Node = Op;
- Entry.Ty = ArgTy;
+ TargetLowering::ArgListEntry Entry(Op, ArgTy);
Entry.IsSExt = isSigned;
Entry.IsZExt = !isSigned;
Args.push_back(Entry);
@@ -2383,8 +2377,8 @@ SelectionDAGLegalize::ExpandDivRemLibCall(SDNode *Node,
// Also pass the return address of the remainder.
SDValue FIPtr = DAG.CreateStackTemporary(RetVT);
- Entry.Node = FIPtr;
- Entry.Ty = PointerType::getUnqual(RetTy->getContext());
+ TargetLowering::ArgListEntry Entry(
+ FIPtr, PointerType::getUnqual(RetTy->getContext()));
Entry.IsSExt = isSigned;
Entry.IsZExt = !isSigned;
Args.push_back(Entry);
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
index a5bd97ace169e..90d62e6da8e94 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
@@ -5260,20 +5260,18 @@ void DAGTypeLegalizer::ExpandIntRes_XMULO(SDNode *N,
MachinePointerInfo());
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
for (const SDValue &Op : N->op_values()) {
EVT ArgVT = Op.getValueType();
Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());
- Entry.Node = Op;
- Entry.Ty = ArgTy;
+ TargetLowering::ArgListEntry Entry(Op, ArgTy);
Entry.IsSExt = true;
Entry.IsZExt = false;
Args.push_back(Entry);
}
// Also pass the address of the overflow check.
- Entry.Node = Temp;
- Entry.Ty = PointerType::getUnqual(PtrTy->getContext());
+ TargetLowering::ArgListEntry Entry(
+ Temp, PointerType::getUnqual(PtrTy->getContext()));
Entry.IsSExt = true;
Entry.IsZExt = false;
Args.push_back(Entry);
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
index d2ecc13331e02..2ca98958fde0d 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
@@ -2223,17 +2223,13 @@ bool VectorLegalizer::tryExpandVecMathCall(SDNode *Node, RTLIB::Libcall LC,
SDLoc DL(Node);
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
- Entry.IsSExt = false;
- Entry.IsZExt = false;
unsigned OpNum = 0;
for (auto &VFParam : OptVFInfo->Shape.Parameters) {
if (VFParam.ParamKind == VFParamKind::GlobalPredicate) {
EVT MaskVT = TLI.getSetCCResultType(DAG.getDataLayout(), *Ctx, VT);
- Entry.Node = DAG.getBoolConstant(true, DL, MaskVT, VT);
- Entry.Ty = MaskVT.getTypeForEVT(*Ctx);
- Args.push_back(Entry);
+ Args.emplace_back(DAG.getBoolConstant(true, DL, MaskVT, VT),
+ MaskVT.getTypeForEVT(*Ctx));
continue;
}
@@ -2241,9 +2237,7 @@ bool VectorLegalizer::tryExpandVecMathCall(SDNode *Node, RTLIB::Libcall LC,
if (VFParam.ParamKind != VFParamKind::Vector)
return false;
- Entry.Node = Node->getOperand(OpNum++);
- Entry.Ty = Ty;
- Args.push_back(Entry);
+ Args.emplace_back(Node->getOperand(OpNum++), Ty);
}
// Emit a call to the vector function.
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 4b7fc45908119..84282d8a1c37b 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -2576,18 +2576,12 @@ bool SelectionDAG::expandMultipleResultFPLibCall(
}
TargetLowering::ArgListTy Args;
- auto AddArgListEntry = [&](SDValue Node, Type *Ty) {
- TargetLowering::ArgListEntry Entry{};
- Entry.Ty = Ty;
- Entry.Node = Node;
- Args.push_back(Entry);
- };
// Pass the arguments.
for (const SDValue &Op : Node->op_values()) {
EVT ArgVT = Op.getValueType();
Type *ArgTy = ArgVT.getTypeForEVT(Ctx);
- AddArgListEntry(Op, ArgTy);
+ Args.emplace_back(Op, ArgTy);
}
// Pass the output pointers.
@@ -2599,7 +2593,7 @@ bool SelectionDAG::expandMultipleResultFPLibCall(
EVT ResVT = Node->getValueType(ResNo);
SDValue ResultPtr = ST ? ST->getBasePtr() : CreateStackTemporary(ResVT);
ResultPtrs[ResNo] = ResultPtr;
- AddArgListEntry(ResultPtr, PointerTy);
+ Args.emplace_back(ResultPtr, PointerTy);
}
SDLoc DL(Node);
@@ -2608,7 +2602,7 @@ bool SelectionDAG::expandMultipleResultFPLibCall(
if (VD && VD->isMasked()) {
EVT MaskVT = TLI->getSetCCResultType(getDataLayout(), Ctx, VT);
SDValue Mask = getBoolConstant(true, DL, MaskVT, VT);
- AddArgListEntry(Mask, MaskVT.getTypeForEVT(Ctx));
+ Args.emplace_back(Mask, MaskVT.getTypeForEVT(Ctx));
}
Type *RetType = CallRetResNo.has_value()
@@ -9019,18 +9013,11 @@ SelectionDAG::getMemcmp(SDValue Chain, const SDLoc &dl, SDValue Mem0,
if (!LibCallName)
return {};
- // Emit a library call.
- auto GetEntry = [](Type *Ty, SDValue &SDV) {
- TargetLowering::ArgListEntry E;
- E.Ty = Ty;
- E.Node = SDV;
- return E;
- };
-
PointerType *PT = PointerType::getUnqual(*getContext());
TargetLowering::ArgListTy Args = {
- GetEntry(PT, Mem0), GetEntry(PT, Mem1),
- GetEntry(getDataLayout().getIntPtrType(*getContext()), Size)};
+ {Mem0, PT},
+ {Mem1, PT},
+ {Size, getDataLayout().getIntPtrType(*getContext())}};
TargetLowering::CallLoweringInfo CLI(*this);
bool IsTailCall = false;
@@ -9101,13 +9088,10 @@ SDValue SelectionDAG::getMemcpy(
// Emit a library call.
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
- Entry.Ty = PointerType::getUnqual(*getContext());
- Entry.Node = Dst; Args.push_back(Entry);
- Entry.Node = Src; Args.push_back(Entry);
-
- Entry.Ty = getDataLayout().getIntPtrType(*getContext());
- Entry.Node = Size; Args.push_back(Entry);
+ Type *PtrTy = PointerType::getUnqual(*getContext());
+ Args.emplace_back(Dst, PtrTy);
+ Args.emplace_back(Src, PtrTy);
+ Args.emplace_back(Size, getDataLayout().getIntPtrType(*getContext()));
// FIXME: pass in SDLoc
TargetLowering::CallLoweringInfo CLI(*this);
bool IsTailCall = false;
@@ -9145,17 +9129,10 @@ SDValue SelectionDAG::getAtomicMemcpy(SDValue Chain, const SDLoc &dl,
MachinePointerInfo SrcPtrInfo) {
// Emit a library call.
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
- Entry.Ty = getDataLayout().getIntPtrType(*getContext());
- Entry.Node = Dst;
- Args.push_back(Entry);
-
- Entry.Node = Src;
- Args.push_back(Entry);
-
- Entry.Ty = SizeTy;
- Entry.Node = Size;
- Args.push_back(Entry);
+ Type *ArgTy = getDataLayout().getIntPtrType(*getContext());
+ Args.emplace_back(Dst, ArgTy);
+ Args.emplace_back(Src, ArgTy);
+ Args.emplace_back(Size, SizeTy);
RTLIB::Libcall LibraryCall =
RTLIB::getMEMCPY_ELEMENT_UNORDERED_ATOMIC(ElemSz);
@@ -9218,13 +9195,10 @@ SDValue SelectionDAG::getMemmove(SDValue Chain, const SDLoc &dl, SDValue Dst,
// Emit a library call.
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
- Entry.Ty = PointerType::getUnqual(*getContext());
- Entry.Node = Dst; Args.push_back(Entry);
- Entry.Node = Src; Args.push_back(Entry);
-
- Entry.Ty = getDataLayout().getIntPtrType(*getContext());
- Entry.Node = Size; Args.push_back(Entry);
+ Type *PtrTy = PointerType::getUnqual(*getContext());
+ Args.emplace_back(Dst, PtrTy);
+ Args.emplace_back(Src, PtrTy);
+ Args.emplace_back(Size, getDataLayout().getIntPtrType(*getContext()));
// FIXME: pass in SDLoc
TargetLowering::CallLoweringInfo CLI(*this);
@@ -9262,17 +9236,10 @@ SDValue SelectionDAG::getAtomicMemmove(SDValue Chain, const SDLoc &dl,
MachinePointerInfo SrcPtrInfo) {
// Emit a library call.
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
- Entry.Ty = getDataLayout().getIntPtrType(*getContext());
- Entry.Node = Dst;
- Args.push_back(Entry);
-
- Entry.Node = Src;
- Args.push_back(Entry);
-
- Entry.Ty = SizeTy;
- Entry.Node = Size;
- Args.push_back(Entry);
+ Type *IntPtrTy = getDataLayout().getIntPtrType(*getContext());
+ Args.emplace_back(Dst, IntPtrTy);
+ Args.emplace_back(Src, IntPtrTy);
+ Args.emplace_back(Size, SizeTy);
RTLIB::Libcall LibraryCall =
RTLIB::getMEMMOVE_ELEMENT_UNORDERED_ATOMIC(ElemSz);
@@ -9349,28 +9316,20 @@ SDValue SelectionDAG::getMemset(SDValue Chain, const SDLoc &dl, SDValue Dst,
const char *BzeroName = getTargetLoweringInfo().getLibcallName(RTLIB::BZERO);
- // Helper function to create an Entry from Node and Type.
- const auto CreateEntry = [](SDValue Node, Type *Ty) {
- TargetLowering::ArgListEntry Entry;
- Entry.Node = Node;
- Entry.Ty = Ty;
- return Entry;
- };
-
bool UseBZero = isNullConstant(Src) && BzeroName;
// If zeroing out and bzero is present, use it.
if (UseBZero) {
TargetLowering::ArgListTy Args;
- Args.push_back(CreateEntry(Dst, PointerType::getUnqual(Ctx)));
- Args.push_back(CreateEntry(Size, DL.getIntPtrType(Ctx)));
+ Args.emplace_back(Dst, PointerType::getUnqual(Ctx));
+ Args.emplace_back(Size, DL.getIntPtrType(Ctx));
CLI.setLibCallee(
TLI->getLibcallCallingConv(RTLIB::BZERO), Type::getVoidTy(Ctx),
getExternalSymbol(BzeroName, TLI->getPointerTy(DL)), std::move(Args));
} else {
TargetLowering::ArgListTy Args;
- Args.push_back(CreateEntry(Dst, PointerType::getUnqual(Ctx)));
- Args.push_back(CreateEntry(Src, Src.getValueType().getTypeForEVT(Ctx)));
- Args.push_back(CreateEntry(Size, DL.getIntPtrType(Ctx)));
+ Args.emplace_back(Dst, PointerType::getUnqual(Ctx));
+ Args.emplace_back(Src, Src.getValueType().getTypeForEVT(Ctx));
+ Args.emplace_back(Size, DL.getIntPtrType(Ctx));
CLI.setLibCallee(TLI->getLibcallCallingConv(RTLIB::MEMSET),
Dst.getValueType().getTypeForEVT(Ctx),
getExternalSymbol(TLI->getLibcallName(RTLIB::MEMSET),
@@ -9399,18 +9358,9 @@ SDValue SelectionDAG::getAtomicMemset(SDValue Chain, const SDLoc &dl,
MachinePointerInfo DstPtrInfo) {
// Emit a library call.
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
- Entry.Ty = getDataLayout().getIntPtrType(*getContext());
- Entry.Node = Dst;
- Args.push_back(Entry);
-
- Entry.Ty = Type::getInt8Ty(*getContext());
- Entry.Node = Value;
- Args.push_back(Entry);
-
- Entry.Ty = SizeTy;
- Entry.Node = Size;
- Args.push_back(Entry);
+ Args.emplace_back(Dst, getDataLayout().getIntPtrType(*getContext()));
+ Args.emplace_back(Value, Type::getInt8Ty(*getContext()));
+ Args.emplace_back(Size, SizeTy);
RTLIB::Libcall LibraryCall =
RTLIB::getMEMSET_ELEMENT_UNORDERED_ATOMIC(ElemSz);
@@ -14065,10 +14015,7 @@ SDValue SelectionDAG::makeStateFunctionCall(unsigned LibFunc, SDValue Ptr,
const SDLoc &DLoc) {
assert(InChain.getValueType() == MVT::Other && "Expected token chain");
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
- Entry.Node = Ptr;
- Entry.Ty = Ptr.getValueType().getTypeForEVT(*getContext());
- Args.push_back(Entry);
+ Args.emplace_back(Ptr, Ptr.getValueType().getTypeForEVT(*getContext()));
RTLIB::Libcall LC = static_cast<RTLIB::Libcall>(LibFunc);
SDValue Callee = getExternalSymbol(TLI->getLibcallName(LC),
TLI->getPointerTy(getDataLayout()));
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 2eaab02130699..15731b827ece3 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -3109,9 +3109,7 @@ void SelectionDAGBuilder::visitSPDescriptorParent(StackProtectorDescriptor &SPD,
assert(FnTy->getNumParams() == 1 && "Invalid function signature");
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
- Entry.Node = GuardVal;
- Entry.Ty = FnTy->getParamType(0);
+ TargetLowering::ArgListEntry Entry(GuardVal, FnTy->getParamType(0));
if (GuardCheckFn->hasParamAttribute(0, Attribute::AttrKind::InReg))
Entry.IsInReg = true;
Args.push_back(Entry);
@@ -3208,9 +3206,7 @@ void SelectionDAGBuilder::visitSPDescriptorFailure(
assert(FnTy->getNumParams() == 1 && "Invalid function signature");
TargetLowering::ArgListTy Args;
- TargetLowering::ArgListEntry Entry;
- Entry.Node = GuardVal;
- Entry.Ty = FnTy->getParamType(0);
+ TargetLowering::ArgListEntry Entry(GuardVal, FnTy->getParamType(0));
if (GuardCheckFn->hasParamAttribute(0, Attribute::AttrKind::InReg))
Entry.IsInReg = true;
Args.push_back(Entry);
@@ -7521,10 +7517,8 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
}
TargetLowering::ArgListTy Args;
if (Intrinsic == Intrinsic::ubsantrap) {
- Args.push_back(TargetLoweringBase::ArgListEntry());
- Args[0].Val = I.getArgOperand(0);
- Args[0].Node = getValue(Args[0].Val);
- Args[0].Ty = Args[0].Val->getType();
+ Value *Arg = I.getArgOperand(0);
+ Args.emplace_back(Arg, getValue(Arg));
}
TargetLowering::CallLoweringInfo CLI(DAG);
@@ -7953,9 +7947,8 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
Args.reserve(3);
for (unsigned Idx : {2, 3, 1}) {
- TargetLowering::ArgListEntry Arg;
- Arg.Node = getValue(I.getOperand(Idx));
- Arg.Ty = I.getOperand(Idx)->getType();
+ TargetLowering::ArgListEntry Arg(getValue(I.getOperand(Idx)),
+ I.getOperand(Idx)->getType());
Arg.setAttributes(&I, Idx);
Args.push_back(Arg);
}
@@ -7966,9 +7959,8 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
// Forward the flags and any additional arguments.
for (unsigned Idx = 4; Idx < I.arg_size(); ++Idx) {
- TargetLowering::ArgListEntry Arg;
- Arg.Node = getValue(I.getOperand(Idx));
- Arg.Ty = I.getOperand(Idx)->getType();
+ TargetLowering::ArgListEntry Arg(getValue(I.getOperand(Idx)),
+ I.getOperand(Idx)->getType());
Arg.setAttributes(&I, Idx);
Args.push_back(Arg);
}
@@ -7994,10 +7986,9 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
TargetLowering::ArgListTy Args;
// The first argument is the callee. Skip it when assembling the call args.
- TargetLowering::ArgListEntry Arg;
for (unsigned Idx = 1; Idx < I.arg_size(); ++Idx) {
- Arg.Node = getValue(I.getArgOperand(Idx));
- Arg.Ty = I.getArgOperand(Idx)->getType();
+ TargetLowering::ArgListEntry Arg(getValue(I.getArgOperand(Idx)),
+ I.getArgOperand(Idx)->getType());
Arg.setAttributes(&I, Idx);
Args.push_back(Arg);
}
@@ -8956,7 +8947,6 @@ void SelectionDAGBuilder::LowerCallTo(const CallBase &CB, SDValue Callee,
}
for (auto I = CB.arg_begin(), E = CB.arg_end(); I != E; ++I) {
- TargetLowering::ArgListEntry Entry;
const Value *V = *I;
// Skip empty types
@@ -8964,8 +8954,7 @@ void SelectionDAGBuilder::LowerCallTo(const CallBase &CB, SDValue Callee,
continue;
SDValue ArgNode = getValue(V);
- Entry.Node = ArgNode; Entry.Ty = V->getType();
-
+ TargetLoweri...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/153817
More information about the llvm-commits
mailing list