[llvm] r275920 - [NVPTX] Make sure we adjust alignment at all call sites
Artem Belevich via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 18 14:58:48 PDT 2016
Author: tra
Date: Mon Jul 18 16:58:48 2016
New Revision: 275920
URL: http://llvm.org/viewvc/llvm-project?rev=275920&view=rev
Log:
[NVPTX] Make sure we adjust alignment at all call sites
.. including calls from kernel functions that were
ignored by mistake before.
Modified:
llvm/trunk/lib/Target/NVPTX/NVPTXISelLowering.cpp
llvm/trunk/test/CodeGen/NVPTX/param-align.ll
Modified: llvm/trunk/lib/Target/NVPTX/NVPTXISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/NVPTXISelLowering.cpp?rev=275920&r1=275919&r2=275920&view=diff
==============================================================================
--- llvm/trunk/lib/Target/NVPTX/NVPTXISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/NVPTX/NVPTXISelLowering.cpp Mon Jul 18 16:58:48 2016
@@ -1072,7 +1072,6 @@ SDValue NVPTXTargetLowering::LowerCall(T
MachineFunction &MF = DAG.getMachineFunction();
const Function *F = MF.getFunction();
auto &DL = MF.getDataLayout();
- bool isKernel = llvm::isKernelFunction(*F);
SDValue tempChain = Chain;
Chain = DAG.getCALLSEQ_START(Chain,
@@ -1342,7 +1341,7 @@ SDValue NVPTXTargetLowering::LowerCall(T
// Enforce minumum alignment of 4 to work around ptxas miscompile
// for sm_50+. See corresponding alignment adjustment in
// emitFunctionParamList() for details.
- if (!isKernel && ArgAlign < 4)
+ if (ArgAlign < 4)
ArgAlign = 4;
SDValue DeclareParamOps[] = {Chain, DAG.getConstant(ArgAlign, dl, MVT::i32),
DAG.getConstant(paramCount, dl, MVT::i32),
Modified: llvm/trunk/test/CodeGen/NVPTX/param-align.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/NVPTX/param-align.ll?rev=275920&r1=275919&r2=275920&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/NVPTX/param-align.ll (original)
+++ llvm/trunk/test/CodeGen/NVPTX/param-align.ll Mon Jul 18 16:58:48 2016
@@ -31,3 +31,14 @@ define ptx_device void @t4(i8* byval %x)
; CHECK: .param .align 4 .b8 t4_param_0[1]
ret void
}
+
+;;; Make sure we adjust alignment at the call site as well.
+define ptx_device void @t5(i8* align 2 byval %x) {
+; CHECK: .func t5
+; CHECK: .param .align 4 .b8 t5_param_0[1]
+; CHECK: {
+; CHECK: .param .align 4 .b8 param0[1];
+; CHECK: call.uni
+ call void @t4(i8* byval %x)
+ ret void
+}
More information about the llvm-commits
mailing list