	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal8,8byte_literals
	.p2align	3                               ## -- Begin function heap_vacuum_rel
LCPI0_0:
	.quad	0x412e848000000000              ## double 1.0E+6
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4
LCPI0_1:
	.quad	0x3eb0000000000000              ## double 9.5367431640625E-7
	.quad	0x3eb0000000000000              ## double 9.5367431640625E-7
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_heap_vacuum_rel
	.p2align	4, 0x90
_heap_vacuum_rel:                       ## @heap_vacuum_rel
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$104, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%edx, %r12d
	movq	%rsi, %r15
	movq	%rdi, %r14
	xorl	%edi, %edi
	testq	%rsi, %rsi
	setne	%dil
	callq	_Assert
	movq	(%r15), %rax
	movq	_VACOPT_TERNARY_DEFAULT@GOTPCREL(%rip), %rbx
	xorl	%edi, %edi
	cmpq	(%rbx), %rax
	setne	%dil
	callq	_Assert
	movq	8(%r15), %rax
	xorl	%edi, %edi
	cmpq	(%rbx), %rax
	setne	%dil
	callq	_Assert
	movq	(%r14), %rax
	movl	24(%rax), %edi
	callq	_TransactionIdIsNormal
	movl	%eax, %edi
	callq	_Assert
	movq	(%r14), %rax
	movl	20(%rax), %edi
	callq	_MultiXactIdIsValid
	movl	%eax, %edi
	callq	_Assert
	xorl	%r13d, %r13d
	xorl	%eax, %eax
	callq	_IsAutoVacuumWorkerProcess
	testq	%rax, %rax
	je	LBB0_3
## %bb.1:
	cmpq	$0, 16(%r15)
	js	LBB0_3
## %bb.2:
	leaq	-88(%rbp), %rdi
	callq	_pg_rusage_init
	xorl	%eax, %eax
	callq	_GetCurrentTimestamp
	movl	%eax, %r13d
LBB0_3:
	movq	_VACOPT_VERBOSE@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	andl	24(%r15), %eax
	jne	LBB0_4
## %bb.5:
	movq	_DEBUG2@GOTPCREL(%rip), %rax
	jmp	LBB0_6
LBB0_4:
	movq	_INFO@GOTPCREL(%rip), %rax
LBB0_6:
	movl	(%rax), %eax
	movq	_elevel@GOTPCREL(%rip), %rcx
	movl	%eax, (%rcx)
	movq	_PROGRESS_COMMAND_VACUUM@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movq	%r14, %rdi
	callq	_RelationGetRelid
	movl	%ebx, %edi
	movl	%eax, %esi
	callq	_pgstat_progress_start_command
	movq	_vac_strategy@GOTPCREL(%rip), %rax
	movl	%r12d, (%rax)
	movl	52(%r15), %esi
	movl	48(%r15), %edx
	movl	40(%r15), %r8d
	movl	44(%r15), %ecx
	leaq	-76(%rbp), %rax
	leaq	-80(%rbp), %rbx
	movq	_OldestXmin@GOTPCREL(%rip), %r9
	movq	%r14, %rdi
	pushq	%rax
	pushq	_MultiXactCutoff@GOTPCREL(%rip)
	pushq	%rbx
	pushq	_FreezeLimit@GOTPCREL(%rip)
	callq	_vacuum_set_xid_limits
	addq	$32, %rsp
	movq	(%r14), %rax
	movl	24(%rax), %edi
	movl	-80(%rbp), %esi
	callq	_TransactionIdPrecedesOrEquals
	movl	%eax, %ebx
	movq	(%r14), %rax
	movl	20(%rax), %edi
	movl	-76(%rbp), %esi
	callq	_MultiXactIdPrecedesOrEquals
	orl	%ebx, %eax
	movq	_VACOPT_DISABLE_PAGE_SKIPPING@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	testl	%ecx, 24(%r15)
	movl	$1, %ebx
	cmovel	%eax, %ebx
	cmpq	$0, 32(%r15)
	je	LBB0_9
## %bb.7:
	testl	%ebx, %ebx
	jne	LBB0_9
## %bb.8:
	movq	_DEBUG1@GOTPCREL(%rip), %rax
	movl	(%rax), %r15d
	movq	_MyDatabaseId@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_get_database_name
	movl	%eax, %r12d
	movq	%r14, %rdi
	callq	_RelationGetNamespace
	movl	%eax, %edi
	callq	_get_namespace_name
	movl	%eax, %ebx
	movq	%r14, %rdi
	callq	_RelationGetRelationName
	leaq	L_.str(%rip), %rdi
	movl	%r12d, %esi
	movl	%ebx, %edx
	movl	%eax, %ecx
	callq	_errmsg
	movl	%r15d, %edi
	movl	%eax, %esi
	callq	_ereport
	xorl	%eax, %eax
	callq	_pgstat_progress_end_command
	jmp	LBB0_32
LBB0_9:
	movl	$96, %edi
	callq	_palloc0
	movq	%rax, %r12
	movq	(%r14), %rax
	movq	(%rax), %rcx
	movq	%rcx, (%r12)
	movsd	8(%rax), %xmm0                  ## xmm0 = mem[0],zero
	movsd	%xmm0, 8(%r12)
	movl	$0, 16(%r12)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 80(%r12)
	movq	_RowExclusiveLock@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	leaq	-52(%rbp), %rdx
	leaq	-104(%rbp), %rcx
	movq	%r14, %rdi
	callq	_vac_open_indexes
	movl	-52(%rbp), %r8d
	testl	%r8d, %r8d
	jle	LBB0_10
