[llvm] 240c454 - [CodeGen] Remove default ctors for InputArg and OutputArg (#153205)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 13 01:51:45 PDT 2025
Author: Nikita Popov
Date: 2025-08-13T10:51:43+02:00
New Revision: 240c454c4d04586967531c0a999de5547d776f47
URL: https://github.com/llvm/llvm-project/commit/240c454c4d04586967531c0a999de5547d776f47
DIFF: https://github.com/llvm/llvm-project/commit/240c454c4d04586967531c0a999de5547d776f47.diff
LOG: [CodeGen] Remove default ctors for InputArg and OutputArg (#153205)
These make it easy to forget to initialize some members, like the newly
added OrigTy. Force these to always go through the ctor instead.
Added:
Modified:
llvm/include/llvm/CodeGen/TargetCallingConv.h
llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/CodeGen/TargetCallingConv.h b/llvm/include/llvm/CodeGen/TargetCallingConv.h
index 6e80117592d5c..aa8af696c6e62 100644
--- a/llvm/include/llvm/CodeGen/TargetCallingConv.h
+++ b/llvm/include/llvm/CodeGen/TargetCallingConv.h
@@ -205,8 +205,8 @@ namespace ISD {
ArgFlagsTy Flags;
MVT VT = MVT::Other;
EVT ArgVT;
- Type *OrigTy = nullptr;
- bool Used = false;
+ Type *OrigTy;
+ bool Used;
/// Index original Function's argument.
unsigned OrigArgIndex;
@@ -218,14 +218,10 @@ namespace ISD {
/// registers, we got 4 InputArgs with PartOffsets 0, 4, 8 and 12.
unsigned PartOffset;
- InputArg() = default;
- InputArg(ArgFlagsTy flags, EVT vt, EVT argvt, Type *OrigTy, bool used,
- unsigned origIdx, unsigned partOffs)
- : Flags(flags), OrigTy(OrigTy), Used(used), OrigArgIndex(origIdx),
- PartOffset(partOffs) {
- VT = vt.getSimpleVT();
- ArgVT = argvt;
- }
+ InputArg(ArgFlagsTy Flags, MVT VT, EVT ArgVT, Type *OrigTy, bool Used,
+ unsigned OrigArgIndex, unsigned PartOffset)
+ : Flags(Flags), VT(VT), ArgVT(ArgVT), OrigTy(OrigTy), Used(Used),
+ OrigArgIndex(OrigArgIndex), PartOffset(PartOffset) {}
bool isOrigArg() const {
return OrigArgIndex != NoArgIndex;
@@ -245,7 +241,7 @@ namespace ISD {
ArgFlagsTy Flags;
MVT VT;
EVT ArgVT;
- Type *OrigTy = nullptr;
+ Type *OrigTy;
/// Index original Function's argument.
unsigned OrigArgIndex;
@@ -255,14 +251,10 @@ namespace ISD {
/// registers, we got 4 OutputArgs with PartOffsets 0, 4, 8 and 12.
unsigned PartOffset;
- OutputArg() = default;
- OutputArg(ArgFlagsTy flags, MVT vt, EVT argvt, Type *OrigTy,
- unsigned origIdx, unsigned partOffs)
- : Flags(flags), OrigTy(OrigTy), OrigArgIndex(origIdx),
- PartOffset(partOffs) {
- VT = vt;
- ArgVT = argvt;
- }
+ OutputArg(ArgFlagsTy Flags, MVT VT, EVT ArgVT, Type *OrigTy,
+ unsigned OrigArgIndex, unsigned PartOffset)
+ : Flags(Flags), VT(VT), ArgVT(ArgVT), OrigTy(OrigTy),
+ OrigArgIndex(OrigArgIndex), PartOffset(PartOffset) {}
};
} // end namespace ISD
diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
index 4b5d8a584b8e2..ac1913b4ba5b2 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -1012,17 +1012,16 @@ bool FastISel::lowerCallTo(CallLoweringInfo &CLI) {
MVT RegisterVT = TLI.getRegisterType(CLI.RetTy->getContext(), VT);
unsigned NumRegs = TLI.getNumRegisters(CLI.RetTy->getContext(), VT);
for (unsigned i = 0; i != NumRegs; ++i) {
- ISD::InputArg MyFlags;
- MyFlags.VT = RegisterVT;
- MyFlags.ArgVT = VT;
- MyFlags.Used = CLI.IsReturnValueUsed;
+ ISD::ArgFlagsTy Flags;
if (CLI.RetSExt)
- MyFlags.Flags.setSExt();
+ Flags.setSExt();
if (CLI.RetZExt)
- MyFlags.Flags.setZExt();
+ Flags.setZExt();
if (CLI.IsInReg)
- MyFlags.Flags.setInReg();
- CLI.Ins.push_back(MyFlags);
+ Flags.setInReg();
+ ISD::InputArg Ret(Flags, RegisterVT, VT, CLI.RetTy, CLI.IsReturnValueUsed,
+ ISD::InputArg::NoArgIndex, 0);
+ CLI.Ins.push_back(Ret);
}
}
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 6256ebc453fb1..a71b4409a6b21 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -11069,23 +11069,20 @@ TargetLowering::LowerCallTo(TargetLowering::CallLoweringInfo &CLI) const {
unsigned NumRegs = getNumRegistersForCallingConv(CLI.RetTy->getContext(),
CLI.CallConv, VT);
for (unsigned i = 0; i != NumRegs; ++i) {
- ISD::InputArg MyFlags;
- MyFlags.Flags = Flags;
- MyFlags.VT = RegisterVT;
- MyFlags.ArgVT = VT;
- MyFlags.Used = CLI.IsReturnValueUsed;
+ ISD::InputArg Ret(Flags, RegisterVT, VT, CLI.RetTy,
+ CLI.IsReturnValueUsed, ISD::InputArg::NoArgIndex, 0);
if (CLI.RetTy->isPointerTy()) {
- MyFlags.Flags.setPointer();
- MyFlags.Flags.setPointerAddrSpace(
+ Ret.Flags.setPointer();
+ Ret.Flags.setPointerAddrSpace(
cast<PointerType>(CLI.RetTy)->getAddressSpace());
}
if (CLI.RetSExt)
- MyFlags.Flags.setSExt();
+ Ret.Flags.setSExt();
if (CLI.RetZExt)
- MyFlags.Flags.setZExt();
+ Ret.Flags.setZExt();
if (CLI.IsInReg)
- MyFlags.Flags.setInReg();
- CLI.Ins.push_back(MyFlags);
+ Ret.Flags.setInReg();
+ CLI.Ins.push_back(Ret);
}
}
}
@@ -11095,11 +11092,12 @@ TargetLowering::LowerCallTo(TargetLowering::CallLoweringInfo &CLI) const {
if (supportSwiftError()) {
for (const ArgListEntry &Arg : Args) {
if (Arg.IsSwiftError) {
- ISD::InputArg MyFlags;
- MyFlags.VT = getPointerTy(DL);
- MyFlags.ArgVT = EVT(getPointerTy(DL));
- MyFlags.Flags.setSwiftError();
- CLI.Ins.push_back(MyFlags);
+ ISD::ArgFlagsTy Flags;
+ Flags.setSwiftError();
+ ISD::InputArg Ret(Flags, getPointerTy(DL), EVT(getPointerTy(DL)),
+ PointerType::getUnqual(CLI.RetTy->getContext()),
+ /*Used=*/true, ISD::InputArg::NoArgIndex, 0);
+ CLI.Ins.push_back(Ret);
}
}
}
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
index f9eba4b0ff6e1..8baca2ad3133e 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
@@ -1320,18 +1320,21 @@ WebAssemblyTargetLowering::LowerCall(CallLoweringInfo &CLI,
// signature They are necessary to match callee and caller signature for
// indirect call.
if (CallConv == CallingConv::Swift) {
+ Type *PtrTy = PointerType::getUnqual(*DAG.getContext());
if (!HasSwiftSelfArg) {
NumFixedArgs++;
- ISD::OutputArg Arg;
- Arg.Flags.setSwiftSelf();
+ ISD::ArgFlagsTy Flags;
+ Flags.setSwiftSelf();
+ ISD::OutputArg Arg(Flags, PtrVT, EVT(PtrVT), PtrTy, 0, 0);
CLI.Outs.push_back(Arg);
SDValue ArgVal = DAG.getUNDEF(PtrVT);
CLI.OutVals.push_back(ArgVal);
}
if (!HasSwiftErrorArg) {
NumFixedArgs++;
- ISD::OutputArg Arg;
- Arg.Flags.setSwiftError();
+ ISD::ArgFlagsTy Flags;
+ Flags.setSwiftError();
+ ISD::OutputArg Arg(Flags, PtrVT, EVT(PtrVT), PtrTy, 0, 0);
CLI.Outs.push_back(Arg);
SDValue ArgVal = DAG.getUNDEF(PtrVT);
CLI.OutVals.push_back(ArgVal);
More information about the llvm-commits
mailing list