mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
[NVPTX] Fix PR41651
Summary: - Use the passed `DL` directly as retrieving data layout from CS by checking the called function is not reliable. Under indirect function call, there is no called function. Subscribers: jholewinski, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65468 llvm-svn: 367349
This commit is contained in:
parent
d05c641cc7
commit
231a6534b0
@ -1291,8 +1291,8 @@ std::string NVPTXTargetLowering::getPrototype(
|
||||
O << ".param .b" << size << " _";
|
||||
} else if (isa<PointerType>(retTy)) {
|
||||
O << ".param .b" << PtrVT.getSizeInBits() << " _";
|
||||
} else if (retTy->isAggregateType() || retTy->isVectorTy() || retTy->isIntegerTy(128)) {
|
||||
auto &DL = CS.getCalledFunction()->getParent()->getDataLayout();
|
||||
} else if (retTy->isAggregateType() || retTy->isVectorTy() ||
|
||||
retTy->isIntegerTy(128)) {
|
||||
O << ".param .align " << retAlignment << " .b8 _["
|
||||
<< DL.getTypeAllocSize(retTy) << "]";
|
||||
} else {
|
||||
|
13
test/CodeGen/NVPTX/bug41651.ll
Normal file
13
test/CodeGen/NVPTX/bug41651.ll
Normal file
@ -0,0 +1,13 @@
|
||||
; RUN: llc -filetype=asm -o - %s | FileCheck %s
|
||||
target datalayout = "e-i64:64-i128:128-v16:16-v32:32-n16:32:64"
|
||||
target triple = "nvptx64-nvidia-cuda"
|
||||
|
||||
%func = type { i32 (i32, i32)** }
|
||||
|
||||
; CHECK: foo
|
||||
; CHECK: call
|
||||
; CHECK: ret
|
||||
define void @foo() {
|
||||
%call = call %func undef(i32 0, i32 1)
|
||||
ret void
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user