## %bb.11:
	movq	(%r15), %rcx
	movq	_VACOPT_TERNARY_ENABLED@GOTPCREL(%rip), %rdx
	xorl	%eax, %eax
	cmpq	(%rdx), %rcx
	sete	%al
	jmp	LBB0_12
LBB0_10:
	xorl	%eax, %eax
LBB0_12:
	movl	%eax, 20(%r12)
	movq	-104(%rbp), %rcx
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movl	%ebx, -60(%rbp)                 ## 4-byte Spill
	movl	%ebx, %r9d
	callq	_lazy_scan_heap
	movl	-52(%rbp), %edi
	movq	-104(%rbp), %rsi
	movq	_NoLock@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	callq	_vac_close_indexes
	movq	32(%r12), %rbx
	movq	40(%r12), %rax
	addq	24(%r12), %rbx
	movq	%rax, -72(%rbp)                 ## 8-byte Spill
	cmpq	%rax, %rbx
	jge	LBB0_14
## %bb.13:
	xorl	%edi, %edi
	cmpl	$0, -60(%rbp)                   ## 4-byte Folded Reload
	sete	%dil
	callq	_Assert
LBB0_14:
	movl	%r13d, -56(%rbp)                ## 4-byte Spill
	movq	%r15, %rdi
	movq	%r12, %rsi
	callq	_should_attempt_truncation
	testq	%rax, %rax
	je	LBB0_16
## %bb.15:
	movq	%r14, %rdi
	movq	%r12, %rsi
	callq	_lazy_truncate_heap
LBB0_16:
	movq	_PROGRESS_VACUUM_PHASE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_PROGRESS_VACUUM_PHASE_FINAL_CLEANUP@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_pgstat_progress_update_param
	movq	40(%r12), %r13
	leaq	48(%r12), %rax
	cmpq	$0, 56(%r12)
	jne	LBB0_19
## %bb.17:
	testq	%r13, %r13
	jle	LBB0_19
## %bb.18:
	movq	%r12, %rax
	addq	$8, %rax
	movq	(%r12), %r13
LBB0_19:
	movsd	(%rax), %xmm0                   ## xmm0 = mem[0],zero
	movsd	%xmm0, -128(%rbp)               ## 8-byte Spill
	leaq	-96(%rbp), %rsi
	movq	%r14, %rdi
	xorl	%edx, %edx
	callq	_visibilitymap_count
	movq	-96(%rbp), %rdx
	cmpq	%r13, %rdx
	jle	LBB0_21
## %bb.20:
	movq	%r13, -96(%rbp)
	movq	%r13, %rdx
LBB0_21:
	cmpq	-72(%rbp), %rbx                 ## 8-byte Folded Reload
	movq	_FreezeLimit@GOTPCREL(%rip), %rax
	cmovlq	_InvalidTransactionId@GOTPCREL(%rip), %rax
	movl	(%rax), %r8d
	movq	_MultiXactCutoff@GOTPCREL(%rip), %rax
	cmovlq	_InvalidMultiXactId@GOTPCREL(%rip), %rax
	movl	(%rax), %r9d
	xorl	%ecx, %ecx
	cmpl	$0, -52(%rbp)
	setg	%cl
	subq	$8, %rsp
	movq	%r14, %rdi
	movq	%r13, %rsi
	movsd	-128(%rbp), %xmm0               ## 8-byte Reload
                                        ## xmm0 = mem[0],zero
	pushq	$0
	callq	_vac_update_relstats
	addq	$16, %rsp
	movq	%r14, %rdi
	callq	_RelationGetRelid
	movq	(%r14), %rcx
	movl	16(%rcx), %esi
	movl	64(%r12), %edx
	movl	%eax, %edi
	movsd	-128(%rbp), %xmm0               ## 8-byte Reload
                                        ## xmm0 = mem[0],zero
	callq	_pgstat_report_vacuum
	xorl	%eax, %eax
	callq	_pgstat_progress_end_command
	xorl	%eax, %eax
	callq	_IsAutoVacuumWorkerProcess
	testq	%rax, %rax
	je	LBB0_32
## %bb.22:
	cmpq	$0, 16(%r15)
	js	LBB0_32
## %bb.23:
	xorl	%eax, %eax
	callq	_GetCurrentTimestamp
	movl	%eax, %r13d
	movq	16(%r15), %rdx
	testq	%rdx, %rdx
	je	LBB0_25
## %bb.24:
	movl	-56(%rbp), %edi                 ## 4-byte Reload
	movl	%r13d, %esi
	callq	_TimestampDifferenceExceeds
	testq	%rax, %rax
	je	LBB0_32
LBB0_25:
	leaq	-136(%rbp), %rdx
	leaq	-84(%rbp), %rcx
	movl	-56(%rbp), %edi                 ## 4-byte Reload
	movl	%r13d, %esi
	callq	_TimestampDifference
	movq	-136(%rbp), %rax
	movl	-84(%rbp), %ecx
	testq	%rax, %rax
	jg	LBB0_27
## %bb.26:
	xorpd	%xmm3, %xmm3
	testl	%ecx, %ecx
	jle	LBB0_28
