[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