mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
AMDGPU: Fix code size for return_to_epilog pseudo
llvm-svn: 338113
This commit is contained in:
parent
bd3fad6e93
commit
ea2d72ddd3
@ -4753,12 +4753,12 @@ unsigned SIInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
|
||||
if (DescSize != 0 && DescSize != 4)
|
||||
return DescSize;
|
||||
|
||||
if (isFixedSize(MI))
|
||||
return DescSize;
|
||||
|
||||
// 4-byte instructions may have a 32-bit literal encoded after them. Check
|
||||
// operands that coud ever be literals.
|
||||
if (isVALU(MI) || isSALU(MI)) {
|
||||
if (isFixedSize(MI))
|
||||
return DescSize;
|
||||
|
||||
int Src0Idx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::src0);
|
||||
if (Src0Idx == -1)
|
||||
return 4; // No operands.
|
||||
|
@ -374,6 +374,7 @@ def SI_RETURN_TO_EPILOG : SPseudoInstSI <
|
||||
let isReturn = 1;
|
||||
let hasNoSchedulingInfo = 1;
|
||||
let DisableWQM = 1;
|
||||
let FixedSize = 1;
|
||||
}
|
||||
|
||||
// Return for returning function calls.
|
||||
|
@ -241,6 +241,12 @@ bb:
|
||||
ret { { float, i32 }, { i32, <2 x float> } } { { float, i32 } { float 1.000000e+00, i32 2 }, { i32, <2 x float> } { i32 3, <2 x float> <float 2.000000e+00, float 4.000000e+00> } }
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}ret_return_to_epilog_pseudo_size:
|
||||
; GCN: codeLenInByte = 0{{$}}
|
||||
define amdgpu_ps float @ret_return_to_epilog_pseudo_size() #0 {
|
||||
ret float undef
|
||||
}
|
||||
|
||||
declare void @llvm.amdgcn.exp.f32(i32, i32, float, float, float, float, i1, i1) #0
|
||||
|
||||
attributes #0 = { nounwind }
|
||||
|
Loading…
Reference in New Issue
Block a user