[llvm] [NVPTX] Cleanup NVPTXLowerArgs, simplifying logic and improving alignment propagation (PR #180286)

Alex MacLean via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 12 19:48:50 PST 2026


================
@@ -338,34 +316,36 @@ static void convertToParamAS(Use *OldUse, Value *Param, bool HasCvtaParam,
     I->eraseFromParent();
 }
 
-// Adjust alignment of arguments passed byval in .param address space. We can
-// increase alignment of such arguments in a way that ensures that we can
-// effectively vectorize their loads. We should also traverse all loads from
-// byval pointer and adjust their alignment, if those were using known offset.
-// Such alignment changes must be conformed with parameter store and load in
-// NVPTXTargetLowering::LowerCall.
-static void adjustByValArgAlignment(Argument *Arg, Value *ArgInParamAS,
-                                    const NVPTXTargetLowering *TLI) {
-  Function *Func = Arg->getParent();
-  Type *StructType = Arg->getParamByValType();
-  const DataLayout &DL = Func->getDataLayout();
+static Align setByValParamAlign(Argument *Arg, const NVPTXTargetLowering *TLI) {
+  Function *F = Arg->getParent();
+  Type *ByValType = Arg->getParamByValType();
+  const DataLayout &DL = F->getDataLayout();
 
-  const Align NewArgAlign =
-      TLI->getFunctionParamOptimizedAlign(Func, StructType, DL);
-  const Align CurArgAlign = Arg->getParamAlign().valueOrOne();
+  const Align OptimizedAlign =
+      TLI->getFunctionParamOptimizedAlign(F, ByValType, DL);
+  const Align CurrentAlign = Arg->getParamAlign().valueOrOne();
 
-  if (CurArgAlign >= NewArgAlign)
-    return;
+  if (CurrentAlign >= OptimizedAlign)
----------------
AlexMaclean wrote:

Can you elaborate? We want to early return in this case.

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


More information about the llvm-commits mailing list