mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 18:42:46 +02:00
AMDGPU: Stop adding stack passed wide arguments to call conv handler
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.
This commit is contained in:
parent
eafec2b15a
commit
1a9e13e36a
@ -34,13 +34,7 @@ def CC_SI_Gfx : CallingConv<[
|
||||
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 @@ def RetCC_SI_Gfx : CallingConv<[
|
||||
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 @@ def CC_AMDGPU_Func : CallingConv<[
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user