LBB0_27:
	movq	_BLCKSZ@GOTPCREL(%rip), %rdx
	xorps	%xmm0, %xmm0
	cvtsi2sdq	(%rdx), %xmm0
	cvtsi2sd	%rax, %xmm1
	cvtsi2sd	%ecx, %xmm2
	divsd	LCPI0_0(%rip), %xmm2
	addsd	%xmm1, %xmm2
	movq	_VacuumPageMiss@GOTPCREL(%rip), %rax
	movq	_VacuumPageDirty@GOTPCREL(%rip), %rcx
	movsd	(%rcx), %xmm1                   ## xmm1 = mem[0],zero
	movhpd	(%rax), %xmm1                   ## xmm1 = xmm1[0],mem[0]
	movddup	%xmm0, %xmm3                    ## xmm3 = xmm0[0,0]
	mulpd	%xmm1, %xmm3
	mulpd	LCPI0_1(%rip), %xmm3
	movddup	%xmm2, %xmm0                    ## xmm0 = xmm2[0,0]
	divpd	%xmm0, %xmm3
LBB0_28:
	movapd	%xmm3, -128(%rbp)               ## 16-byte Spill
	leaq	-48(%rbp), %rdi
	callq	_initStringInfo
	cmpq	$0, 32(%r15)
	movl	-60(%rbp), %edi                 ## 4-byte Reload
	je	LBB0_30
## %bb.29:
	callq	_Assert
	leaq	L_.str.1(%rip), %rdi
	jmp	LBB0_31
LBB0_30:
	testl	%edi, %edi
	leaq	L_.str.2(%rip), %rax
	leaq	L_.str.3(%rip), %rdi
	cmovneq	%rax, %rdi
LBB0_31:
	callq	__
	movq	%rax, %r15
	movq	_MyDatabaseId@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_get_database_name
	xorps	%xmm0, %xmm0
	cvtsi2sd	%eax, %xmm0
	movsd	%xmm0, -72(%rbp)                ## 8-byte Spill
	movq	%r14, %rdi
	callq	_RelationGetNamespace
	movl	%eax, %edi
	callq	_get_namespace_name
	movl	%eax, %ebx
	movq	%r14, %rdi
	callq	_RelationGetRelationName
	movq	88(%r12), %r8
	leaq	-48(%rbp), %r14
	movq	%r14, %rdi
	movq	%r15, %rsi
	movsd	-72(%rbp), %xmm0                ## 8-byte Reload
                                        ## xmm0 = mem[0],zero
	movl	%ebx, %edx
	movl	%eax, %ecx
	movb	$1, %al
	callq	_appendStringInfo
	leaq	L_.str.4(%rip), %rdi
	callq	__
	xorps	%xmm0, %xmm0
	cvtsi2sdq	80(%r12), %xmm0
	movq	32(%r12), %r8
	movq	40(%r12), %rdx
	movl	76(%r12), %ecx
	movq	%r14, %rdi
	movq	%rax, %rsi
	movb	$1, %al
	callq	_appendStringInfo
	leaq	L_.str.5(%rip), %rdi
	callq	__
	xorps	%xmm0, %xmm0
	cvtsi2sdl	72(%r12), %xmm0
	movl	64(%r12), %ecx
	movl	68(%r12), %edx
	movq	_OldestXmin@GOTPCREL(%rip), %rsi
	movl	(%rsi), %r8d
	movq	%r14, %rdi
	movq	%rax, %rsi
	movb	$1, %al
	callq	_appendStringInfo
	leaq	L_.str.6(%rip), %rdi
	callq	__
	movq	_VacuumPageHit@GOTPCREL(%rip), %rcx
	xorps	%xmm0, %xmm0
	cvtsi2sdl	(%rcx), %xmm0
	movq	_VacuumPageMiss@GOTPCREL(%rip), %rcx
	movsd	(%rcx), %xmm1                   ## xmm1 = mem[0],zero
	movq	_VacuumPageDirty@GOTPCREL(%rip), %rcx
	movsd	(%rcx), %xmm2                   ## xmm2 = mem[0],zero
	movq	%r14, %rdi
	movq	%rax, %rsi
	movb	$3, %al
	callq	_appendStringInfo
	leaq	L_.str.7(%rip), %rdi
	callq	__
	movaps	-128(%rbp), %xmm1               ## 16-byte Reload
	movaps	%xmm1, %xmm0
	unpckhpd	%xmm1, %xmm0                    ## xmm0 = xmm0[1],xmm1[1]
	movq	%r14, %rdi
	movq	%rax, %rsi
	movb	$2, %al
	callq	_appendStringInfo
	leaq	L_.str.8(%rip), %rdi
	callq	__
	movq	%rax, %rbx
	leaq	-88(%rbp), %rdi
	callq	_pg_rusage_show
	xorps	%xmm0, %xmm0
	cvtsi2sd	%eax, %xmm0
	movq	%r14, %rdi
	movq	%rbx, %rsi
	movb	$1, %al
	callq	_appendStringInfo
	movq	_LOG@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movl	-48(%rbp), %esi
	leaq	L_.str.9(%rip), %rdi
	callq	_errmsg_internal
	movl	%ebx, %edi
	movl	%eax, %esi
	callq	_ereport
	movl	-48(%rbp), %edi
	callq	_pfree
