diff options
author | Nikita Popov <npopov@redhat.com> | 2025-08-15 18:06:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-15 18:06:07 +0200 |
commit | 01bc7421855889dcc3b10a131928e3a4a8e4b38c (patch) | |
tree | 80bbb9dd9cd8717e5d9bc654bceadad42164d907 /llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | |
parent | 1d1e52e614f95eed5ee440b43fa1992e46976629 (diff) | |
download | llvm-01bc7421855889dcc3b10a131928e3a4a8e4b38c.zip llvm-01bc7421855889dcc3b10a131928e3a4a8e4b38c.tar.gz llvm-01bc7421855889dcc3b10a131928e3a4a8e4b38c.tar.bz2 |
[CodeGen] Give ArgListEntry a proper constructor (NFC) (#153817)
This ensures that the required fields are set, and also makes the
construction more convenient.
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 57 |
1 files changed, 14 insertions, 43 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 876baac..2a1ef2b 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); @@ -7515,10 +7511,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); @@ -7947,9 +7941,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); } @@ -7960,9 +7953,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); } @@ -7988,10 +7980,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); } @@ -8945,7 +8936,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 @@ -8953,8 +8943,7 @@ void SelectionDAGBuilder::LowerCallTo(const CallBase &CB, SDValue Callee, continue; SDValue ArgNode = getValue(V); - Entry.Node = ArgNode; Entry.Ty = V->getType(); - + TargetLowering::ArgListEntry Entry(ArgNode, V->getType()); Entry.setAttributes(&CB, I - CB.arg_begin()); // Use swifterror virtual register as input to the call. @@ -8978,11 +8967,8 @@ void SelectionDAGBuilder::LowerCallTo(const CallBase &CB, SDValue Callee, // If call site has a cfguardtarget operand bundle, create and add an // additional ArgListEntry. if (auto Bundle = CB.getOperandBundle(LLVMContext::OB_cfguardtarget)) { - TargetLowering::ArgListEntry Entry; Value *V = Bundle->Inputs[0]; - SDValue ArgNode = getValue(V); - Entry.Node = ArgNode; - Entry.Ty = V->getType(); + TargetLowering::ArgListEntry Entry(V, getValue(V)); Entry.IsCFGuardTarget = true; Args.push_back(Entry); } @@ -10645,9 +10631,7 @@ void SelectionDAGBuilder::populateCallLoweringInfo( assert(!V->getType()->isEmptyTy() && "Empty type passed to intrinsic."); - TargetLowering::ArgListEntry Entry; - Entry.Node = getValue(V); - Entry.Ty = V->getType(); + TargetLowering::ArgListEntry Entry(getValue(V), V->getType()); Entry.setAttributes(Call, ArgI); Args.push_back(Entry); } @@ -11063,21 +11047,8 @@ TargetLowering::LowerCallTo(TargetLowering::CallLoweringInfo &CLI) const { Type *StackSlotPtrType = PointerType::get(Context, DL.getAllocaAddrSpace()); DemoteStackSlot = CLI.DAG.getFrameIndex(DemoteStackIdx, getFrameIndexTy(DL)); - ArgListEntry Entry; - Entry.Node = DemoteStackSlot; - Entry.Ty = StackSlotPtrType; - Entry.IsSExt = false; - Entry.IsZExt = false; - Entry.IsInReg = false; + ArgListEntry Entry(DemoteStackSlot, StackSlotPtrType); Entry.IsSRet = true; - Entry.IsNest = false; - Entry.IsByVal = false; - Entry.IsByRef = false; - Entry.IsReturned = false; - Entry.IsSwiftSelf = false; - Entry.IsSwiftAsync = false; - Entry.IsSwiftError = false; - Entry.IsCFGuardTarget = false; Entry.Alignment = Alignment; CLI.getArgs().insert(CLI.getArgs().begin(), Entry); CLI.NumFixedArgs += 1; |