[llvm] [NVPTX] Disable v2f32 registers when no operations supported, or via cl::opt (PR #154476)

Princeton Ferro via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 20 11:19:58 PDT 2025


================
@@ -277,97 +282,46 @@ getVectorLoweringShape(EVT VectorEVT, bool CanLowerTo256Bit) {
 }
 
 /// ComputePTXValueVTs - For the given Type \p Ty, returns the set of primitive
-/// EVTs that compose it.  Unlike ComputeValueVTs, this will break apart vectors
-/// into their primitive components.
+/// legal-ish MVTs that compose it. Unlike ComputeValueVTs, this will legalize
+/// the types as required by the calling convention (with special handling for
+/// i8s).
 /// NOTE: This is a band-aid for code that expects ComputeValueVTs to return the
 /// same number of types as the Ins/Outs arrays in LowerFormalArguments,
 /// LowerCall, and LowerReturn.
 static void ComputePTXValueVTs(const TargetLowering &TLI, const DataLayout &DL,
+                               LLVMContext &Ctx, CallingConv::ID CallConv,
                                Type *Ty, SmallVectorImpl<EVT> &ValueVTs,
-                               SmallVectorImpl<uint64_t> *Offsets = nullptr,
+                               SmallVectorImpl<uint64_t> *Offsets,
                                uint64_t StartingOffset = 0) {
+  assert(Offsets && "Offsets must be non-null");
----------------
Prince781 wrote:

Since `Offsets` is always non-null, can we have this be a reference instead of a pointer?

https://github.com/llvm/llvm-project/pull/154476


More information about the llvm-commits mailing list