LBB0_32:
	addq	$104, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_VACOPT_TERNARY_DEFAULT,8,3     ## @VACOPT_TERNARY_DEFAULT
	.comm	_VACOPT_VERBOSE,4,2             ## @VACOPT_VERBOSE
	.comm	_INFO,4,2                       ## @INFO
	.comm	_elevel,4,2                     ## @elevel
	.comm	_DEBUG2,4,2                     ## @DEBUG2
	.comm	_PROGRESS_COMMAND_VACUUM,4,2    ## @PROGRESS_COMMAND_VACUUM
	.comm	_vac_strategy,4,2               ## @vac_strategy
	.comm	_OldestXmin,4,2                 ## @OldestXmin
	.comm	_FreezeLimit,4,2                ## @FreezeLimit
	.comm	_MultiXactCutoff,4,2            ## @MultiXactCutoff
	.comm	_VACOPT_DISABLE_PAGE_SKIPPING,4,2 ## @VACOPT_DISABLE_PAGE_SKIPPING
	.comm	_DEBUG1,4,2                     ## @DEBUG1
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"skipping redundant vacuum to prevent wraparound of table \"%s.%s.%s\""

	.comm	_MyDatabaseId,4,2               ## @MyDatabaseId
	.comm	_RowExclusiveLock,4,2           ## @RowExclusiveLock
	.comm	_VACOPT_TERNARY_ENABLED,8,3     ## @VACOPT_TERNARY_ENABLED
	.comm	_NoLock,4,2                     ## @NoLock
	.comm	_PROGRESS_VACUUM_PHASE,4,2      ## @PROGRESS_VACUUM_PHASE
	.comm	_PROGRESS_VACUUM_PHASE_FINAL_CLEANUP,4,2 ## @PROGRESS_VACUUM_PHASE_FINAL_CLEANUP
	.comm	_InvalidTransactionId,4,2       ## @InvalidTransactionId
	.comm	_InvalidMultiXactId,4,2         ## @InvalidMultiXactId
	.comm	_BLCKSZ,8,3                     ## @BLCKSZ
	.comm	_VacuumPageMiss,8,3             ## @VacuumPageMiss
	.comm	_VacuumPageDirty,8,3            ## @VacuumPageDirty
L_.str.1:                               ## @.str.1
	.asciz	"automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n"

L_.str.2:                               ## @.str.2
	.asciz	"automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n"

L_.str.3:                               ## @.str.3
	.asciz	"automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"

L_.str.4:                               ## @.str.4
	.asciz	"pages: %u removed, %u remain, %u skipped due to pins, %u skipped frozen\n"

L_.str.5:                               ## @.str.5
	.asciz	"tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable, oldest xmin: %u\n"

L_.str.6:                               ## @.str.6
	.asciz	"buffer usage: %d hits, %d misses, %d dirtied\n"

	.comm	_VacuumPageHit,4,2              ## @VacuumPageHit
L_.str.7:                               ## @.str.7
	.asciz	"avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"

L_.str.8:                               ## @.str.8
	.asciz	"system usage: %s"

	.comm	_LOG,4,2                        ## @LOG
L_.str.9:                               ## @.str.9
	.asciz	"%s"

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_heap_vacuum_rel                ; -- Begin function heap_vacuum_rel
	.p2align	2
