[PATCH] D101806: [TargetLowering] Only inspect attributes in the arguments for ArgListEntry
Arthur Eubanks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 3 18:24:07 PDT 2021
aeubanks updated this revision to Diff 342617.
aeubanks added a comment.
only modify ABI attrs
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D101806/new/
https://reviews.llvm.org/D101806
Files:
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
Index: llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
===================================================================
--- llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
+++ llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
@@ -649,7 +649,7 @@
i32 210, i32 220, i32 230, i32 240,
i32 250, i32 260, i32 270, i32 280,
i32 290, i32 300, i32 310, i32 320,
- i32 addrspace(5)* %alloca)
+ i32 addrspace(5)* byval(i32) %alloca)
ret void
}
@@ -686,7 +686,7 @@
i32 210, i32 220, i32 230, i32 240,
i32 250, i32 260, i32 270, i32 280,
i32 290, i32 300, i32 310, i32 320,
- i32 addrspace(5)* %alloca)
+ i32 addrspace(5)* byval(i32) %alloca)
ret void
}
Index: llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
===================================================================
--- llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
+++ llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
@@ -517,7 +517,7 @@
i32 210, i32 220, i32 230, i32 240,
i32 250, i32 260, i32 270, i32 280,
i32 290, i32 300, i32 310, i32 320,
- i32 addrspace(5)* %alloca)
+ i32 addrspace(5)* byval(i32) %alloca)
ret void
}
@@ -541,7 +541,7 @@
i32 210, i32 220, i32 230, i32 240,
i32 250, i32 260, i32 270, i32 280,
i32 290, i32 300, i32 310, i32 320,
- i32 addrspace(5)* %alloca)
+ i32 addrspace(5)* byval(i32) %alloca)
ret void
}
Index: llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
===================================================================
--- llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -111,19 +111,25 @@
IsInReg = Call->paramHasAttr(ArgIdx, Attribute::InReg);
IsSRet = Call->paramHasAttr(ArgIdx, Attribute::StructRet);
IsNest = Call->paramHasAttr(ArgIdx, Attribute::Nest);
- IsByVal = Call->paramHasAttr(ArgIdx, Attribute::ByVal);
- IsPreallocated = Call->paramHasAttr(ArgIdx, Attribute::Preallocated);
- IsInAlloca = Call->paramHasAttr(ArgIdx, Attribute::InAlloca);
IsReturned = Call->paramHasAttr(ArgIdx, Attribute::Returned);
IsSwiftSelf = Call->paramHasAttr(ArgIdx, Attribute::SwiftSelf);
IsSwiftError = Call->paramHasAttr(ArgIdx, Attribute::SwiftError);
Alignment = Call->getParamStackAlign(ArgIdx);
+
+ // Don't look at the callee parameter attributes for the following ABI
+ // attributes. We can't verify that the following attributes are consistent
+ // between the callee parameters and the caller's arguments.
+ auto Attrs = Call->getAttributes();
+
+ IsByVal = Attrs.hasParamAttribute(ArgIdx, Attribute::ByVal);
ByValType = nullptr;
if (IsByVal) {
ByValType = Call->getParamByValType(ArgIdx);
if (!Alignment)
Alignment = Call->getParamAlign(ArgIdx);
}
+ IsInAlloca = Attrs.hasParamAttribute(ArgIdx, Attribute::InAlloca);
+ IsPreallocated = Attrs.hasParamAttribute(ArgIdx, Attribute::Preallocated);
PreallocatedType = nullptr;
if (IsPreallocated)
PreallocatedType = Call->getParamPreallocatedType(ArgIdx);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101806.342617.patch
Type: text/x-patch
Size: 3090 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210504/440ae645/attachment.bin>
More information about the llvm-commits
mailing list