mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 18:42:46 +02:00
Fix limit behavior of dynamic alloca
When the allocation size is 0, we shouldn't probe. Within [1, PAGE_SIZE], we should probe once etc. This fixes https://bugs.llvm.org/show_bug.cgi?id=47657 Differential Revision: https://reviews.llvm.org/D88548
This commit is contained in:
parent
d37400ab28
commit
8d06bcf25b
@ -32394,7 +32394,7 @@ X86TargetLowering::EmitLoweredProbedAlloca(MachineInstr &MI,
|
||||
|
||||
BuildMI(testMBB, DL, TII->get(X86::JCC_1))
|
||||
.addMBB(tailMBB)
|
||||
.addImm(X86::COND_L);
|
||||
.addImm(X86::COND_LE);
|
||||
testMBB->addSuccessor(blockMBB);
|
||||
testMBB->addSuccessor(tailMBB);
|
||||
|
||||
|
@ -24,12 +24,12 @@ attributes #0 = {"probe-stack"="inline-asm"}
|
||||
; CHECK-X86-64-NEXT: andq $-16, %rcx
|
||||
; CHECK-X86-64-NEXT: subq %rcx, %rax
|
||||
; CHECK-X86-64-NEXT: cmpq %rsp, %rax
|
||||
; CHECK-X86-64-NEXT: jl .LBB0_3
|
||||
; CHECK-X86-64-NEXT: jle .LBB0_3
|
||||
; CHECK-X86-64-NEXT: .LBB0_2: # =>This Inner Loop Header: Depth=1
|
||||
; CHECK-X86-64-NEXT: movq $0, (%rsp)
|
||||
; CHECK-X86-64-NEXT: subq $4096, %rsp # imm = 0x1000
|
||||
; CHECK-X86-64-NEXT: cmpq %rsp, %rax
|
||||
; CHECK-X86-64-NEXT: jge .LBB0_2
|
||||
; CHECK-X86-64-NEXT: jg .LBB0_2
|
||||
; CHECK-X86-64-NEXT: .LBB0_3:
|
||||
; CHECK-X86-64-NEXT: movq %rax, %rsp
|
||||
; CHECK-X86-64-NEXT: movl $1, 4792(%rax)
|
||||
@ -54,12 +54,12 @@ attributes #0 = {"probe-stack"="inline-asm"}
|
||||
; CHECK-X86-32-NEXT: andl $-16, %ecx
|
||||
; CHECK-X86-32-NEXT: subl %ecx, %eax
|
||||
; CHECK-X86-32-NEXT: cmpl %esp, %eax
|
||||
; CHECK-X86-32-NEXT: jl .LBB0_3
|
||||
; CHECK-X86-32-NEXT: jle .LBB0_3
|
||||
; CHECK-X86-32-NEXT: .LBB0_2: # =>This Inner Loop Header: Depth=1
|
||||
; CHECK-X86-32-NEXT: movl $0, (%esp)
|
||||
; CHECK-X86-32-NEXT: subl $4096, %esp # imm = 0x1000
|
||||
; CHECK-X86-32-NEXT: cmpl %esp, %eax
|
||||
; CHECK-X86-32-NEXT: jge .LBB0_2
|
||||
; CHECK-X86-32-NEXT: jg .LBB0_2
|
||||
; CHECK-X86-32-NEXT: .LBB0_3:
|
||||
; CHECK-X86-32-NEXT: movl %eax, %esp
|
||||
; CHECK-X86-32-NEXT: movl $1, 4792(%eax)
|
||||
|
Loading…
Reference in New Issue
Block a user