[PATCH] D96226: AMDGPU: Stop adding stack passed wide arguments to call conv handler
Matt Arsenault via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Feb 7 13:09:34 PST 2021
arsenm created this revision.
arsenm added reviewers: rampitec, Flakebi, madhur13490.
Herald added subscribers: kerbowa, hiraditya, t-tye, tpr, dstuttard, yaxunl, nhaehnle, jvesely, kzhuravl.
arsenm requested review of this revision.
Herald added a subscriber: wdng.
Herald added a project: LLVM.
The generated calling convention code shouldn't see these types since
we split large types into 32-bit chunks before the calling convention
code is triggered.
GlobalISel ends up directly calls the generated CC code before
checking for the register count breakdown. Arguably this difference is
a bug, but this was dead code for the DAG anyway.
https://reviews.llvm.org/D96226
Files:
llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td
Index: llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td
+++ llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td
@@ -34,13 +34,7 @@
VGPR24, VGPR25, VGPR26, VGPR27, VGPR28, VGPR29, VGPR30, VGPR31
]>>>,
- CCIfType<[i32, f32, v2i16, v2f16, i16, f16, i1], CCAssignToStack<4, 4>>,
- CCIfType<[i64, f64, v2i32, v2f32], CCAssignToStack<8, 4>>,
- CCIfType<[v3i32, v3f32], CCAssignToStack<12, 4>>,
- CCIfType<[v4i32, v4f32, v2i64, v2f64], CCAssignToStack<16, 4>>,
- CCIfType<[v5i32, v5f32], CCAssignToStack<20, 4>>,
- CCIfType<[v8i32, v8f32], CCAssignToStack<32, 4>>,
- CCIfType<[v16i32, v16f32], CCAssignToStack<64, 4>>
+ CCIfType<[i32, f32, v2i16, v2f16, i16, f16, i1], CCAssignToStack<4, 4>>
]>;
def RetCC_SI_Gfx : CallingConv<[
@@ -75,13 +69,7 @@
VGPR128, VGPR129, VGPR130, VGPR131, VGPR132, VGPR133, VGPR134, VGPR135
]>>>,
- CCIfType<[i32, f32, v2i16, v2f16, i16, f16, i1], CCAssignToStack<4, 4>>,
- CCIfType<[i64, f64, v2i32, v2f32], CCAssignToStack<8, 4>>,
- CCIfType<[v3i32, v3f32], CCAssignToStack<12, 4>>,
- CCIfType<[v4i32, v4f32, v2i64, v2f64], CCAssignToStack<16, 4>>,
- CCIfType<[v5i32, v5f32], CCAssignToStack<20, 4>>,
- CCIfType<[v8i32, v8f32], CCAssignToStack<32, 4>>,
- CCIfType<[v16i32, v16f32], CCAssignToStack<64, 4>>
+ CCIfType<[i32, f32, v2i16, v2f16, i16, f16, i1], CCAssignToStack<4, 4>>
]>;
def CC_SI_SHADER : CallingConv<[
@@ -205,13 +193,7 @@
VGPR8, VGPR9, VGPR10, VGPR11, VGPR12, VGPR13, VGPR14, VGPR15,
VGPR16, VGPR17, VGPR18, VGPR19, VGPR20, VGPR21, VGPR22, VGPR23,
VGPR24, VGPR25, VGPR26, VGPR27, VGPR28, VGPR29, VGPR30, VGPR31]>>,
- CCIfType<[i32, f32, v2i16, v2f16, i16, f16, i1], CCAssignToStack<4, 4>>,
- CCIfType<[i64, f64, v2i32, v2f32], CCAssignToStack<8, 4>>,
- CCIfType<[v3i32, v3f32], CCAssignToStack<12, 4>>,
- CCIfType<[v4i32, v4f32, v2i64, v2f64], CCAssignToStack<16, 4>>,
- CCIfType<[v5i32, v5f32], CCAssignToStack<20, 4>>,
- CCIfType<[v8i32, v8f32], CCAssignToStack<32, 4>>,
- CCIfType<[v16i32, v16f32], CCAssignToStack<64, 4>>
+ CCIfType<[i32, f32, v2i16, v2f16, i16, f16, i1], CCAssignToStack<4, 4>>
]>;
// Calling convention for leaf functions
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D96226.322003.patch
Type: text/x-patch
Size: 2258 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210207/f8908f3b/attachment.bin>
More information about the llvm-commits
mailing list