mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-27 13:30:05 +00:00
[NVPTX] Fix emitting aggregate parameters
The code was missing the case for aggregate parameters and hence was emitting them as .b0 type. Also fixed a couple of comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200325 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
106b79744b
commit
3dcb2a2d92
@ -1522,8 +1522,8 @@ void NVPTXAsmPrinter::emitFunctionParamList(const Function *F, raw_ostream &O) {
|
||||
}
|
||||
|
||||
if (PAL.hasAttribute(paramIndex + 1, Attribute::ByVal) == false) {
|
||||
if (Ty->isVectorTy()) {
|
||||
// Just print .param .b8 .align <a> .param[size];
|
||||
if (Ty->isAggregateType() || Ty->isVectorTy()) {
|
||||
// Just print .param .align <a> .b8 .param[size];
|
||||
// <a> = PAL.getparamalignment
|
||||
// size = typeallocsize of element type
|
||||
unsigned align = PAL.getParamAlignment(paramIndex + 1);
|
||||
@ -1603,7 +1603,7 @@ void NVPTXAsmPrinter::emitFunctionParamList(const Function *F, raw_ostream &O) {
|
||||
Type *ETy = PTy->getElementType();
|
||||
|
||||
if (isABI || isKernelFunc) {
|
||||
// Just print .param .b8 .align <a> .param[size];
|
||||
// Just print .param .align <a> .b8 .param[size];
|
||||
// <a> = PAL.getparamalignment
|
||||
// size = typeallocsize of element type
|
||||
unsigned align = PAL.getParamAlignment(paramIndex + 1);
|
||||
|
20
test/CodeGen/NVPTX/aggr-param.ll
Normal file
20
test/CodeGen/NVPTX/aggr-param.ll
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
|
||||
|
||||
; Make sure aggregate param types get emitted properly.
|
||||
|
||||
%struct.float4 = type { float, float, float, float }
|
||||
|
||||
; CHECK: .visible .func bar
|
||||
; CHECK: .param .align 4 .b8 bar_param_0[16]
|
||||
define void @bar(%struct.float4 %f) {
|
||||
entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: .visible .func foo
|
||||
; CHECK: .param .align 4 .b8 foo_param_0[20]
|
||||
define void @foo([5 x i32] %f) {
|
||||
entry:
|
||||
ret void
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user