_heap_vacuum_rel:                       ; @heap_vacuum_rel
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #224
	.cfi_def_cfa_offset 224
	stp	d11, d10, [sp, #96]             ; 16-byte Folded Spill
	stp	d9, d8, [sp, #112]              ; 16-byte Folded Spill
	stp	x28, x27, [sp, #128]            ; 16-byte Folded Spill
	stp	x26, x25, [sp, #144]            ; 16-byte Folded Spill
	stp	x24, x23, [sp, #160]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #176]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #192]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #208]            ; 16-byte Folded Spill
	add	x29, sp, #208
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	.cfi_offset w27, -88
	.cfi_offset w28, -96
	.cfi_offset b8, -104
	.cfi_offset b9, -112
	.cfi_offset b10, -120
	.cfi_offset b11, -128
	mov	x21, x2
	mov	x20, x1
	mov	x19, x0
	cmp	x1, #0
	cset	w0, ne
	bl	_Assert
	ldr	x8, [x20]
Lloh0:
	adrp	x22, _VACOPT_TERNARY_DEFAULT@GOTPAGE
Lloh1:
	ldr	x22, [x22, _VACOPT_TERNARY_DEFAULT@GOTPAGEOFF]
	ldr	x9, [x22]
	cmp	x8, x9
	cset	w0, ne
	bl	_Assert
	ldr	x8, [x20, #8]
	ldr	x9, [x22]
	cmp	x8, x9
	cset	w0, ne
	bl	_Assert
	ldr	x8, [x19]
	ldr	w0, [x8, #24]
	bl	_TransactionIdIsNormal
	bl	_Assert
	ldr	x8, [x19]
	ldr	w0, [x8, #20]
	bl	_MultiXactIdIsValid
	bl	_Assert
	bl	_IsAutoVacuumWorkerProcess
	cbz	x0, LBB0_3
; %bb.1:
	ldr	x8, [x20, #16]
	tbnz	x8, #63, LBB0_3
; %bb.2:
	add	x0, sp, #80
	bl	_pg_rusage_init
	bl	_GetCurrentTimestamp
	mov	x23, x0
	b	LBB0_4
LBB0_3:
	mov	w23, #0
LBB0_4:
	ldr	w8, [x20, #24]
Lloh2:
	adrp	x9, _VACOPT_VERBOSE@GOTPAGE
Lloh3:
	ldr	x9, [x9, _VACOPT_VERBOSE@GOTPAGEOFF]
Lloh4:
	adrp	x10, _DEBUG2@GOTPAGE
Lloh5:
	ldr	x10, [x10, _DEBUG2@GOTPAGEOFF]
Lloh6:
	ldr	w9, [x9]
Lloh7:
	adrp	x11, _INFO@GOTPAGE
Lloh8:
	ldr	x11, [x11, _INFO@GOTPAGEOFF]
	tst	w9, w8
	csel	x8, x10, x11, eq
	ldr	w8, [x8]
Lloh9:
	adrp	x9, _elevel@GOTPAGE
Lloh10:
	ldr	x9, [x9, _elevel@GOTPAGEOFF]
Lloh11:
	str	w8, [x9]
Lloh12:
	adrp	x8, _PROGRESS_COMMAND_VACUUM@GOTPAGE
Lloh13:
	ldr	x8, [x8, _PROGRESS_COMMAND_VACUUM@GOTPAGEOFF]
Lloh14:
	ldr	w22, [x8]
	mov	x0, x19
	bl	_RelationGetRelid
	mov	x1, x0
	mov	x0, x22
	bl	_pgstat_progress_start_command
Lloh15:
	adrp	x8, _vac_strategy@GOTPAGE
Lloh16:
	ldr	x8, [x8, _vac_strategy@GOTPAGEOFF]
Lloh17:
	str	w21, [x8]
	ldp	w2, w1, [x20, #48]
	ldp	w4, w3, [x20, #40]
	add	x8, sp, #60
Lloh18:
	adrp	x27, _MultiXactCutoff@GOTPAGE
Lloh19:
	ldr	x27, [x27, _MultiXactCutoff@GOTPAGEOFF]
	stp	x27, x8, [sp]
Lloh20:
	adrp	x5, _OldestXmin@GOTPAGE
Lloh21:
	ldr	x5, [x5, _OldestXmin@GOTPAGEOFF]
Lloh22:
	adrp	x25, _FreezeLimit@GOTPAGE
Lloh23:
	ldr	x25, [x25, _FreezeLimit@GOTPAGEOFF]
	add	x7, sp, #64
	mov	x0, x19
	mov	x6, x25
	bl	_vacuum_set_xid_limits
	ldr	x8, [x19]
	ldr	w0, [x8, #24]
	ldr	w1, [sp, #64]
	bl	_TransactionIdPrecedesOrEquals
	mov	x22, x0
	ldr	x8, [x19]
	ldr	w0, [x8, #20]
	ldr	w1, [sp, #60]
	bl	_MultiXactIdPrecedesOrEquals
	orr	w8, w0, w22
	ldr	w9, [x20, #24]
Lloh24:
	adrp	x10, _VACOPT_DISABLE_PAGE_SKIPPING@GOTPAGE
Lloh25:
	ldr	x10, [x10, _VACOPT_DISABLE_PAGE_SKIPPING@GOTPAGEOFF]
Lloh26:
	ldr	w10, [x10]
	tst	w10, w9
	csinc	w24, w8, wzr, eq
	ldr	x8, [x20, #32]
	cbz	x8, LBB0_7
; %bb.5:
	cbnz	w24, LBB0_7
; %bb.6:
Lloh27:
	adrp	x8, _DEBUG1@GOTPAGE
Lloh28:
	ldr	x8, [x8, _DEBUG1@GOTPAGEOFF]
Lloh29:
	ldr	w20, [x8]
Lloh30:
	adrp	x8, _MyDatabaseId@GOTPAGE
Lloh31:
	ldr	x8, [x8, _MyDatabaseId@GOTPAGEOFF]
Lloh32:
	ldr	w0, [x8]
	bl	_get_database_name
	mov	x21, x0
	mov	x0, x19
	bl	_RelationGetNamespace
	bl	_get_namespace_name
	mov	x22, x0
	mov	x0, x19
	bl	_RelationGetRelationName
	mov	x3, x0
Lloh33:
	adrp	x0, l_.str@PAGE
Lloh34:
	add	x0, x0, l_.str@PAGEOFF
	mov	x1, x21
	mov	x2, x22
	bl	_errmsg
	mov	x1, x0
	mov	x0, x20
	bl	_ereport
	bl	_pgstat_progress_end_command
	b	LBB0_30
LBB0_7:
	mov	w0, #96
	bl	_palloc0
	mov	x22, x0
	ldr	x8, [x19]
	ldr	x9, [x8]
	str	x9, [x0]
	ldr	d0, [x8, #8]
	mov	x28, x0
	str	d0, [x28, #8]!
	str	wzr, [x0, #16]
	stp	xzr, xzr, [x0, #80]
Lloh35:
	adrp	x8, _RowExclusiveLock@GOTPAGE
Lloh36:
	ldr	x8, [x8, _RowExclusiveLock@GOTPAGEOFF]
Lloh37:
	ldr	w1, [x8]
	add	x2, sp, #84
	add	x3, sp, #88
	mov	x0, x19
	bl	_vac_open_indexes
	ldr	w4, [sp, #84]
	cmp	w4, #1
	str	w23, [sp, #36]                  ; 4-byte Folded Spill
	b.lt	LBB0_9
; %bb.8:
	ldr	x8, [x20]
Lloh38:
	adrp	x9, _VACOPT_TERNARY_ENABLED@GOTPAGE
Lloh39:
	ldr	x9, [x9, _VACOPT_TERNARY_ENABLED@GOTPAGEOFF]
Lloh40:
	ldr	x9, [x9]
	cmp	x8, x9
	cset	w8, eq
	b	LBB0_10
LBB0_9:
	mov	w8, #0
LBB0_10:
	str	w8, [x22, #20]
	ldr	x3, [sp, #88]
	mov	x0, x19
	mov	x1, x20
	mov	x2, x22
	mov	x5, x24
	bl	_lazy_scan_heap
	ldr	w0, [sp, #84]
	ldr	x1, [sp, #88]
Lloh41:
	adrp	x8, _NoLock@GOTPAGE
Lloh42:
	ldr	x8, [x8, _NoLock@GOTPAGEOFF]
Lloh43:
	ldr	w2, [x8]
	bl	_vac_close_indexes
	ldp	x8, x9, [x22, #24]
	ldr	x21, [x22, #40]
	add	x23, x9, x8
	cmp	x23, x21
	b.ge	LBB0_12
; %bb.11:
	cmp	w24, #0
	cset	w0, eq
	bl	_Assert
LBB0_12:
	mov	x0, x20
	mov	x1, x22
	bl	_should_attempt_truncation
	cbz	x0, LBB0_14
; %bb.13:
	mov	x0, x19
	mov	x1, x22
	bl	_lazy_truncate_heap
LBB0_14:
Lloh44:
	adrp	x8, _PROGRESS_VACUUM_PHASE@GOTPAGE
Lloh45:
	ldr	x8, [x8, _PROGRESS_VACUUM_PHASE@GOTPAGEOFF]
Lloh46:
	ldr	w0, [x8]
Lloh47:
	adrp	x8, _PROGRESS_VACUUM_PHASE_FINAL_CLEANUP@GOTPAGE
Lloh48:
	ldr	x8, [x8, _PROGRESS_VACUUM_PHASE_FINAL_CLEANUP@GOTPAGEOFF]
Lloh49:
	ldr	w1, [x8]
	bl	_pgstat_progress_update_param
	ldr	x26, [x22, #40]
	add	x8, x22, #48
	ldr	x9, [x22, #56]
	cbnz	x9, LBB0_17
; %bb.15:
	cmp	x26, #1
	b.lt	LBB0_17
; %bb.16:
	ldr	x26, [x22]
	mov	x8, x28
LBB0_17:
	ldr	d8, [x8]
	add	x1, sp, #48
	mov	x0, x19
	mov	x2, #0
	bl	_visibilitymap_count
	ldr	x2, [sp, #48]
	cmp	x2, x26
	b.le	LBB0_19
; %bb.18:
	str	x26, [sp, #48]
	mov	x2, x26
LBB0_19:
Lloh50:
	adrp	x8, _InvalidTransactionId@GOTPAGE
Lloh51:
	ldr	x8, [x8, _InvalidTransactionId@GOTPAGEOFF]
	cmp	x23, x21
	csel	x8, x8, x25, lt
Lloh52:
	adrp	x9, _InvalidMultiXactId@GOTPAGE
Lloh53:
	ldr	x9, [x9, _InvalidMultiXactId@GOTPAGEOFF]
	ldr	w4, [x8]
	csel	x8, x9, x27, lt
	ldr	w5, [x8]
	ldr	w8, [sp, #84]
	cmp	w8, #0
	cset	w3, gt
	mov	x0, x19
	mov	x1, x26
	fmov	d0, d8
	mov	w6, #0
	bl	_vac_update_relstats
	mov	x0, x19
	bl	_RelationGetRelid
	ldr	x8, [x19]
	ldr	w1, [x8, #16]
	ldr	w2, [x22, #64]
	fmov	d0, d8
	bl	_pgstat_report_vacuum
	bl	_pgstat_progress_end_command
	bl	_IsAutoVacuumWorkerProcess
	cbz	x0, LBB0_30
; %bb.20:
	ldr	x8, [x20, #16]
	tbnz	x8, #63, LBB0_30
; %bb.21:
	bl	_GetCurrentTimestamp
	mov	x25, x0
	ldr	x2, [x20, #16]
	cbz	x2, LBB0_23
; %bb.22:
	ldr	w0, [sp, #36]                   ; 4-byte Folded Reload
	mov	x1, x25
	bl	_TimestampDifferenceExceeds
	cbz	x0, LBB0_30
LBB0_23:
	add	x2, sp, #72
	add	x3, sp, #68
	ldr	w0, [sp, #36]                   ; 4-byte Folded Reload
	mov	x1, x25
	bl	_TimestampDifference
	ldr	x8, [sp, #72]
	ldr	w9, [sp, #68]
Lloh54:
	adrp	x25, _VacuumPageMiss@GOTPAGE
Lloh55:
	ldr	x25, [x25, _VacuumPageMiss@GOTPAGEOFF]
Lloh56:
	adrp	x26, _VacuumPageDirty@GOTPAGE
Lloh57:
	ldr	x26, [x26, _VacuumPageDirty@GOTPAGEOFF]
	cmp	x8, #0
	b.gt	LBB0_25
; %bb.24:
	movi	d10, #0000000000000000
	movi	d8, #0000000000000000
	cmp	w9, #1
	b.lt	LBB0_26
LBB0_25:
Lloh58:
	adrp	x10, _BLCKSZ@GOTPAGE
Lloh59:
	ldr	x10, [x10, _BLCKSZ@GOTPAGEOFF]
Lloh60:
	ldr	d0, [x10]
	scvtf	d0, d0
	ldr	d1, [x25]
	fmul	d1, d1, d0
	mov	x10, #4517110426252607488
	fmov	d2, x10
	scvtf	d3, x8
	fmul	d1, d1, d2
	scvtf	d4, w9
	mov	x8, #145685290680320
	movk	x8, #16686, lsl #48
	fmov	d5, x8
	fdiv	d4, d4, d5
	fadd	d3, d4, d3
	fdiv	d8, d1, d3
	ldr	d1, [x26]
	fmul	d0, d1, d0
	fmul	d0, d0, d2
	fdiv	d10, d0, d3
LBB0_26:
	add	x0, sp, #40
	bl	_initStringInfo
	ldr	x8, [x20, #32]
Lloh61:
	adrp	x21, _OldestXmin@GOTPAGE
Lloh62:
	ldr	x21, [x21, _OldestXmin@GOTPAGEOFF]
	cbz	x8, LBB0_28
; %bb.27:
	mov	x0, x24
	bl	_Assert
Lloh63:
	adrp	x0, l_.str.1@PAGE
Lloh64:
	add	x0, x0, l_.str.1@PAGEOFF
	b	LBB0_29
LBB0_28:
Lloh65:
	adrp	x8, l_.str.3@PAGE
Lloh66:
	add	x8, x8, l_.str.3@PAGEOFF
Lloh67:
	adrp	x9, l_.str.2@PAGE
Lloh68:
	add	x9, x9, l_.str.2@PAGEOFF
	cmp	w24, #0
	csel	x0, x9, x8, ne
LBB0_29:
	bl	__
	mov	x20, x0
Lloh69:
	adrp	x8, _MyDatabaseId@GOTPAGE
Lloh70:
	ldr	x8, [x8, _MyDatabaseId@GOTPAGEOFF]
Lloh71:
	ldr	w0, [x8]
	bl	_get_database_name
	scvtf	d9, w0
	mov	x0, x19
	bl	_RelationGetNamespace
	bl	_get_namespace_name
	mov	x23, x0
	mov	x0, x19
	bl	_RelationGetRelationName
	mov	x8, x0
	ldr	x9, [x22, #88]
	stp	x8, x9, [sp, #8]
	add	x0, sp, #40
	str	x23, [sp]
	mov	x1, x20
	fmov	d0, d9
	bl	_appendStringInfo
Lloh72:
	adrp	x0, l_.str.4@PAGE
Lloh73:
	add	x0, x0, l_.str.4@PAGEOFF
	bl	__
	mov	x1, x0
	ldr	d0, [x22, #80]
	scvtf	d0, d0
	ldp	x9, x8, [x22, #32]
	ldr	w10, [x22, #76]
	stp	x10, x9, [sp, #8]
	add	x0, sp, #40
	str	x8, [sp]
	bl	_appendStringInfo
Lloh74:
	adrp	x0, l_.str.5@PAGE
Lloh75:
	add	x0, x0, l_.str.5@PAGEOFF
	bl	__
	mov	x1, x0
	ldr	s0, [x22, #72]
	sshll.2d	v0, v0, #0
	scvtf	d0, d0
	ldp	w9, w8, [x22, #64]
	ldr	w10, [x21]
	stp	x9, x10, [sp, #8]
	add	x0, sp, #40
	str	x8, [sp]
	bl	_appendStringInfo
Lloh76:
	adrp	x0, l_.str.6@PAGE
Lloh77:
	add	x0, x0, l_.str.6@PAGEOFF
	bl	__
	mov	x1, x0
Lloh78:
	adrp	x8, _VacuumPageHit@GOTPAGE
Lloh79:
	ldr	x8, [x8, _VacuumPageHit@GOTPAGEOFF]
Lloh80:
	ldr	s0, [x8]
	sshll.2d	v0, v0, #0
	scvtf	d0, d0
	ldr	d1, [x25]
	ldr	d2, [x26]
	stp	d1, d2, [sp]
	add	x0, sp, #40
	bl	_appendStringInfo
Lloh81:
	adrp	x0, l_.str.7@PAGE
Lloh82:
	add	x0, x0, l_.str.7@PAGEOFF
	bl	__
	mov	x1, x0
	str	d10, [sp]
	add	x0, sp, #40
	fmov	d0, d8
	bl	_appendStringInfo
Lloh83:
	adrp	x0, l_.str.8@PAGE
Lloh84:
	add	x0, x0, l_.str.8@PAGEOFF
	bl	__
	mov	x19, x0
	add	x0, sp, #80
	bl	_pg_rusage_show
	scvtf	d0, w0
	add	x0, sp, #40
	mov	x1, x19
	bl	_appendStringInfo
Lloh85:
	adrp	x8, _LOG@GOTPAGE
Lloh86:
	ldr	x8, [x8, _LOG@GOTPAGEOFF]
Lloh87:
	ldr	w19, [x8]
	ldr	w1, [sp, #40]
Lloh88:
	adrp	x0, l_.str.9@PAGE
Lloh89:
	add	x0, x0, l_.str.9@PAGEOFF
	bl	_errmsg_internal
	mov	x1, x0
	mov	x0, x19
	bl	_ereport
	ldr	w0, [sp, #40]
	bl	_pfree
LBB0_30:
	ldp	x29, x30, [sp, #208]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #192]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #176]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #160]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #144]            ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #128]            ; 16-byte Folded Reload
	ldp	d9, d8, [sp, #112]              ; 16-byte Folded Reload
	ldp	d11, d10, [sp, #96]             ; 16-byte Folded Reload
	add	sp, sp, #224
	ret
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGot	Lloh22, Lloh23
	.loh AdrpLdrGot	Lloh20, Lloh21
	.loh AdrpLdrGot	Lloh18, Lloh19
	.loh AdrpLdrGotStr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotStr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGot	Lloh7, Lloh8
	.loh AdrpLdrGot	Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh6
	.loh AdrpAdd	Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdrGotLdr	Lloh41, Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh47, Lloh48, Lloh49
	.loh AdrpLdrGotLdr	Lloh44, Lloh45, Lloh46
	.loh AdrpLdrGot	Lloh52, Lloh53
	.loh AdrpLdrGot	Lloh50, Lloh51
	.loh AdrpLdrGot	Lloh56, Lloh57
	.loh AdrpLdrGot	Lloh54, Lloh55
	.loh AdrpLdrGotLdr	Lloh58, Lloh59, Lloh60
	.loh AdrpLdrGot	Lloh61, Lloh62
	.loh AdrpAdd	Lloh63, Lloh64
	.loh AdrpAdd	Lloh67, Lloh68
	.loh AdrpAdd	Lloh65, Lloh66
	.loh AdrpAdd	Lloh88, Lloh89
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh87
	.loh AdrpAdd	Lloh83, Lloh84
	.loh AdrpAdd	Lloh81, Lloh82
	.loh AdrpLdrGotLdr	Lloh78, Lloh79, Lloh80
	.loh AdrpAdd	Lloh76, Lloh77
	.loh AdrpAdd	Lloh74, Lloh75
	.loh AdrpAdd	Lloh72, Lloh73
	.loh AdrpLdrGotLdr	Lloh69, Lloh70, Lloh71
	.cfi_endproc
                                        ; -- End function
	.comm	_VACOPT_TERNARY_DEFAULT,8,3     ; @VACOPT_TERNARY_DEFAULT
	.comm	_VACOPT_VERBOSE,4,2             ; @VACOPT_VERBOSE
	.comm	_INFO,4,2                       ; @INFO
	.comm	_elevel,4,2                     ; @elevel
	.comm	_DEBUG2,4,2                     ; @DEBUG2
	.comm	_PROGRESS_COMMAND_VACUUM,4,2    ; @PROGRESS_COMMAND_VACUUM
	.comm	_vac_strategy,4,2               ; @vac_strategy
	.comm	_OldestXmin,4,2                 ; @OldestXmin
	.comm	_FreezeLimit,4,2                ; @FreezeLimit
	.comm	_MultiXactCutoff,4,2            ; @MultiXactCutoff
	.comm	_VACOPT_DISABLE_PAGE_SKIPPING,4,2 ; @VACOPT_DISABLE_PAGE_SKIPPING
	.comm	_DEBUG1,4,2                     ; @DEBUG1
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"skipping redundant vacuum to prevent wraparound of table \"%s.%s.%s\""

	.comm	_MyDatabaseId,4,2               ; @MyDatabaseId
	.comm	_RowExclusiveLock,4,2           ; @RowExclusiveLock
	.comm	_VACOPT_TERNARY_ENABLED,8,3     ; @VACOPT_TERNARY_ENABLED
	.comm	_NoLock,4,2                     ; @NoLock
	.comm	_PROGRESS_VACUUM_PHASE,4,2      ; @PROGRESS_VACUUM_PHASE
	.comm	_PROGRESS_VACUUM_PHASE_FINAL_CLEANUP,4,2 ; @PROGRESS_VACUUM_PHASE_FINAL_CLEANUP
	.comm	_InvalidTransactionId,4,2       ; @InvalidTransactionId
	.comm	_InvalidMultiXactId,4,2         ; @InvalidMultiXactId
	.comm	_BLCKSZ,8,3                     ; @BLCKSZ
	.comm	_VacuumPageMiss,8,3             ; @VacuumPageMiss
	.comm	_VacuumPageDirty,8,3            ; @VacuumPageDirty
l_.str.1:                               ; @.str.1
	.asciz	"automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n"

l_.str.2:                               ; @.str.2
	.asciz	"automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n"

l_.str.3:                               ; @.str.3
	.asciz	"automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"

l_.str.4:                               ; @.str.4
	.asciz	"pages: %u removed, %u remain, %u skipped due to pins, %u skipped frozen\n"

l_.str.5:                               ; @.str.5
	.asciz	"tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable, oldest xmin: %u\n"

l_.str.6:                               ; @.str.6
	.asciz	"buffer usage: %d hits, %d misses, %d dirtied\n"

	.comm	_VacuumPageHit,4,2              ; @VacuumPageHit
l_.str.7:                               ; @.str.7
	.asciz	"avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"

l_.str.8:                               ; @.str.8
	.asciz	"system usage: %s"

	.comm	_LOG,4,2                        ; @LOG
l_.str.9:                               ; @.str.9
	.asciz	"%s"

.subsections_via_symbols
