Last active
December 18, 2015 10:19
-
-
Save evanphx/5767345 to your computer and use it in GitHub Desktop.
The cost of std::function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <functional> | |
extern void run(std::function<int(int)> f); | |
void foo() { | |
auto l = [](int x) { return x + 1; }; | |
run(l); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.section __TEXT,__text,regular,pure_instructions | |
.globl __Z3foov | |
.align 4, 0x90 | |
__Z3foov: ## @_Z3foov | |
.cfi_startproc | |
.cfi_personality 155, ___gxx_personality_v0 | |
Leh_func_begin0: | |
.cfi_lsda 16, Lexception0 | |
## BB#0: | |
pushq %rbp | |
Ltmp5: | |
.cfi_def_cfa_offset 16 | |
Ltmp6: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp7: | |
.cfi_def_cfa_register %rbp | |
subq $96, %rsp | |
leaq -64(%rbp), %rax | |
xorl %esi, %esi | |
movq %rax, %rdi | |
movq %rax, -96(%rbp) ## 8-byte Spill | |
callq __ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE | |
Ltmp0: | |
movq -96(%rbp), %rdi ## 8-byte Reload | |
callq __Z3runNSt3__18functionIFiiEEE | |
Ltmp1: | |
jmp LBB0_1 | |
LBB0_1: | |
leaq -64(%rbp), %rdi | |
callq __ZNSt3__18functionIFiiEED1Ev | |
addq $96, %rsp | |
popq %rbp | |
ret | |
LBB0_2: | |
Ltmp2: | |
leaq -64(%rbp), %rdi | |
movl %edx, %ecx | |
movq %rax, -80(%rbp) | |
movl %ecx, -84(%rbp) | |
callq __ZNSt3__18functionIFiiEED1Ev | |
## BB#3: | |
movq -80(%rbp), %rdi | |
callq __Unwind_Resume | |
.cfi_endproc | |
Leh_func_end0: | |
.section __TEXT,__gcc_except_tab | |
.align 2 | |
GCC_except_table0: | |
Lexception0: | |
.byte 255 ## @LPStart Encoding = omit | |
.byte 155 ## @TType Encoding = indirect pcrel sdata4 | |
.byte 41 ## @TType base offset | |
.byte 3 ## Call site Encoding = udata4 | |
.byte 39 ## Call site table length | |
Lset0 = Leh_func_begin0-Leh_func_begin0 ## >> Call Site 1 << | |
.long Lset0 | |
Lset1 = Ltmp0-Leh_func_begin0 ## Call between Leh_func_begin0 and Ltmp0 | |
.long Lset1 | |
.long 0 ## has no landing pad | |
.byte 0 ## On action: cleanup | |
Lset2 = Ltmp0-Leh_func_begin0 ## >> Call Site 2 << | |
.long Lset2 | |
Lset3 = Ltmp1-Ltmp0 ## Call between Ltmp0 and Ltmp1 | |
.long Lset3 | |
Lset4 = Ltmp2-Leh_func_begin0 ## jumps to Ltmp2 | |
.long Lset4 | |
.byte 0 ## On action: cleanup | |
Lset5 = Ltmp1-Leh_func_begin0 ## >> Call Site 3 << | |
.long Lset5 | |
Lset6 = Leh_func_end0-Ltmp1 ## Call between Ltmp1 and Leh_func_end0 | |
.long Lset6 | |
.long 0 ## has no landing pad | |
.byte 0 ## On action: cleanup | |
.align 2 | |
.section __TEXT,__text,regular,pure_instructions | |
.align 4, 0x90 | |
__ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE: ## @"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp10: | |
.cfi_def_cfa_offset 16 | |
Ltmp11: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp12: | |
.cfi_def_cfa_register %rbp | |
subq $32, %rsp | |
movq %rdi, -8(%rbp) | |
movq %rsi, -24(%rbp) | |
movq -8(%rbp), %rdi | |
movq -24(%rbp), %rsi | |
callq __ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE | |
addq $32, %rsp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.section __TEXT,__textcoal_nt,coalesced,pure_instructions | |
.globl __ZNSt3__18functionIFiiEED1Ev | |
.weak_definition __ZNSt3__18functionIFiiEED1Ev | |
.align 4, 0x90 | |
__ZNSt3__18functionIFiiEED1Ev: ## @_ZNSt3__18functionIFiiEED1Ev | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp15: | |
.cfi_def_cfa_offset 16 | |
Ltmp16: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp17: | |
.cfi_def_cfa_register %rbp | |
subq $16, %rsp | |
movq %rdi, -8(%rbp) | |
movq -8(%rbp), %rdi | |
callq __ZNSt3__18functionIFiiEED2Ev | |
addq $16, %rsp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.globl __ZNSt3__18functionIFiiEED2Ev | |
.weak_definition __ZNSt3__18functionIFiiEED2Ev | |
.align 4, 0x90 | |
__ZNSt3__18functionIFiiEED2Ev: ## @_ZNSt3__18functionIFiiEED2Ev | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp20: | |
.cfi_def_cfa_offset 16 | |
Ltmp21: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp22: | |
.cfi_def_cfa_register %rbp | |
subq $16, %rsp | |
movq %rdi, -8(%rbp) | |
movq -8(%rbp), %rdi | |
movq 32(%rdi), %rax | |
movq %rdi, %rcx | |
cmpq %rcx, %rax | |
movq %rdi, -16(%rbp) ## 8-byte Spill | |
jne LBB3_2 | |
## BB#1: | |
movq -16(%rbp), %rax ## 8-byte Reload | |
movq 32(%rax), %rcx | |
movq (%rcx), %rdx | |
movq %rcx, %rdi | |
callq *32(%rdx) | |
jmp LBB3_5 | |
LBB3_2: | |
movq -16(%rbp), %rax ## 8-byte Reload | |
cmpq $0, 32(%rax) | |
je LBB3_4 | |
## BB#3: | |
movq -16(%rbp), %rax ## 8-byte Reload | |
movq 32(%rax), %rcx | |
movq (%rcx), %rdx | |
movq %rcx, %rdi | |
callq *40(%rdx) | |
LBB3_4: | |
LBB3_5: | |
addq $16, %rsp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.section __TEXT,__text,regular,pure_instructions | |
.align 4, 0x90 | |
__ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE: ## @"_ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp26: | |
.cfi_def_cfa_offset 16 | |
Ltmp27: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp28: | |
.cfi_def_cfa_register %rbp | |
pushq %rbx | |
subq $816, %rsp ## imm = 0x330 | |
Ltmp29: | |
.cfi_offset %rbx, -24 | |
movb $1, %al | |
leaq -928(%rbp), %rcx | |
movq %rdi, -920(%rbp) | |
movq %rsi, -936(%rbp) | |
movq -920(%rbp), %rsi | |
movq $0, 32(%rsi) | |
movq %rcx, -912(%rbp) | |
testb $1, %al | |
movq %rsi, -944(%rbp) ## 8-byte Spill | |
jne LBB4_1 | |
jmp LBB4_4 | |
LBB4_1: | |
movq -944(%rbp), %rax ## 8-byte Reload | |
movq -944(%rbp), %rcx ## 8-byte Reload | |
movq %rax, 32(%rcx) | |
movq 32(%rcx), %rax | |
cmpq $0, %rax | |
movq %rax, -952(%rbp) ## 8-byte Spill | |
je LBB4_3 | |
## BB#2: | |
leaq -760(%rbp), %rax | |
leaq -744(%rbp), %rcx | |
leaq -856(%rbp), %rdx | |
leaq -512(%rbp), %rsi | |
leaq -864(%rbp), %rdi | |
leaq -368(%rbp), %r8 | |
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE(%rip), %r9 | |
addq $16, %r9 | |
movq __ZTVNSt3__110__function6__baseIFiiEEE@GOTPCREL(%rip), %r10 | |
addq $16, %r10 | |
leaq -928(%rbp), %r11 | |
movq -952(%rbp), %rbx ## 8-byte Reload | |
movq %r11, -16(%rbp) | |
movq -16(%rbp), %r11 | |
movq %rbx, -896(%rbp) | |
movq %r11, -904(%rbp) | |
movq -896(%rbp), %r11 | |
movq -904(%rbp), %rbx | |
movq %r11, -832(%rbp) | |
movq %rbx, -840(%rbp) | |
movq -832(%rbp), %r11 | |
movq %r11, %rbx | |
movq %rbx, -824(%rbp) | |
movq -824(%rbp), %rbx | |
movq %r10, (%rbx) | |
movq %r9, (%r11) | |
addq $8, %r11 | |
movq -840(%rbp), %r9 | |
movq %r9, -24(%rbp) | |
movq -24(%rbp), %r9 | |
movq %r9, -360(%rbp) | |
movq -360(%rbp), %r9 | |
movq %r9, -352(%rbp) | |
movq -352(%rbp), %r9 | |
movq %r8, -216(%rbp) | |
movq %r9, -224(%rbp) | |
movq -216(%rbp), %r9 | |
movq -224(%rbp), %r10 | |
movq %r9, -168(%rbp) | |
movq %r10, -176(%rbp) | |
movq -168(%rbp), %r9 | |
movq -176(%rbp), %r10 | |
movq %r10, -160(%rbp) | |
movq -160(%rbp), %r10 | |
movq %r9, -112(%rbp) | |
movq %r10, -152(%rbp) | |
movq -112(%rbp), %r9 | |
movq -152(%rbp), %r10 | |
movq %r9, -64(%rbp) | |
movq %r10, -104(%rbp) | |
movq -64(%rbp), %r9 | |
movq -104(%rbp), %r10 | |
movq %r10, -56(%rbp) | |
movq -56(%rbp), %r10 | |
movq %r9, -40(%rbp) | |
movq %r10, -48(%rbp) | |
movq -40(%rbp), %r9 | |
movq -48(%rbp), %r10 | |
movq %r10, -32(%rbp) | |
movq -32(%rbp), %r10 | |
movq %r10, (%r9) | |
movq %rdi, -336(%rbp) | |
movq %r8, -344(%rbp) | |
movq -336(%rbp), %r8 | |
movq -344(%rbp), %r9 | |
movq %r8, -320(%rbp) | |
movq %r9, -328(%rbp) | |
movq -320(%rbp), %r8 | |
movq -328(%rbp), %r9 | |
movq %r9, -312(%rbp) | |
movq -312(%rbp), %r9 | |
movq %r8, -296(%rbp) | |
movq %r9, -304(%rbp) | |
movq -296(%rbp), %r8 | |
movq -304(%rbp), %r9 | |
movq %r8, -280(%rbp) | |
movq %r9, -288(%rbp) | |
movq -280(%rbp), %r8 | |
movq -288(%rbp), %r9 | |
movq %r9, -272(%rbp) | |
movq -272(%rbp), %r9 | |
movq %r9, -264(%rbp) | |
movq -264(%rbp), %r9 | |
movq (%r9), %r9 | |
movq %r9, -232(%rbp) | |
movq -232(%rbp), %r9 | |
movq %r8, -248(%rbp) | |
movq %r9, -256(%rbp) | |
movq -248(%rbp), %r8 | |
movq -256(%rbp), %r9 | |
movq %r9, -240(%rbp) | |
movq -240(%rbp), %r9 | |
movq %r9, (%r8) | |
movq %rdx, -480(%rbp) | |
movq %rdi, -488(%rbp) | |
movq -480(%rbp), %rdi | |
movq -488(%rbp), %r8 | |
movq %rdi, -464(%rbp) | |
movq %r8, -472(%rbp) | |
movq -464(%rbp), %rdi | |
movq -472(%rbp), %r8 | |
movq %r8, -456(%rbp) | |
movq -456(%rbp), %r8 | |
movq %rdi, -440(%rbp) | |
movq %r8, -448(%rbp) | |
movq -440(%rbp), %rdi | |
movq -448(%rbp), %r8 | |
movq %rdi, -424(%rbp) | |
movq %r8, -432(%rbp) | |
movq -424(%rbp), %rdi | |
movq -432(%rbp), %r8 | |
movq %r8, -416(%rbp) | |
movq -416(%rbp), %r8 | |
movq %r8, -408(%rbp) | |
movq -408(%rbp), %r8 | |
movq (%r8), %r8 | |
movq %r8, -376(%rbp) | |
movq -376(%rbp), %r8 | |
movq %rdi, -392(%rbp) | |
movq %r8, -400(%rbp) | |
movq -392(%rbp), %rdi | |
movq -400(%rbp), %r8 | |
movq %r8, -384(%rbp) | |
movq -384(%rbp), %r8 | |
movq %r8, (%rdi) | |
movq %rsi, -504(%rbp) | |
movq -504(%rbp), %rsi | |
movq %rsi, -496(%rbp) | |
movq %r11, -792(%rbp) | |
movq -792(%rbp), %rsi | |
movq %rsi, -728(%rbp) | |
movq -728(%rbp), %rsi | |
movq %rdx, -720(%rbp) | |
movq -720(%rbp), %rdx | |
movq %rax, -624(%rbp) | |
movq %rdx, -632(%rbp) | |
movq -624(%rbp), %rdx | |
movq -632(%rbp), %rdi | |
movq %rdx, -608(%rbp) | |
movq %rdi, -616(%rbp) | |
movq -608(%rbp), %rdx | |
movq -616(%rbp), %rdi | |
movq %rdi, -600(%rbp) | |
movq -600(%rbp), %rdi | |
movq %rdx, -584(%rbp) | |
movq %rdi, -592(%rbp) | |
movq -584(%rbp), %rdx | |
movq -592(%rbp), %rdi | |
movq %rdx, -568(%rbp) | |
movq %rdi, -576(%rbp) | |
movq -568(%rbp), %rdx | |
movq -576(%rbp), %rdi | |
movq %rdi, -560(%rbp) | |
movq -560(%rbp), %rdi | |
movq %rdi, -552(%rbp) | |
movq -552(%rbp), %rdi | |
movq (%rdi), %rdi | |
movq %rdi, -520(%rbp) | |
movq -520(%rbp), %rdi | |
movq %rdx, -536(%rbp) | |
movq %rdi, -544(%rbp) | |
movq -536(%rbp), %rdx | |
movq -544(%rbp), %rdi | |
movq %rdi, -528(%rbp) | |
movq -528(%rbp), %rdi | |
movq %rdi, (%rdx) | |
movq %rcx, -640(%rbp) | |
movq %rsi, -680(%rbp) | |
movq -680(%rbp), %rcx | |
movq %rax, -672(%rbp) | |
movq -672(%rbp), %rax | |
movq %rax, -664(%rbp) | |
movq -664(%rbp), %rax | |
movq (%rax), %rax | |
movq %rax, -648(%rbp) | |
movq %rcx, -656(%rbp) | |
LBB4_3: | |
LBB4_4: | |
addq $816, %rsp ## imm = 0x330 | |
popq %rbx | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp32: | |
.cfi_def_cfa_offset 16 | |
Ltmp33: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp34: | |
.cfi_def_cfa_register %rbp | |
subq $16, %rsp | |
movq %rdi, -8(%rbp) | |
movq -8(%rbp), %rdi | |
callq __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev | |
addq $16, %rsp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp37: | |
.cfi_def_cfa_offset 16 | |
Ltmp38: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp39: | |
.cfi_def_cfa_register %rbp | |
subq $16, %rsp | |
movq %rdi, -8(%rbp) | |
movq -8(%rbp), %rdi | |
movq %rdi, -16(%rbp) ## 8-byte Spill | |
callq __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev | |
movq -16(%rbp), %rdi ## 8-byte Reload | |
callq __ZdlPv | |
addq $16, %rsp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp43: | |
.cfi_def_cfa_offset 16 | |
Ltmp44: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp45: | |
.cfi_def_cfa_register %rbp | |
pushq %r15 | |
pushq %r14 | |
pushq %r13 | |
pushq %r12 | |
pushq %rbx | |
subq $2344, %rsp ## imm = 0x928 | |
Ltmp46: | |
.cfi_offset %rbx, -56 | |
Ltmp47: | |
.cfi_offset %r12, -48 | |
Ltmp48: | |
.cfi_offset %r13, -40 | |
Ltmp49: | |
.cfi_offset %r14, -32 | |
Ltmp50: | |
.cfi_offset %r15, -24 | |
leaq -2272(%rbp), %rax | |
movq %rdi, -2264(%rbp) | |
movq -2264(%rbp), %rdi | |
movq %rdi, %rcx | |
addq $8, %rcx | |
movq %rcx, -2256(%rbp) | |
movq -2256(%rbp), %rcx | |
movq %rcx, -2248(%rbp) | |
movq -2248(%rbp), %rcx | |
movq %rax, -2080(%rbp) | |
movq %rcx, -2088(%rbp) | |
movq -2080(%rbp), %rcx | |
movq -2088(%rbp), %rdx | |
movq %rcx, -2064(%rbp) | |
movq %rdx, -2072(%rbp) | |
movq %rax, -1888(%rbp) | |
movq $1, -1896(%rbp) | |
movq $0, -1904(%rbp) | |
movq -1896(%rbp), %rax | |
shlq $4, %rax | |
movq %rdi, -2344(%rbp) ## 8-byte Spill | |
movq %rax, %rdi | |
callq __Znwm | |
leaq -2312(%rbp), %rcx | |
leaq -2296(%rbp), %rdx | |
leaq -2272(%rbp), %rdi | |
movq %rcx, -1864(%rbp) | |
movq %rdi, -1872(%rbp) | |
movq $1, -1880(%rbp) | |
movq -1864(%rbp), %rdi | |
movq -1880(%rbp), %rsi | |
movq -1872(%rbp), %r8 | |
movq %rdi, -1840(%rbp) | |
movq %r8, -1848(%rbp) | |
movq %rsi, -1856(%rbp) | |
movq -1840(%rbp), %rsi | |
movq -1848(%rbp), %rdi | |
movq %rdi, (%rsi) | |
movq -1856(%rbp), %rdi | |
movq %rdi, 8(%rsi) | |
movq %rdx, -240(%rbp) | |
movq %rax, -248(%rbp) | |
movq %rcx, -256(%rbp) | |
movq -240(%rbp), %rax | |
movq -248(%rbp), %rcx | |
movq -256(%rbp), %rdx | |
movq %rax, -200(%rbp) | |
movq %rcx, -208(%rbp) | |
movq %rdx, -216(%rbp) | |
movq -200(%rbp), %rax | |
movq -208(%rbp), %rcx | |
movq -216(%rbp), %rdx | |
movq %rdx, -192(%rbp) | |
movq -192(%rbp), %rdx | |
movq (%rdx), %rsi | |
movq %rsi, -232(%rbp) | |
movq 8(%rdx), %rdx | |
movq %rdx, -224(%rbp) | |
leaq -136(%rbp), %rdx | |
leaq -120(%rbp), %rsi | |
movq -232(%rbp), %rdi | |
movq -224(%rbp), %r8 | |
movq %rax, -160(%rbp) | |
movq %rcx, -168(%rbp) | |
movq %rdi, -184(%rbp) | |
movq %r8, -176(%rbp) | |
movq -160(%rbp), %rax | |
movq -168(%rbp), %rcx | |
movq -184(%rbp), %rdi | |
movq -176(%rbp), %r8 | |
movq %rax, -112(%rbp) | |
movq %rcx, -120(%rbp) | |
movq %rdi, -136(%rbp) | |
movq %r8, -128(%rbp) | |
movq -112(%rbp), %rax | |
movq %rsi, -104(%rbp) | |
movq -104(%rbp), %rcx | |
movq (%rcx), %rcx | |
movq %rdx, -48(%rbp) | |
movq -48(%rbp), %rdx | |
movq (%rdx), %rsi | |
movq %rsi, -152(%rbp) | |
movq 8(%rdx), %rdx | |
movq %rdx, -144(%rbp) | |
leaq -96(%rbp), %rdx | |
leaq -80(%rbp), %rsi | |
movq -152(%rbp), %rdi | |
movq -144(%rbp), %r8 | |
movq %rax, -72(%rbp) | |
movq %rcx, -80(%rbp) | |
movq %rdi, -96(%rbp) | |
movq %r8, -88(%rbp) | |
movq -72(%rbp), %rax | |
movq %rsi, -64(%rbp) | |
movq -64(%rbp), %rcx | |
movq (%rcx), %rcx | |
movq %rcx, (%rax) | |
movq %rdx, -56(%rbp) | |
movq -56(%rbp), %rcx | |
movq (%rcx), %rdx | |
movq %rdx, 8(%rax) | |
movq 8(%rcx), %rcx | |
movq %rcx, 16(%rax) | |
leaq -2296(%rbp), %rax | |
movq %rax, -280(%rbp) | |
movq -280(%rbp), %rax | |
movq %rax, -272(%rbp) | |
movq -272(%rbp), %rax | |
movq %rax, -264(%rbp) | |
movq -264(%rbp), %rax | |
movq (%rax), %rax | |
cmpq $0, %rax | |
movq %rax, -2352(%rbp) ## 8-byte Spill | |
je LBB7_3 | |
## BB#1: | |
leaq -1632(%rbp), %rax | |
leaq -1624(%rbp), %rcx | |
leaq -1752(%rbp), %rdx | |
leaq -1720(%rbp), %rsi | |
leaq -1760(%rbp), %rdi | |
leaq -1136(%rbp), %r8 | |
leaq -1728(%rbp), %r9 | |
leaq -664(%rbp), %r10 | |
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE(%rip), %r11 | |
addq $16, %r11 | |
movq __ZTVNSt3__110__function6__baseIFiiEEE@GOTPCREL(%rip), %rbx | |
addq $16, %rbx | |
leaq -2320(%rbp), %r14 | |
leaq -2272(%rbp), %r15 | |
movq -2352(%rbp), %r12 ## 8-byte Reload | |
movq -2344(%rbp), %r13 ## 8-byte Reload | |
addq $8, %r13 | |
movq %r13, -296(%rbp) | |
movq -296(%rbp), %r13 | |
movq %r13, -288(%rbp) | |
movq -288(%rbp), %r13 | |
movq %r14, -320(%rbp) | |
movq %r15, -328(%rbp) | |
movq -320(%rbp), %r15 | |
movq %rax, -2360(%rbp) ## 8-byte Spill | |
movq -328(%rbp), %rax | |
movq %r15, -304(%rbp) | |
movq %rax, -312(%rbp) | |
movq %r12, -1768(%rbp) | |
movq %r13, -1776(%rbp) | |
movq %r14, -1784(%rbp) | |
movq -1768(%rbp), %rax | |
movq -1776(%rbp), %r14 | |
movq -1784(%rbp), %r15 | |
movq %rax, -1688(%rbp) | |
movq %r14, -1696(%rbp) | |
movq %r15, -1704(%rbp) | |
movq -1688(%rbp), %rax | |
movq %rax, %r14 | |
movq %r14, -1680(%rbp) | |
movq -1680(%rbp), %r14 | |
movq %rbx, (%r14) | |
movq %r11, (%rax) | |
addq $8, %rax | |
movq -1696(%rbp), %r11 | |
movq %r11, -656(%rbp) | |
movq -656(%rbp), %r11 | |
movq %r11, -648(%rbp) | |
movq -648(%rbp), %r11 | |
movq %r10, -512(%rbp) | |
movq %r11, -520(%rbp) | |
movq -512(%rbp), %r11 | |
movq -520(%rbp), %rbx | |
movq %r11, -464(%rbp) | |
movq %rbx, -472(%rbp) | |
movq -464(%rbp), %r11 | |
movq -472(%rbp), %rbx | |
movq %r11, -416(%rbp) | |
movq %rbx, -456(%rbp) | |
movq -416(%rbp), %r11 | |
movq -456(%rbp), %rbx | |
movq %r11, -368(%rbp) | |
movq %rbx, -408(%rbp) | |
movq -368(%rbp), %r11 | |
movq -408(%rbp), %rbx | |
movq %rbx, -360(%rbp) | |
movq -360(%rbp), %rbx | |
movq %r11, -344(%rbp) | |
movq %rbx, -352(%rbp) | |
movq -344(%rbp), %r11 | |
movq -352(%rbp), %rbx | |
movq %rbx, -336(%rbp) | |
movq -336(%rbp), %rbx | |
movq %rbx, (%r11) | |
movq %r9, -632(%rbp) | |
movq %r10, -640(%rbp) | |
movq -632(%rbp), %r10 | |
movq -640(%rbp), %r11 | |
movq %r10, -616(%rbp) | |
movq %r11, -624(%rbp) | |
movq -616(%rbp), %r10 | |
movq -624(%rbp), %r11 | |
movq %r11, -608(%rbp) | |
movq -608(%rbp), %r11 | |
movq %r10, -592(%rbp) | |
movq %r11, -600(%rbp) | |
movq -592(%rbp), %r10 | |
movq -600(%rbp), %r11 | |
movq %r10, -576(%rbp) | |
movq %r11, -584(%rbp) | |
movq -576(%rbp), %r10 | |
movq -584(%rbp), %r11 | |
movq %r11, -568(%rbp) | |
movq -568(%rbp), %r11 | |
movq %r11, -560(%rbp) | |
movq -560(%rbp), %r11 | |
movq (%r11), %r11 | |
movq %r11, -528(%rbp) | |
movq -528(%rbp), %r11 | |
movq %r10, -544(%rbp) | |
movq %r11, -552(%rbp) | |
movq -544(%rbp), %r10 | |
movq -552(%rbp), %r11 | |
movq %r11, -536(%rbp) | |
movq -536(%rbp), %r11 | |
movq %r11, (%r10) | |
movq %rsi, -776(%rbp) | |
movq %r9, -784(%rbp) | |
movq -776(%rbp), %r9 | |
movq -784(%rbp), %r10 | |
movq %r9, -760(%rbp) | |
movq %r10, -768(%rbp) | |
movq -760(%rbp), %r9 | |
movq -768(%rbp), %r10 | |
movq %r10, -752(%rbp) | |
movq -752(%rbp), %r10 | |
movq %r9, -736(%rbp) | |
movq %r10, -744(%rbp) | |
movq -736(%rbp), %r9 | |
movq -744(%rbp), %r10 | |
movq %r9, -720(%rbp) | |
movq %r10, -728(%rbp) | |
movq -720(%rbp), %r9 | |
movq -728(%rbp), %r10 | |
movq %r10, -712(%rbp) | |
movq -712(%rbp), %r10 | |
movq %r10, -704(%rbp) | |
movq -704(%rbp), %r10 | |
movq (%r10), %r10 | |
movq %r10, -672(%rbp) | |
movq -672(%rbp), %r10 | |
movq %r9, -688(%rbp) | |
movq %r10, -696(%rbp) | |
movq -688(%rbp), %r9 | |
movq -696(%rbp), %r10 | |
movq %r10, -680(%rbp) | |
movq -680(%rbp), %r10 | |
movq %r10, (%r9) | |
movq -1704(%rbp), %r9 | |
movq %r9, -792(%rbp) | |
movq -792(%rbp), %r9 | |
movq %r9, -1128(%rbp) | |
movq -1128(%rbp), %r9 | |
movq %r9, -1120(%rbp) | |
movq -1120(%rbp), %r9 | |
movq %r8, -984(%rbp) | |
movq %r9, -992(%rbp) | |
movq -984(%rbp), %r9 | |
movq -992(%rbp), %r10 | |
movq %r9, -936(%rbp) | |
movq %r10, -944(%rbp) | |
movq -936(%rbp), %r9 | |
movq -944(%rbp), %r10 | |
movq %r10, -928(%rbp) | |
movq -928(%rbp), %r10 | |
movq %r9, -880(%rbp) | |
movq %r10, -920(%rbp) | |
movq -880(%rbp), %r9 | |
movq -920(%rbp), %r10 | |
movq %r9, -832(%rbp) | |
movq %r10, -872(%rbp) | |
movq -832(%rbp), %r9 | |
movq -872(%rbp), %r10 | |
movq %r10, -824(%rbp) | |
movq -824(%rbp), %r10 | |
movq %r9, -808(%rbp) | |
movq %r10, -816(%rbp) | |
movq -808(%rbp), %r9 | |
movq -816(%rbp), %r10 | |
movq %r10, -800(%rbp) | |
movq -800(%rbp), %r10 | |
movq %r10, (%r9) | |
movq %rdi, -1104(%rbp) | |
movq %r8, -1112(%rbp) | |
movq -1104(%rbp), %r8 | |
movq -1112(%rbp), %r9 | |
movq %r8, -1088(%rbp) | |
movq %r9, -1096(%rbp) | |
movq -1088(%rbp), %r8 | |
movq -1096(%rbp), %r9 | |
movq %r9, -1080(%rbp) | |
movq -1080(%rbp), %r9 | |
movq %r8, -1064(%rbp) | |
movq %r9, -1072(%rbp) | |
movq -1064(%rbp), %r8 | |
movq -1072(%rbp), %r9 | |
movq %r8, -1048(%rbp) | |
movq %r9, -1056(%rbp) | |
movq -1048(%rbp), %r8 | |
movq -1056(%rbp), %r9 | |
movq %r9, -1040(%rbp) | |
movq -1040(%rbp), %r9 | |
movq %r9, -1032(%rbp) | |
movq -1032(%rbp), %r9 | |
movq (%r9), %r9 | |
movq %r9, -1000(%rbp) | |
movq -1000(%rbp), %r9 | |
movq %r8, -1016(%rbp) | |
movq %r9, -1024(%rbp) | |
movq -1016(%rbp), %r8 | |
movq -1024(%rbp), %r9 | |
movq %r9, -1008(%rbp) | |
movq -1008(%rbp), %r9 | |
movq %r9, (%r8) | |
movq %rdx, -1248(%rbp) | |
movq %rdi, -1256(%rbp) | |
movq -1248(%rbp), %rdi | |
movq -1256(%rbp), %r8 | |
movq %rdi, -1232(%rbp) | |
movq %r8, -1240(%rbp) | |
movq -1232(%rbp), %rdi | |
movq -1240(%rbp), %r8 | |
movq %r8, -1224(%rbp) | |
movq -1224(%rbp), %r8 | |
movq %rdi, -1208(%rbp) | |
movq %r8, -1216(%rbp) | |
movq -1208(%rbp), %rdi | |
movq -1216(%rbp), %r8 | |
movq %rdi, -1192(%rbp) | |
movq %r8, -1200(%rbp) | |
movq -1192(%rbp), %rdi | |
movq -1200(%rbp), %r8 | |
movq %r8, -1184(%rbp) | |
movq -1184(%rbp), %r8 | |
movq %r8, -1176(%rbp) | |
movq -1176(%rbp), %r8 | |
movq (%r8), %r8 | |
movq %r8, -1144(%rbp) | |
movq -1144(%rbp), %r8 | |
movq %rdi, -1160(%rbp) | |
movq %r8, -1168(%rbp) | |
movq -1160(%rbp), %rdi | |
movq -1168(%rbp), %r8 | |
movq %r8, -1152(%rbp) | |
movq -1152(%rbp), %r8 | |
movq %r8, (%rdi) | |
movq %rax, -1656(%rbp) | |
movq -1656(%rbp), %rax | |
movq %rax, -1600(%rbp) | |
movq -1600(%rbp), %rax | |
movq %rsi, -1592(%rbp) | |
movq -1592(%rbp), %rsi | |
movq %rcx, -1368(%rbp) | |
movq %rsi, -1376(%rbp) | |
movq -1368(%rbp), %rsi | |
movq -1376(%rbp), %rdi | |
movq %rsi, -1352(%rbp) | |
movq %rdi, -1360(%rbp) | |
movq -1352(%rbp), %rsi | |
movq -1360(%rbp), %rdi | |
movq %rdi, -1344(%rbp) | |
movq -1344(%rbp), %rdi | |
movq %rsi, -1328(%rbp) | |
movq %rdi, -1336(%rbp) | |
movq -1328(%rbp), %rsi | |
movq -1336(%rbp), %rdi | |
movq %rsi, -1312(%rbp) | |
movq %rdi, -1320(%rbp) | |
movq -1312(%rbp), %rsi | |
movq -1320(%rbp), %rdi | |
movq %rdi, -1304(%rbp) | |
movq -1304(%rbp), %rdi | |
movq %rdi, -1296(%rbp) | |
movq -1296(%rbp), %rdi | |
movq (%rdi), %rdi | |
movq %rdi, -1264(%rbp) | |
movq -1264(%rbp), %rdi | |
movq %rsi, -1280(%rbp) | |
movq %rdi, -1288(%rbp) | |
movq -1280(%rbp), %rsi | |
movq -1288(%rbp), %rdi | |
movq %rdi, -1272(%rbp) | |
movq -1272(%rbp), %rdi | |
movq %rdi, (%rsi) | |
movq %rdx, -1384(%rbp) | |
movq -1384(%rbp), %rdx | |
movq -2360(%rbp), %rsi ## 8-byte Reload | |
movq %rsi, -1496(%rbp) | |
movq %rdx, -1504(%rbp) | |
movq -1496(%rbp), %rdx | |
movq -1504(%rbp), %rdi | |
movq %rdx, -1480(%rbp) | |
movq %rdi, -1488(%rbp) | |
movq -1480(%rbp), %rdx | |
movq -1488(%rbp), %rdi | |
movq %rdi, -1472(%rbp) | |
movq -1472(%rbp), %rdi | |
movq %rdx, -1456(%rbp) | |
movq %rdi, -1464(%rbp) | |
movq -1456(%rbp), %rdx | |
movq -1464(%rbp), %rdi | |
movq %rdx, -1440(%rbp) | |
movq %rdi, -1448(%rbp) | |
movq -1440(%rbp), %rdx | |
movq -1448(%rbp), %rdi | |
movq %rdi, -1432(%rbp) | |
movq -1432(%rbp), %rdi | |
movq %rdi, -1424(%rbp) | |
movq -1424(%rbp), %rdi | |
movq (%rdi), %rdi | |
movq %rdi, -1392(%rbp) | |
movq -1392(%rbp), %rdi | |
movq %rdx, -1408(%rbp) | |
movq %rdi, -1416(%rbp) | |
movq -1408(%rbp), %rdx | |
movq -1416(%rbp), %rdi | |
movq %rdi, -1400(%rbp) | |
movq -1400(%rbp), %rdi | |
movq %rdi, (%rdx) | |
movq %rax, -1560(%rbp) | |
movq %rcx, -1552(%rbp) | |
movq -1552(%rbp), %rax | |
movq %rax, -1544(%rbp) | |
movq -1544(%rbp), %rax | |
movq (%rax), %rax | |
movq %rax, -1512(%rbp) | |
movq %rsi, -1528(%rbp) | |
movq -1528(%rbp), %rax | |
movq %rax, -1520(%rbp) | |
movq -1520(%rbp), %rax | |
movq (%rax), %rax | |
movq %rax, -1536(%rbp) | |
## BB#2: | |
LBB7_3: | |
leaq -2296(%rbp), %rax | |
movq %rax, -1824(%rbp) | |
movq -1824(%rbp), %rcx | |
movq %rcx, -1816(%rbp) | |
movq -1816(%rbp), %rdx | |
movq %rdx, -1808(%rbp) | |
movq -1808(%rbp), %rdx | |
movq (%rdx), %rdx | |
movq %rdx, -1832(%rbp) | |
movq %rcx, -1800(%rbp) | |
movq -1800(%rbp), %rcx | |
movq %rcx, -1792(%rbp) | |
movq -1792(%rbp), %rcx | |
movq $0, (%rcx) | |
movq -1832(%rbp), %rcx | |
movl $1, -2336(%rbp) | |
movq %rax, -2056(%rbp) | |
movq -2056(%rbp), %rax | |
movq %rax, -2048(%rbp) | |
movq -2048(%rbp), %rax | |
movq %rax, -2024(%rbp) | |
movq $0, -2032(%rbp) | |
movq -2024(%rbp), %rax | |
movq %rax, -2016(%rbp) | |
movq -2016(%rbp), %rdx | |
movq %rdx, -2008(%rbp) | |
movq -2008(%rbp), %rdx | |
movq (%rdx), %rdx | |
movq %rdx, -2040(%rbp) | |
movq -2032(%rbp), %rdx | |
movq %rax, -1936(%rbp) | |
movq -1936(%rbp), %rsi | |
movq %rsi, -1928(%rbp) | |
movq -1928(%rbp), %rsi | |
movq %rdx, (%rsi) | |
cmpq $0, -2040(%rbp) | |
movq %rcx, -2368(%rbp) ## 8-byte Spill | |
movq %rax, -2376(%rbp) ## 8-byte Spill | |
je LBB7_5 | |
## BB#4: | |
movq -2376(%rbp), %rax ## 8-byte Reload | |
movq %rax, -1920(%rbp) | |
movq -1920(%rbp), %rcx | |
movq %rcx, -1912(%rbp) | |
movq -1912(%rbp), %rcx | |
addq $8, %rcx | |
movq -2040(%rbp), %rdx | |
movq %rcx, -1992(%rbp) | |
movq %rdx, -2000(%rbp) | |
movq -1992(%rbp), %rcx | |
movq (%rcx), %rdx | |
movq -2000(%rbp), %rsi | |
movq 8(%rcx), %rcx | |
movq %rdx, -1968(%rbp) | |
movq %rsi, -1976(%rbp) | |
movq %rcx, -1984(%rbp) | |
movq -1968(%rbp), %rcx | |
movq -1976(%rbp), %rdx | |
movq -1984(%rbp), %rsi | |
movq %rcx, -1944(%rbp) | |
movq %rdx, -1952(%rbp) | |
movq %rsi, -1960(%rbp) | |
movq -1952(%rbp), %rcx | |
movq %rcx, %rdi | |
callq __ZdlPv | |
LBB7_5: ## %_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit2 | |
movq -2368(%rbp), %rax ## 8-byte Reload | |
addq $2344, %rsp ## imm = 0x928 | |
popq %rbx | |
popq %r12 | |
popq %r13 | |
popq %r14 | |
popq %r15 | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp54: | |
.cfi_def_cfa_offset 16 | |
Ltmp55: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp56: | |
.cfi_def_cfa_register %rbp | |
pushq %r15 | |
pushq %r14 | |
pushq %r12 | |
pushq %rbx | |
subq $1376, %rsp ## imm = 0x560 | |
Ltmp57: | |
.cfi_offset %rbx, -48 | |
Ltmp58: | |
.cfi_offset %r12, -40 | |
Ltmp59: | |
.cfi_offset %r14, -32 | |
Ltmp60: | |
.cfi_offset %r15, -24 | |
movq %rdi, -1512(%rbp) | |
movq %rsi, -1520(%rbp) | |
movq -1512(%rbp), %rsi | |
movq -1520(%rbp), %rdi | |
cmpq $0, %rdi | |
movq %rsi, -1528(%rbp) ## 8-byte Spill | |
movq %rdi, -1536(%rbp) ## 8-byte Spill | |
je LBB8_2 | |
## BB#1: | |
leaq -1336(%rbp), %rax | |
leaq -1328(%rbp), %rcx | |
leaq -1456(%rbp), %rdx | |
leaq -1424(%rbp), %rsi | |
leaq -1464(%rbp), %rdi | |
leaq -840(%rbp), %r8 | |
leaq -1432(%rbp), %r9 | |
leaq -384(%rbp), %r10 | |
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE(%rip), %r11 | |
addq $16, %r11 | |
movq __ZTVNSt3__110__function6__baseIFiiEEE@GOTPCREL(%rip), %rbx | |
addq $16, %rbx | |
movq -1536(%rbp), %r14 ## 8-byte Reload | |
movq -1528(%rbp), %r15 ## 8-byte Reload | |
addq $8, %r15 | |
movq %r15, -1504(%rbp) | |
movq -1504(%rbp), %r15 | |
movq %r15, -1496(%rbp) | |
movq -1496(%rbp), %r15 | |
movq -1528(%rbp), %r12 ## 8-byte Reload | |
addq $8, %r12 | |
movq %r12, -48(%rbp) | |
movq -48(%rbp), %r12 | |
movq %r12, -40(%rbp) | |
movq -40(%rbp), %r12 | |
movq %r14, -1472(%rbp) | |
movq %r15, -1480(%rbp) | |
movq %r12, -1488(%rbp) | |
movq -1472(%rbp), %r14 | |
movq -1480(%rbp), %r15 | |
movq -1488(%rbp), %r12 | |
movq %r14, -1392(%rbp) | |
movq %r15, -1400(%rbp) | |
movq %r12, -1408(%rbp) | |
movq -1392(%rbp), %r14 | |
movq %r14, %r15 | |
movq %r15, -1384(%rbp) | |
movq -1384(%rbp), %r15 | |
movq %rbx, (%r15) | |
movq %r11, (%r14) | |
addq $8, %r14 | |
movq -1400(%rbp), %r11 | |
movq %r11, -376(%rbp) | |
movq -376(%rbp), %r11 | |
movq %r11, -368(%rbp) | |
movq -368(%rbp), %r11 | |
movq %r10, -232(%rbp) | |
movq %r11, -240(%rbp) | |
movq -232(%rbp), %r11 | |
movq -240(%rbp), %rbx | |
movq %r11, -184(%rbp) | |
movq %rbx, -192(%rbp) | |
movq -184(%rbp), %r11 | |
movq -192(%rbp), %rbx | |
movq %r11, -136(%rbp) | |
movq %rbx, -176(%rbp) | |
movq -136(%rbp), %r11 | |
movq -176(%rbp), %rbx | |
movq %r11, -88(%rbp) | |
movq %rbx, -128(%rbp) | |
movq -88(%rbp), %r11 | |
movq -128(%rbp), %rbx | |
movq %rbx, -80(%rbp) | |
movq -80(%rbp), %rbx | |
movq %r11, -64(%rbp) | |
movq %rbx, -72(%rbp) | |
movq -64(%rbp), %r11 | |
movq -72(%rbp), %rbx | |
movq %rbx, -56(%rbp) | |
movq -56(%rbp), %rbx | |
movq %rbx, (%r11) | |
movq %r9, -352(%rbp) | |
movq %r10, -360(%rbp) | |
movq -352(%rbp), %r10 | |
movq -360(%rbp), %r11 | |
movq %r10, -336(%rbp) | |
movq %r11, -344(%rbp) | |
movq -336(%rbp), %r10 | |
movq -344(%rbp), %r11 | |
movq %r11, -328(%rbp) | |
movq -328(%rbp), %r11 | |
movq %r10, -312(%rbp) | |
movq %r11, -320(%rbp) | |
movq -312(%rbp), %r10 | |
movq -320(%rbp), %r11 | |
movq %r10, -296(%rbp) | |
movq %r11, -304(%rbp) | |
movq -296(%rbp), %r10 | |
movq -304(%rbp), %r11 | |
movq %r11, -288(%rbp) | |
movq -288(%rbp), %r11 | |
movq %r11, -280(%rbp) | |
movq -280(%rbp), %r11 | |
movq (%r11), %r11 | |
movq %r11, -248(%rbp) | |
movq -248(%rbp), %r11 | |
movq %r10, -264(%rbp) | |
movq %r11, -272(%rbp) | |
movq -264(%rbp), %r10 | |
movq -272(%rbp), %r11 | |
movq %r11, -256(%rbp) | |
movq -256(%rbp), %r11 | |
movq %r11, (%r10) | |
movq %rsi, -496(%rbp) | |
movq %r9, -504(%rbp) | |
movq -496(%rbp), %r9 | |
movq -504(%rbp), %r10 | |
movq %r9, -480(%rbp) | |
movq %r10, -488(%rbp) | |
movq -480(%rbp), %r9 | |
movq -488(%rbp), %r10 | |
movq %r10, -472(%rbp) | |
movq -472(%rbp), %r10 | |
movq %r9, -456(%rbp) | |
movq %r10, -464(%rbp) | |
movq -456(%rbp), %r9 | |
movq -464(%rbp), %r10 | |
movq %r9, -440(%rbp) | |
movq %r10, -448(%rbp) | |
movq -440(%rbp), %r9 | |
movq -448(%rbp), %r10 | |
movq %r10, -432(%rbp) | |
movq -432(%rbp), %r10 | |
movq %r10, -424(%rbp) | |
movq -424(%rbp), %r10 | |
movq (%r10), %r10 | |
movq %r10, -392(%rbp) | |
movq -392(%rbp), %r10 | |
movq %r9, -408(%rbp) | |
movq %r10, -416(%rbp) | |
movq -408(%rbp), %r9 | |
movq -416(%rbp), %r10 | |
movq %r10, -400(%rbp) | |
movq -400(%rbp), %r10 | |
movq %r10, (%r9) | |
movq -1408(%rbp), %r9 | |
movq %r9, -832(%rbp) | |
movq -832(%rbp), %r9 | |
movq %r9, -824(%rbp) | |
movq -824(%rbp), %r9 | |
movq %r8, -688(%rbp) | |
movq %r9, -696(%rbp) | |
movq -688(%rbp), %r9 | |
movq -696(%rbp), %r10 | |
movq %r9, -640(%rbp) | |
movq %r10, -648(%rbp) | |
movq -640(%rbp), %r9 | |
movq -648(%rbp), %r10 | |
movq %r9, -592(%rbp) | |
movq %r10, -632(%rbp) | |
movq -592(%rbp), %r9 | |
movq -632(%rbp), %r10 | |
movq %r9, -544(%rbp) | |
movq %r10, -584(%rbp) | |
movq -544(%rbp), %r9 | |
movq -584(%rbp), %r10 | |
movq %r10, -536(%rbp) | |
movq -536(%rbp), %r10 | |
movq %r9, -520(%rbp) | |
movq %r10, -528(%rbp) | |
movq -520(%rbp), %r9 | |
movq -528(%rbp), %r10 | |
movq %r10, -512(%rbp) | |
movq -512(%rbp), %r10 | |
movq %r10, (%r9) | |
movq %rdi, -808(%rbp) | |
movq %r8, -816(%rbp) | |
movq -808(%rbp), %r8 | |
movq -816(%rbp), %r9 | |
movq %r8, -792(%rbp) | |
movq %r9, -800(%rbp) | |
movq -792(%rbp), %r8 | |
movq -800(%rbp), %r9 | |
movq %r9, -784(%rbp) | |
movq -784(%rbp), %r9 | |
movq %r8, -768(%rbp) | |
movq %r9, -776(%rbp) | |
movq -768(%rbp), %r8 | |
movq -776(%rbp), %r9 | |
movq %r8, -752(%rbp) | |
movq %r9, -760(%rbp) | |
movq -752(%rbp), %r8 | |
movq -760(%rbp), %r9 | |
movq %r9, -744(%rbp) | |
movq -744(%rbp), %r9 | |
movq %r9, -736(%rbp) | |
movq -736(%rbp), %r9 | |
movq (%r9), %r9 | |
movq %r9, -704(%rbp) | |
movq -704(%rbp), %r9 | |
movq %r8, -720(%rbp) | |
movq %r9, -728(%rbp) | |
movq -720(%rbp), %r8 | |
movq -728(%rbp), %r9 | |
movq %r9, -712(%rbp) | |
movq -712(%rbp), %r9 | |
movq %r9, (%r8) | |
movq %rdx, -952(%rbp) | |
movq %rdi, -960(%rbp) | |
movq -952(%rbp), %rdi | |
movq -960(%rbp), %r8 | |
movq %rdi, -936(%rbp) | |
movq %r8, -944(%rbp) | |
movq -936(%rbp), %rdi | |
movq -944(%rbp), %r8 | |
movq %r8, -928(%rbp) | |
movq -928(%rbp), %r8 | |
movq %rdi, -912(%rbp) | |
movq %r8, -920(%rbp) | |
movq -912(%rbp), %rdi | |
movq -920(%rbp), %r8 | |
movq %rdi, -896(%rbp) | |
movq %r8, -904(%rbp) | |
movq -896(%rbp), %rdi | |
movq -904(%rbp), %r8 | |
movq %r8, -888(%rbp) | |
movq -888(%rbp), %r8 | |
movq %r8, -880(%rbp) | |
movq -880(%rbp), %r8 | |
movq (%r8), %r8 | |
movq %r8, -848(%rbp) | |
movq -848(%rbp), %r8 | |
movq %rdi, -864(%rbp) | |
movq %r8, -872(%rbp) | |
movq -864(%rbp), %rdi | |
movq -872(%rbp), %r8 | |
movq %r8, -856(%rbp) | |
movq -856(%rbp), %r8 | |
movq %r8, (%rdi) | |
movq %r14, -1360(%rbp) | |
movq -1360(%rbp), %rdi | |
movq %rdi, -1304(%rbp) | |
movq -1304(%rbp), %rdi | |
movq %rsi, -1296(%rbp) | |
movq -1296(%rbp), %rsi | |
movq %rcx, -1072(%rbp) | |
movq %rsi, -1080(%rbp) | |
movq -1072(%rbp), %rsi | |
movq -1080(%rbp), %r8 | |
movq %rsi, -1056(%rbp) | |
movq %r8, -1064(%rbp) | |
movq -1056(%rbp), %rsi | |
movq -1064(%rbp), %r8 | |
movq %r8, -1048(%rbp) | |
movq -1048(%rbp), %r8 | |
movq %rsi, -1032(%rbp) | |
movq %r8, -1040(%rbp) | |
movq -1032(%rbp), %rsi | |
movq -1040(%rbp), %r8 | |
movq %rsi, -1016(%rbp) | |
movq %r8, -1024(%rbp) | |
movq -1016(%rbp), %rsi | |
movq -1024(%rbp), %r8 | |
movq %r8, -1008(%rbp) | |
movq -1008(%rbp), %r8 | |
movq %r8, -1000(%rbp) | |
movq -1000(%rbp), %r8 | |
movq (%r8), %r8 | |
movq %r8, -968(%rbp) | |
movq -968(%rbp), %r8 | |
movq %rsi, -984(%rbp) | |
movq %r8, -992(%rbp) | |
movq -984(%rbp), %rsi | |
movq -992(%rbp), %r8 | |
movq %r8, -976(%rbp) | |
movq -976(%rbp), %r8 | |
movq %r8, (%rsi) | |
movq %rdx, -1088(%rbp) | |
movq -1088(%rbp), %rdx | |
movq %rax, -1200(%rbp) | |
movq %rdx, -1208(%rbp) | |
movq -1200(%rbp), %rdx | |
movq -1208(%rbp), %rsi | |
movq %rdx, -1184(%rbp) | |
movq %rsi, -1192(%rbp) | |
movq -1184(%rbp), %rdx | |
movq -1192(%rbp), %rsi | |
movq %rsi, -1176(%rbp) | |
movq -1176(%rbp), %rsi | |
movq %rdx, -1160(%rbp) | |
movq %rsi, -1168(%rbp) | |
movq -1160(%rbp), %rdx | |
movq -1168(%rbp), %rsi | |
movq %rdx, -1144(%rbp) | |
movq %rsi, -1152(%rbp) | |
movq -1144(%rbp), %rdx | |
movq -1152(%rbp), %rsi | |
movq %rsi, -1136(%rbp) | |
movq -1136(%rbp), %rsi | |
movq %rsi, -1128(%rbp) | |
movq -1128(%rbp), %rsi | |
movq (%rsi), %rsi | |
movq %rsi, -1096(%rbp) | |
movq -1096(%rbp), %rsi | |
movq %rdx, -1112(%rbp) | |
movq %rsi, -1120(%rbp) | |
movq -1112(%rbp), %rdx | |
movq -1120(%rbp), %rsi | |
movq %rsi, -1104(%rbp) | |
movq -1104(%rbp), %rsi | |
movq %rsi, (%rdx) | |
movq %rdi, -1264(%rbp) | |
movq %rcx, -1256(%rbp) | |
movq -1256(%rbp), %rcx | |
movq %rcx, -1248(%rbp) | |
movq -1248(%rbp), %rcx | |
movq (%rcx), %rcx | |
movq %rcx, -1216(%rbp) | |
movq %rax, -1232(%rbp) | |
movq -1232(%rbp), %rax | |
movq %rax, -1224(%rbp) | |
movq -1224(%rbp), %rax | |
movq (%rax), %rax | |
movq %rax, -1240(%rbp) | |
LBB8_2: | |
addq $1376, %rsp ## imm = 0x560 | |
popq %rbx | |
popq %r12 | |
popq %r14 | |
popq %r15 | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp63: | |
.cfi_def_cfa_offset 16 | |
Ltmp64: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp65: | |
.cfi_def_cfa_register %rbp | |
movq %rdi, -8(%rbp) | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp68: | |
.cfi_def_cfa_offset 16 | |
Ltmp69: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp70: | |
.cfi_def_cfa_register %rbp | |
subq $96, %rsp | |
leaq -88(%rbp), %rax | |
movq %rdi, -80(%rbp) | |
movq -80(%rbp), %rdi | |
movq %rdi, %rcx | |
addq $8, %rcx | |
movq %rcx, -72(%rbp) | |
movq -72(%rbp), %rcx | |
movq %rcx, -64(%rbp) | |
movq -64(%rbp), %rcx | |
movq %rax, -24(%rbp) | |
movq %rcx, -32(%rbp) | |
movq -24(%rbp), %rcx | |
movq -32(%rbp), %rdx | |
movq %rcx, -8(%rbp) | |
movq %rdx, -16(%rbp) | |
movq %rax, -40(%rbp) | |
movq %rdi, -48(%rbp) | |
movq $1, -56(%rbp) | |
movq -48(%rbp), %rax | |
movq %rax, %rdi | |
callq __ZdlPv | |
addq $96, %rsp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp73: | |
.cfi_def_cfa_offset 16 | |
Ltmp74: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp75: | |
.cfi_def_cfa_register %rbp | |
subq $80, %rsp | |
movq %rdi, -64(%rbp) | |
movq %rsi, -72(%rbp) | |
movq -64(%rbp), %rsi | |
addq $8, %rsi | |
movq %rsi, -56(%rbp) | |
movq -56(%rbp), %rsi | |
movq %rsi, -48(%rbp) | |
movq -48(%rbp), %rsi | |
movq -72(%rbp), %rdi | |
movq %rdi, -8(%rbp) | |
movq -8(%rbp), %rdi | |
movq %rsi, -32(%rbp) | |
movq %rdi, -40(%rbp) | |
movq -32(%rbp), %rsi | |
movq %rsi, -24(%rbp) | |
movq -24(%rbp), %rdi | |
movq -40(%rbp), %rsi | |
movq %rsi, -16(%rbp) | |
movq -16(%rbp), %rsi | |
movl (%rsi), %esi | |
callq __ZZ3foovENK3$_0clEi | |
addq $80, %rsp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp78: | |
.cfi_def_cfa_offset 16 | |
Ltmp79: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp80: | |
.cfi_def_cfa_register %rbp | |
leaq __ZTIZ3foovE3$_0(%rip), %rax | |
movq %rdi, -48(%rbp) | |
movq %rsi, -56(%rbp) | |
movq -48(%rbp), %rsi | |
movq -56(%rbp), %rdi | |
movq %rdi, -24(%rbp) | |
movq %rax, -32(%rbp) | |
movq -24(%rbp), %rax | |
movq 8(%rax), %rax | |
movq -32(%rbp), %rdi | |
cmpq 8(%rdi), %rax | |
movq %rsi, -64(%rbp) ## 8-byte Spill | |
jne LBB12_2 | |
## BB#1: | |
movq -64(%rbp), %rax ## 8-byte Reload | |
addq $8, %rax | |
movq %rax, -16(%rbp) | |
movq -16(%rbp), %rax | |
movq %rax, -8(%rbp) | |
movq -8(%rbp), %rax | |
movq %rax, -40(%rbp) | |
jmp LBB12_3 | |
LBB12_2: | |
movq $0, -40(%rbp) | |
LBB12_3: | |
movq -40(%rbp), %rax | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp83: | |
.cfi_def_cfa_offset 16 | |
Ltmp84: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp85: | |
.cfi_def_cfa_register %rbp | |
leaq __ZTIZ3foovE3$_0(%rip), %rax | |
movq %rdi, -8(%rbp) | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZZ3foovENK3$_0clEi: ## @"_ZZ3foovENK3$_0clEi" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp88: | |
.cfi_def_cfa_offset 16 | |
Ltmp89: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp90: | |
.cfi_def_cfa_register %rbp | |
movq %rdi, -8(%rbp) | |
movl %esi, -12(%rbp) | |
movl -12(%rbp), %esi | |
addl $1, %esi | |
movl %esi, %eax | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp93: | |
.cfi_def_cfa_offset 16 | |
Ltmp94: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp95: | |
.cfi_def_cfa_register %rbp | |
movq %rdi, -16(%rbp) | |
movq -16(%rbp), %rdi | |
movq %rdi, -8(%rbp) | |
popq %rbp | |
ret | |
.cfi_endproc | |
.section __TEXT,__textcoal_nt,coalesced,pure_instructions | |
.private_extern __ZNSt3__110__function6__baseIFiiEED1Ev | |
.globl __ZNSt3__110__function6__baseIFiiEED1Ev | |
.weak_definition __ZNSt3__110__function6__baseIFiiEED1Ev | |
.align 4, 0x90 | |
__ZNSt3__110__function6__baseIFiiEED1Ev: ## @_ZNSt3__110__function6__baseIFiiEED1Ev | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp98: | |
.cfi_def_cfa_offset 16 | |
Ltmp99: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp100: | |
.cfi_def_cfa_register %rbp | |
movq %rdi, -16(%rbp) | |
movq -16(%rbp), %rdi | |
movq %rdi, -8(%rbp) | |
popq %rbp | |
ret | |
.cfi_endproc | |
.private_extern __ZNSt3__110__function6__baseIFiiEED0Ev | |
.globl __ZNSt3__110__function6__baseIFiiEED0Ev | |
.weak_definition __ZNSt3__110__function6__baseIFiiEED0Ev | |
.align 4, 0x90 | |
__ZNSt3__110__function6__baseIFiiEED0Ev: ## @_ZNSt3__110__function6__baseIFiiEED0Ev | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp103: | |
.cfi_def_cfa_offset 16 | |
Ltmp104: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp105: | |
.cfi_def_cfa_register %rbp | |
subq $32, %rsp | |
movq %rdi, -24(%rbp) | |
movq -24(%rbp), %rdi | |
movq %rdi, -16(%rbp) | |
movq -16(%rbp), %rax | |
movq %rax, -8(%rbp) | |
callq __ZdlPv | |
addq $32, %rsp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.section __TEXT,__const | |
__ZNSt3__112_GLOBAL__N_1L6ignoreE: ## @_ZNSt3__112_GLOBAL__N_1L6ignoreE | |
.space 1 | |
.section __DATA,__const | |
.align 4 ## @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" | |
__ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE: | |
.quad 0 | |
.quad __ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev | |
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv | |
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi | |
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info | |
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv | |
.section __TEXT,__const | |
.align 4 ## @"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" | |
__ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE: | |
.asciz "NSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" | |
.section __TEXT,__const_coal,coalesced | |
.globl __ZTSNSt3__110__function6__baseIFiiEEE ## @_ZTSNSt3__110__function6__baseIFiiEEE | |
.weak_definition __ZTSNSt3__110__function6__baseIFiiEEE | |
.align 4 | |
__ZTSNSt3__110__function6__baseIFiiEEE: | |
.asciz "NSt3__110__function6__baseIFiiEEE" | |
.section __DATA,__datacoal_nt,coalesced | |
.globl __ZTINSt3__110__function6__baseIFiiEEE ## @_ZTINSt3__110__function6__baseIFiiEEE | |
.weak_definition __ZTINSt3__110__function6__baseIFiiEEE | |
.align 3 | |
__ZTINSt3__110__function6__baseIFiiEEE: | |
.quad __ZTVN10__cxxabiv117__class_type_infoE+16 | |
.quad __ZTSNSt3__110__function6__baseIFiiEEE | |
.section __DATA,__const | |
.align 4 ## @"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" | |
__ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE: | |
.quad __ZTVN10__cxxabiv120__si_class_type_infoE+16 | |
.quad __ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE | |
.quad __ZTINSt3__110__function6__baseIFiiEEE | |
.section __TEXT,__const | |
__ZTSZ3foovE3$_0: ## @"_ZTSZ3foovE3$_0" | |
.asciz "Z3foovE3$_0" | |
.section __DATA,__const | |
.align 3 ## @"_ZTIZ3foovE3$_0" | |
__ZTIZ3foovE3$_0: | |
.quad __ZTVN10__cxxabiv117__class_type_infoE+16 | |
.quad __ZTSZ3foovE3$_0 | |
.section __DATA,__datacoal_nt,coalesced | |
.globl __ZTVNSt3__110__function6__baseIFiiEEE ## @_ZTVNSt3__110__function6__baseIFiiEEE | |
.weak_definition __ZTVNSt3__110__function6__baseIFiiEEE | |
.align 4 | |
__ZTVNSt3__110__function6__baseIFiiEEE: | |
.quad 0 | |
.quad __ZTINSt3__110__function6__baseIFiiEEE | |
.quad __ZNSt3__110__function6__baseIFiiEED1Ev | |
.quad __ZNSt3__110__function6__baseIFiiEED0Ev | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support | |
.subsections_via_symbols |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
std_func_overhead.o: | |
(__TEXT,__text) section | |
__Z3foov: | |
0000000000000000 pushq %rbp | |
0000000000000001 movq %rsp,%rbp | |
0000000000000004 subq $0x60,%rsp | |
0000000000000008 leaq 0xc0(%rbp),%rax | |
000000000000000c xorl %esi,%esi | |
000000000000000e movq %rax,%rdi | |
0000000000000011 movq %rax,0xa0(%rbp) | |
0000000000000015 callq 0x0000001a | |
000000000000001a movq 0xa0(%rbp),%rdi | |
000000000000001e callq 0x00000023 | |
0000000000000023 jmp 0x00000028 | |
0000000000000028 leaq 0xc0(%rbp),%rdi | |
000000000000002c callq 0x00000031 | |
0000000000000031 addq $0x60,%rsp | |
0000000000000035 popq %rbp | |
0000000000000036 ret | |
0000000000000037 leaq 0xc0(%rbp),%rdi | |
000000000000003b movl %edx,%ecx | |
000000000000003d movq %rax,0xb0(%rbp) | |
0000000000000041 movl %ecx,0xac(%rbp) | |
0000000000000044 callq 0x00000049 | |
0000000000000049 movq 0xb0(%rbp),%rdi | |
000000000000004d callq 0x00000052 | |
0000000000000052 nopw %cs:0x00000000(%rax,%rax) | |
__ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE: | |
0000000000000060 pushq %rbp | |
0000000000000061 movq %rsp,%rbp | |
0000000000000064 subq $0x20,%rsp | |
0000000000000068 movq %rdi,0xf8(%rbp) | |
000000000000006c movq %rsi,0xe8(%rbp) | |
0000000000000070 movq 0xf8(%rbp),%rdi | |
0000000000000074 movq 0xe8(%rbp),%rsi | |
0000000000000078 callq 0x0000007d | |
000000000000007d addq $0x20,%rsp | |
0000000000000081 popq %rbp | |
0000000000000082 ret | |
0000000000000083 nopl %cs:0x00000000(%rax,%rax) | |
__ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE: | |
0000000000000090 pushq %rbp | |
0000000000000091 movq %rsp,%rbp | |
0000000000000094 pushq %rbx | |
0000000000000095 subq $0x00000330,%rsp | |
000000000000009c movb $0x01,%al | |
000000000000009e leaq 0xfffffc60(%rbp),%rcx | |
00000000000000a5 movq %rdi,0xfffffc68(%rbp) | |
00000000000000ac movq %rsi,0xfffffc58(%rbp) | |
00000000000000b3 movq 0xfffffc68(%rbp),%rsi | |
00000000000000ba movq $0x00000000,0x20(%rsi) | |
00000000000000c2 movq %rcx,0xfffffc70(%rbp) | |
00000000000000c9 testb $0x01,%al | |
00000000000000cb movq %rsi,0xfffffc50(%rbp) | |
00000000000000d2 jne 0x000000dd | |
00000000000000d8 jmp 0x00000574 | |
00000000000000dd movq 0xfffffc50(%rbp),%rax | |
00000000000000e4 movq 0xfffffc50(%rbp),%rcx | |
00000000000000eb movq %rax,0x20(%rcx) | |
00000000000000ef movq 0x20(%rcx),%rax | |
00000000000000f3 cmpq $0x00000000,%eax | |
00000000000000f9 movq %rax,0xfffffc48(%rbp) | |
0000000000000100 je 0x00000574 | |
0000000000000106 leaq 0xfffffd08(%rbp),%rax | |
000000000000010d leaq 0xfffffd18(%rbp),%rcx | |
0000000000000114 leaq 0xfffffca8(%rbp),%rdx | |
000000000000011b leaq 0xfffffe00(%rbp),%rsi | |
0000000000000122 leaq 0xfffffca0(%rbp),%rdi | |
0000000000000129 leaq 0xfffffe90(%rbp),%r8 | |
0000000000000130 leaq 0x00000000(%rip),%r9 | |
0000000000000137 addq $0x00000010,%r9 | |
000000000000013e movq 0x00000000(%rip),%r10 | |
0000000000000145 addq $0x00000010,%r10 | |
000000000000014c leaq 0xfffffc60(%rbp),%r11 | |
0000000000000153 movq 0xfffffc48(%rbp),%rbx | |
000000000000015a movq %r11,0xf0(%rbp) | |
000000000000015e movq 0xf0(%rbp),%r11 | |
0000000000000162 movq %rbx,0xfffffc80(%rbp) | |
0000000000000169 movq %r11,0xfffffc78(%rbp) | |
0000000000000170 movq 0xfffffc80(%rbp),%r11 | |
0000000000000177 movq 0xfffffc78(%rbp),%rbx | |
000000000000017e movq %r11,0xfffffcc0(%rbp) | |
0000000000000185 movq %rbx,0xfffffcb8(%rbp) | |
000000000000018c movq 0xfffffcc0(%rbp),%r11 | |
0000000000000193 movq %r11,%rbx | |
0000000000000196 movq %rbx,0xfffffcc8(%rbp) | |
000000000000019d movq 0xfffffcc8(%rbp),%rbx | |
00000000000001a4 movq %r10,(%rbx) | |
00000000000001a7 movq %r9,(%r11) | |
00000000000001aa addq $0x00000008,%r11 | |
00000000000001b1 movq 0xfffffcb8(%rbp),%r9 | |
00000000000001b8 movq %r9,0xe8(%rbp) | |
00000000000001bc movq 0xe8(%rbp),%r9 | |
00000000000001c0 movq %r9,0xfffffe98(%rbp) | |
00000000000001c7 movq 0xfffffe98(%rbp),%r9 | |
00000000000001ce movq %r9,0xfffffea0(%rbp) | |
00000000000001d5 movq 0xfffffea0(%rbp),%r9 | |
00000000000001dc movq %r8,0xffffff28(%rbp) | |
00000000000001e3 movq %r9,0xffffff20(%rbp) | |
00000000000001ea movq 0xffffff28(%rbp),%r9 | |
00000000000001f1 movq 0xffffff20(%rbp),%r10 | |
00000000000001f8 movq %r9,0xffffff58(%rbp) | |
00000000000001ff movq %r10,0xffffff50(%rbp) | |
0000000000000206 movq 0xffffff58(%rbp),%r9 | |
000000000000020d movq 0xffffff50(%rbp),%r10 | |
0000000000000214 movq %r10,0xffffff60(%rbp) | |
000000000000021b movq 0xffffff60(%rbp),%r10 | |
0000000000000222 movq %r9,0x90(%rbp) | |
0000000000000226 movq %r10,0xffffff68(%rbp) | |
000000000000022d movq 0x90(%rbp),%r9 | |
0000000000000231 movq 0xffffff68(%rbp),%r10 | |
0000000000000238 movq %r9,0xc0(%rbp) | |
000000000000023c movq %r10,0x98(%rbp) | |
0000000000000240 movq 0xc0(%rbp),%r9 | |
0000000000000244 movq 0x98(%rbp),%r10 | |
0000000000000248 movq %r10,0xc8(%rbp) | |
000000000000024c movq 0xc8(%rbp),%r10 | |
0000000000000250 movq %r9,0xd8(%rbp) | |
0000000000000254 movq %r10,0xd0(%rbp) | |
0000000000000258 movq 0xd8(%rbp),%r9 | |
000000000000025c movq 0xd0(%rbp),%r10 | |
0000000000000260 movq %r10,0xe0(%rbp) | |
0000000000000264 movq 0xe0(%rbp),%r10 | |
0000000000000268 movq %r10,(%r9) | |
000000000000026b movq %rdi,0xfffffeb0(%rbp) | |
0000000000000272 movq %r8,0xfffffea8(%rbp) | |
0000000000000279 movq 0xfffffeb0(%rbp),%r8 | |
0000000000000280 movq 0xfffffea8(%rbp),%r9 | |
0000000000000287 movq %r8,0xfffffec0(%rbp) | |
000000000000028e movq %r9,0xfffffeb8(%rbp) | |
0000000000000295 movq 0xfffffec0(%rbp),%r8 | |
000000000000029c movq 0xfffffeb8(%rbp),%r9 | |
00000000000002a3 movq %r9,0xfffffec8(%rbp) | |
00000000000002aa movq 0xfffffec8(%rbp),%r9 | |
00000000000002b1 movq %r8,0xfffffed8(%rbp) | |
00000000000002b8 movq %r9,0xfffffed0(%rbp) | |
00000000000002bf movq 0xfffffed8(%rbp),%r8 | |
00000000000002c6 movq 0xfffffed0(%rbp),%r9 | |
00000000000002cd movq %r8,0xfffffee8(%rbp) | |
00000000000002d4 movq %r9,0xfffffee0(%rbp) | |
00000000000002db movq 0xfffffee8(%rbp),%r8 | |
00000000000002e2 movq 0xfffffee0(%rbp),%r9 | |
00000000000002e9 movq %r9,0xfffffef0(%rbp) | |
00000000000002f0 movq 0xfffffef0(%rbp),%r9 | |
00000000000002f7 movq %r9,0xfffffef8(%rbp) | |
00000000000002fe movq 0xfffffef8(%rbp),%r9 | |
0000000000000305 movq (%r9),%r9 | |
0000000000000308 movq %r9,0xffffff18(%rbp) | |
000000000000030f movq 0xffffff18(%rbp),%r9 | |
0000000000000316 movq %r8,0xffffff08(%rbp) | |
000000000000031d movq %r9,0xffffff00(%rbp) | |
0000000000000324 movq 0xffffff08(%rbp),%r8 | |
000000000000032b movq 0xffffff00(%rbp),%r9 | |
0000000000000332 movq %r9,0xffffff10(%rbp) | |
0000000000000339 movq 0xffffff10(%rbp),%r9 | |
0000000000000340 movq %r9,(%r8) | |
0000000000000343 movq %rdx,0xfffffe20(%rbp) | |
000000000000034a movq %rdi,0xfffffe18(%rbp) | |
0000000000000351 movq 0xfffffe20(%rbp),%rdi | |
0000000000000358 movq 0xfffffe18(%rbp),%r8 | |
000000000000035f movq %rdi,0xfffffe30(%rbp) | |
0000000000000366 movq %r8,0xfffffe28(%rbp) | |
000000000000036d movq 0xfffffe30(%rbp),%rdi | |
0000000000000374 movq 0xfffffe28(%rbp),%r8 | |
000000000000037b movq %r8,0xfffffe38(%rbp) | |
0000000000000382 movq 0xfffffe38(%rbp),%r8 | |
0000000000000389 movq %rdi,0xfffffe48(%rbp) | |
0000000000000390 movq %r8,0xfffffe40(%rbp) | |
0000000000000397 movq 0xfffffe48(%rbp),%rdi | |
000000000000039e movq 0xfffffe40(%rbp),%r8 | |
00000000000003a5 movq %rdi,0xfffffe58(%rbp) | |
00000000000003ac movq %r8,0xfffffe50(%rbp) | |
00000000000003b3 movq 0xfffffe58(%rbp),%rdi | |
00000000000003ba movq 0xfffffe50(%rbp),%r8 | |
00000000000003c1 movq %r8,0xfffffe60(%rbp) | |
00000000000003c8 movq 0xfffffe60(%rbp),%r8 | |
00000000000003cf movq %r8,0xfffffe68(%rbp) | |
00000000000003d6 movq 0xfffffe68(%rbp),%r8 | |
00000000000003dd movq (%r8),%r8 | |
00000000000003e0 movq %r8,0xfffffe88(%rbp) | |
00000000000003e7 movq 0xfffffe88(%rbp),%r8 | |
00000000000003ee movq %rdi,0xfffffe78(%rbp) | |
00000000000003f5 movq %r8,0xfffffe70(%rbp) | |
00000000000003fc movq 0xfffffe78(%rbp),%rdi | |
0000000000000403 movq 0xfffffe70(%rbp),%r8 | |
000000000000040a movq %r8,0xfffffe80(%rbp) | |
0000000000000411 movq 0xfffffe80(%rbp),%r8 | |
0000000000000418 movq %r8,(%rdi) | |
000000000000041b movq %rsi,0xfffffe08(%rbp) | |
0000000000000422 movq 0xfffffe08(%rbp),%rsi | |
0000000000000429 movq %rsi,0xfffffe10(%rbp) | |
0000000000000430 movq %r11,0xfffffce8(%rbp) | |
0000000000000437 movq 0xfffffce8(%rbp),%rsi | |
000000000000043e movq %rsi,0xfffffd28(%rbp) | |
0000000000000445 movq 0xfffffd28(%rbp),%rsi | |
000000000000044c movq %rdx,0xfffffd30(%rbp) | |
0000000000000453 movq 0xfffffd30(%rbp),%rdx | |
000000000000045a movq %rax,0xfffffd90(%rbp) | |
0000000000000461 movq %rdx,0xfffffd88(%rbp) | |
0000000000000468 movq 0xfffffd90(%rbp),%rdx | |
000000000000046f movq 0xfffffd88(%rbp),%rdi | |
0000000000000476 movq %rdx,0xfffffda0(%rbp) | |
000000000000047d movq %rdi,0xfffffd98(%rbp) | |
0000000000000484 movq 0xfffffda0(%rbp),%rdx | |
000000000000048b movq 0xfffffd98(%rbp),%rdi | |
0000000000000492 movq %rdi,0xfffffda8(%rbp) | |
0000000000000499 movq 0xfffffda8(%rbp),%rdi | |
00000000000004a0 movq %rdx,0xfffffdb8(%rbp) | |
00000000000004a7 movq %rdi,0xfffffdb0(%rbp) | |
00000000000004ae movq 0xfffffdb8(%rbp),%rdx | |
00000000000004b5 movq 0xfffffdb0(%rbp),%rdi | |
00000000000004bc movq %rdx,0xfffffdc8(%rbp) | |
00000000000004c3 movq %rdi,0xfffffdc0(%rbp) | |
00000000000004ca movq 0xfffffdc8(%rbp),%rdx | |
00000000000004d1 movq 0xfffffdc0(%rbp),%rdi | |
00000000000004d8 movq %rdi,0xfffffdd0(%rbp) | |
00000000000004df movq 0xfffffdd0(%rbp),%rdi | |
00000000000004e6 movq %rdi,0xfffffdd8(%rbp) | |
00000000000004ed movq 0xfffffdd8(%rbp),%rdi | |
00000000000004f4 movq (%rdi),%rdi | |
00000000000004f7 movq %rdi,0xfffffdf8(%rbp) | |
00000000000004fe movq 0xfffffdf8(%rbp),%rdi | |
0000000000000505 movq %rdx,0xfffffde8(%rbp) | |
000000000000050c movq %rdi,0xfffffde0(%rbp) | |
0000000000000513 movq 0xfffffde8(%rbp),%rdx | |
000000000000051a movq 0xfffffde0(%rbp),%rdi | |
0000000000000521 movq %rdi,0xfffffdf0(%rbp) | |
0000000000000528 movq 0xfffffdf0(%rbp),%rdi | |
000000000000052f movq %rdi,(%rdx) | |
0000000000000532 movq %rcx,0xfffffd80(%rbp) | |
0000000000000539 movq %rsi,0xfffffd58(%rbp) | |
0000000000000540 movq 0xfffffd58(%rbp),%rcx | |
0000000000000547 movq %rax,0xfffffd60(%rbp) | |
000000000000054e movq 0xfffffd60(%rbp),%rax | |
0000000000000555 movq %rax,0xfffffd68(%rbp) | |
000000000000055c movq 0xfffffd68(%rbp),%rax | |
0000000000000563 movq (%rax),%rax | |
0000000000000566 movq %rax,0xfffffd78(%rbp) | |
000000000000056d movq %rcx,0xfffffd70(%rbp) | |
0000000000000574 addq $0x00000330,%rsp | |
000000000000057b popq %rbx | |
000000000000057c popq %rbp | |
000000000000057d ret | |
000000000000057e nop | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev: | |
0000000000000580 pushq %rbp | |
0000000000000581 movq %rsp,%rbp | |
0000000000000584 subq $0x10,%rsp | |
0000000000000588 movq %rdi,0xf8(%rbp) | |
000000000000058c movq 0xf8(%rbp),%rdi | |
0000000000000590 callq 0x00000595 | |
0000000000000595 addq $0x10,%rsp | |
0000000000000599 popq %rbp | |
000000000000059a ret | |
000000000000059b nopl 0x00(%rax,%rax) | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev: | |
00000000000005a0 pushq %rbp | |
00000000000005a1 movq %rsp,%rbp | |
00000000000005a4 subq $0x10,%rsp | |
00000000000005a8 movq %rdi,0xf8(%rbp) | |
00000000000005ac movq 0xf8(%rbp),%rdi | |
00000000000005b0 movq %rdi,0xf0(%rbp) | |
00000000000005b4 callq 0x000005b9 | |
00000000000005b9 movq 0xf0(%rbp),%rdi | |
00000000000005bd callq 0x000005c2 | |
00000000000005c2 addq $0x10,%rsp | |
00000000000005c6 popq %rbp | |
00000000000005c7 ret | |
00000000000005c8 nopl 0x00000000(%rax,%rax) | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv: | |
00000000000005d0 pushq %rbp | |
00000000000005d1 movq %rsp,%rbp | |
00000000000005d4 pushq %r15 | |
00000000000005d6 pushq %r14 | |
00000000000005d8 pushq %r13 | |
00000000000005da pushq %r12 | |
00000000000005dc pushq %rbx | |
00000000000005dd subq $0x00000928,%rsp | |
00000000000005e4 leaq 0xfffff720(%rbp),%rax | |
00000000000005eb movq %rdi,0xfffff728(%rbp) | |
00000000000005f2 movq 0xfffff728(%rbp),%rdi | |
00000000000005f9 movq %rdi,%rcx | |
00000000000005fc addq $0x00000008,%rcx | |
0000000000000603 movq %rcx,0xfffff730(%rbp) | |
000000000000060a movq 0xfffff730(%rbp),%rcx | |
0000000000000611 movq %rcx,0xfffff738(%rbp) | |
0000000000000618 movq 0xfffff738(%rbp),%rcx | |
000000000000061f movq %rax,0xfffff7e0(%rbp) | |
0000000000000626 movq %rcx,0xfffff7d8(%rbp) | |
000000000000062d movq 0xfffff7e0(%rbp),%rcx | |
0000000000000634 movq 0xfffff7d8(%rbp),%rdx | |
000000000000063b movq %rcx,0xfffff7f0(%rbp) | |
0000000000000642 movq %rdx,0xfffff7e8(%rbp) | |
0000000000000649 movq %rax,0xfffff8a0(%rbp) | |
0000000000000650 movq $0x00000001,0xfffff898(%rbp) | |
000000000000065b movq $0x00000000,0xfffff890(%rbp) | |
0000000000000666 movq 0xfffff898(%rbp),%rax | |
000000000000066d shlq $0x04,%rax | |
0000000000000671 movq %rdi,0xfffff6d8(%rbp) | |
0000000000000678 movq %rax,%rdi | |
000000000000067b callq 0x00000680 | |
0000000000000680 leaq 0xfffff6f8(%rbp),%rcx | |
0000000000000687 leaq 0xfffff708(%rbp),%rdx | |
000000000000068e leaq 0xfffff720(%rbp),%rdi | |
0000000000000695 movq %rcx,0xfffff8b8(%rbp) | |
000000000000069c movq %rdi,0xfffff8b0(%rbp) | |
00000000000006a3 movq $0x00000001,0xfffff8a8(%rbp) | |
00000000000006ae movq 0xfffff8b8(%rbp),%rdi | |
00000000000006b5 movq 0xfffff8a8(%rbp),%rsi | |
00000000000006bc movq 0xfffff8b0(%rbp),%r8 | |
00000000000006c3 movq %rdi,0xfffff8d0(%rbp) | |
00000000000006ca movq %r8,0xfffff8c8(%rbp) | |
00000000000006d1 movq %rsi,0xfffff8c0(%rbp) | |
00000000000006d8 movq 0xfffff8d0(%rbp),%rsi | |
00000000000006df movq 0xfffff8c8(%rbp),%rdi | |
00000000000006e6 movq %rdi,(%rsi) | |
00000000000006e9 movq 0xfffff8c0(%rbp),%rdi | |
00000000000006f0 movq %rdi,0x08(%rsi) | |
00000000000006f4 movq %rdx,0xffffff10(%rbp) | |
00000000000006fb movq %rax,0xffffff08(%rbp) | |
0000000000000702 movq %rcx,0xffffff00(%rbp) | |
0000000000000709 movq 0xffffff10(%rbp),%rax | |
0000000000000710 movq 0xffffff08(%rbp),%rcx | |
0000000000000717 movq 0xffffff00(%rbp),%rdx | |
000000000000071e movq %rax,0xffffff38(%rbp) | |
0000000000000725 movq %rcx,0xffffff30(%rbp) | |
000000000000072c movq %rdx,0xffffff28(%rbp) | |
0000000000000733 movq 0xffffff38(%rbp),%rax | |
000000000000073a movq 0xffffff30(%rbp),%rcx | |
0000000000000741 movq 0xffffff28(%rbp),%rdx | |
0000000000000748 movq %rdx,0xffffff40(%rbp) | |
000000000000074f movq 0xffffff40(%rbp),%rdx | |
0000000000000756 movq (%rdx),%rsi | |
0000000000000759 movq %rsi,0xffffff18(%rbp) | |
0000000000000760 movq 0x08(%rdx),%rdx | |
0000000000000764 movq %rdx,0xffffff20(%rbp) | |
000000000000076b leaq 0xffffff78(%rbp),%rdx | |
0000000000000772 leaq 0x88(%rbp),%rsi | |
0000000000000776 movq 0xffffff18(%rbp),%rdi | |
000000000000077d movq 0xffffff20(%rbp),%r8 | |
0000000000000784 movq %rax,0xffffff60(%rbp) | |
000000000000078b movq %rcx,0xffffff58(%rbp) | |
0000000000000792 movq %rdi,0xffffff48(%rbp) | |
0000000000000799 movq %r8,0xffffff50(%rbp) | |
00000000000007a0 movq 0xffffff60(%rbp),%rax | |
00000000000007a7 movq 0xffffff58(%rbp),%rcx | |
00000000000007ae movq 0xffffff48(%rbp),%rdi | |
00000000000007b5 movq 0xffffff50(%rbp),%r8 | |
00000000000007bc movq %rax,0x90(%rbp) | |
00000000000007c0 movq %rcx,0x88(%rbp) | |
00000000000007c4 movq %rdi,0xffffff78(%rbp) | |
00000000000007cb movq %r8,0x80(%rbp) | |
00000000000007cf movq 0x90(%rbp),%rax | |
00000000000007d3 movq %rsi,0x98(%rbp) | |
00000000000007d7 movq 0x98(%rbp),%rcx | |
00000000000007db movq (%rcx),%rcx | |
00000000000007de movq %rdx,0xd0(%rbp) | |
00000000000007e2 movq 0xd0(%rbp),%rdx | |
00000000000007e6 movq (%rdx),%rsi | |
00000000000007e9 movq %rsi,0xffffff68(%rbp) | |
00000000000007f0 movq 0x08(%rdx),%rdx | |
00000000000007f4 movq %rdx,0xffffff70(%rbp) | |
00000000000007fb leaq 0xa0(%rbp),%rdx | |
00000000000007ff leaq 0xb0(%rbp),%rsi | |
0000000000000803 movq 0xffffff68(%rbp),%rdi | |
000000000000080a movq 0xffffff70(%rbp),%r8 | |
0000000000000811 movq %rax,0xb8(%rbp) | |
0000000000000815 movq %rcx,0xb0(%rbp) | |
0000000000000819 movq %rdi,0xa0(%rbp) | |
000000000000081d movq %r8,0xa8(%rbp) | |
0000000000000821 movq 0xb8(%rbp),%rax | |
0000000000000825 movq %rsi,0xc0(%rbp) | |
0000000000000829 movq 0xc0(%rbp),%rcx | |
000000000000082d movq (%rcx),%rcx | |
0000000000000830 movq %rcx,(%rax) | |
0000000000000833 movq %rdx,0xc8(%rbp) | |
0000000000000837 movq 0xc8(%rbp),%rcx | |
000000000000083b movq (%rcx),%rdx | |
000000000000083e movq %rdx,0x08(%rax) | |
0000000000000842 movq 0x08(%rcx),%rcx | |
0000000000000846 movq %rcx,0x10(%rax) | |
000000000000084a leaq 0xfffff708(%rbp),%rax | |
0000000000000851 movq %rax,0xfffffee8(%rbp) | |
0000000000000858 movq 0xfffffee8(%rbp),%rax | |
000000000000085f movq %rax,0xfffffef0(%rbp) | |
0000000000000866 movq 0xfffffef0(%rbp),%rax | |
000000000000086d movq %rax,0xfffffef8(%rbp) | |
0000000000000874 movq 0xfffffef8(%rbp),%rax | |
000000000000087b movq (%rax),%rax | |
000000000000087e cmpq $0x00000000,%eax | |
0000000000000884 movq %rax,0xfffff6d0(%rbp) | |
000000000000088b je 0x00001112 | |
0000000000000891 leaq 0xfffff9a0(%rbp),%rax | |
0000000000000898 leaq 0xfffff9a8(%rbp),%rcx | |
000000000000089f leaq 0xfffff928(%rbp),%rdx | |
00000000000008a6 leaq 0xfffff948(%rbp),%rsi | |
00000000000008ad leaq 0xfffff920(%rbp),%rdi | |
00000000000008b4 leaq 0xfffffb90(%rbp),%r8 | |
00000000000008bb leaq 0xfffff940(%rbp),%r9 | |
00000000000008c2 leaq 0xfffffd68(%rbp),%r10 | |
00000000000008c9 leaq 0x00000000(%rip),%r11 | |
00000000000008d0 addq $0x00000010,%r11 | |
00000000000008d7 movq 0x00000000(%rip),%rbx | |
00000000000008de addq $0x00000010,%rbx | |
00000000000008e5 leaq 0xfffff6f0(%rbp),%r14 | |
00000000000008ec leaq 0xfffff720(%rbp),%r15 | |
00000000000008f3 movq 0xfffff6d0(%rbp),%r12 | |
00000000000008fa movq 0xfffff6d8(%rbp),%r13 | |
0000000000000901 addq $0x00000008,%r13 | |
0000000000000908 movq %r13,0xfffffed8(%rbp) | |
000000000000090f movq 0xfffffed8(%rbp),%r13 | |
0000000000000916 movq %r13,0xfffffee0(%rbp) | |
000000000000091d movq 0xfffffee0(%rbp),%r13 | |
0000000000000924 movq %r14,0xfffffec0(%rbp) | |
000000000000092b movq %r15,0xfffffeb8(%rbp) | |
0000000000000932 movq 0xfffffec0(%rbp),%r15 | |
0000000000000939 movq %rax,0xfffff6c8(%rbp) | |
0000000000000940 movq 0xfffffeb8(%rbp),%rax | |
0000000000000947 movq %r15,0xfffffed0(%rbp) | |
000000000000094e movq %rax,0xfffffec8(%rbp) | |
0000000000000955 movq %r12,0xfffff918(%rbp) | |
000000000000095c movq %r13,0xfffff910(%rbp) | |
0000000000000963 movq %r14,0xfffff908(%rbp) | |
000000000000096a movq 0xfffff918(%rbp),%rax | |
0000000000000971 movq 0xfffff910(%rbp),%r14 | |
0000000000000978 movq 0xfffff908(%rbp),%r15 | |
000000000000097f movq %rax,0xfffff968(%rbp) | |
0000000000000986 movq %r14,0xfffff960(%rbp) | |
000000000000098d movq %r15,0xfffff958(%rbp) | |
0000000000000994 movq 0xfffff968(%rbp),%rax | |
000000000000099b movq %rax,%r14 | |
000000000000099e movq %r14,0xfffff970(%rbp) | |
00000000000009a5 movq 0xfffff970(%rbp),%r14 | |
00000000000009ac movq %rbx,(%r14) | |
00000000000009af movq %r11,(%rax) | |
00000000000009b2 addq $0x00000008,%eax | |
00000000000009b8 movq 0xfffff960(%rbp),%r11 | |
00000000000009bf movq %r11,0xfffffd70(%rbp) | |
00000000000009c6 movq 0xfffffd70(%rbp),%r11 | |
00000000000009cd movq %r11,0xfffffd78(%rbp) | |
00000000000009d4 movq 0xfffffd78(%rbp),%r11 | |
00000000000009db movq %r10,0xfffffe00(%rbp) | |
00000000000009e2 movq %r11,0xfffffdf8(%rbp) | |
00000000000009e9 movq 0xfffffe00(%rbp),%r11 | |
00000000000009f0 movq 0xfffffdf8(%rbp),%rbx | |
00000000000009f7 movq %r11,0xfffffe30(%rbp) | |
00000000000009fe movq %rbx,0xfffffe28(%rbp) | |
0000000000000a05 movq 0xfffffe30(%rbp),%r11 | |
0000000000000a0c movq 0xfffffe28(%rbp),%rbx | |
0000000000000a13 movq %r11,0xfffffe60(%rbp) | |
0000000000000a1a movq %rbx,0xfffffe38(%rbp) | |
0000000000000a21 movq 0xfffffe60(%rbp),%r11 | |
0000000000000a28 movq 0xfffffe38(%rbp),%rbx | |
0000000000000a2f movq %r11,0xfffffe90(%rbp) | |
0000000000000a36 movq %rbx,0xfffffe68(%rbp) | |
0000000000000a3d movq 0xfffffe90(%rbp),%r11 | |
0000000000000a44 movq 0xfffffe68(%rbp),%rbx | |
0000000000000a4b movq %rbx,0xfffffe98(%rbp) | |
0000000000000a52 movq 0xfffffe98(%rbp),%rbx | |
0000000000000a59 movq %r11,0xfffffea8(%rbp) | |
0000000000000a60 movq %rbx,0xfffffea0(%rbp) | |
0000000000000a67 movq 0xfffffea8(%rbp),%r11 | |
0000000000000a6e movq 0xfffffea0(%rbp),%rbx | |
0000000000000a75 movq %rbx,0xfffffeb0(%rbp) | |
0000000000000a7c movq 0xfffffeb0(%rbp),%rbx | |
0000000000000a83 movq %rbx,(%r11) | |
0000000000000a86 movq %r9,0xfffffd88(%rbp) | |
0000000000000a8d movq %r10,0xfffffd80(%rbp) | |
0000000000000a94 movq 0xfffffd88(%rbp),%r10 | |
0000000000000a9b movq 0xfffffd80(%rbp),%r11 | |
0000000000000aa2 movq %r10,0xfffffd98(%rbp) | |
0000000000000aa9 movq %r11,0xfffffd90(%rbp) | |
0000000000000ab0 movq 0xfffffd98(%rbp),%r10 | |
0000000000000ab7 movq 0xfffffd90(%rbp),%r11 | |
0000000000000abe movq %r11,0xfffffda0(%rbp) | |
0000000000000ac5 movq 0xfffffda0(%rbp),%r11 | |
0000000000000acc movq %r10,0xfffffdb0(%rbp) | |
0000000000000ad3 movq %r11,0xfffffda8(%rbp) | |
0000000000000ada movq 0xfffffdb0(%rbp),%r10 | |
0000000000000ae1 movq 0xfffffda8(%rbp),%r11 | |
0000000000000ae8 movq %r10,0xfffffdc0(%rbp) | |
0000000000000aef movq %r11,0xfffffdb8(%rbp) | |
0000000000000af6 movq 0xfffffdc0(%rbp),%r10 | |
0000000000000afd movq 0xfffffdb8(%rbp),%r11 | |
0000000000000b04 movq %r11,0xfffffdc8(%rbp) | |
0000000000000b0b movq 0xfffffdc8(%rbp),%r11 | |
0000000000000b12 movq %r11,0xfffffdd0(%rbp) | |
0000000000000b19 movq 0xfffffdd0(%rbp),%r11 | |
0000000000000b20 movq (%r11),%r11 | |
0000000000000b23 movq %r11,0xfffffdf0(%rbp) | |
0000000000000b2a movq 0xfffffdf0(%rbp),%r11 | |
0000000000000b31 movq %r10,0xfffffde0(%rbp) | |
0000000000000b38 movq %r11,0xfffffdd8(%rbp) | |
0000000000000b3f movq 0xfffffde0(%rbp),%r10 | |
0000000000000b46 movq 0xfffffdd8(%rbp),%r11 | |
0000000000000b4d movq %r11,0xfffffde8(%rbp) | |
0000000000000b54 movq 0xfffffde8(%rbp),%r11 | |
0000000000000b5b movq %r11,(%r10) | |
0000000000000b5e movq %rsi,0xfffffcf8(%rbp) | |
0000000000000b65 movq %r9,0xfffffcf0(%rbp) | |
0000000000000b6c movq 0xfffffcf8(%rbp),%r9 | |
0000000000000b73 movq 0xfffffcf0(%rbp),%r10 | |
0000000000000b7a movq %r9,0xfffffd08(%rbp) | |
0000000000000b81 movq %r10,0xfffffd00(%rbp) | |
0000000000000b88 movq 0xfffffd08(%rbp),%r9 | |
0000000000000b8f movq 0xfffffd00(%rbp),%r10 | |
0000000000000b96 movq %r10,0xfffffd10(%rbp) | |
0000000000000b9d movq 0xfffffd10(%rbp),%r10 | |
0000000000000ba4 movq %r9,0xfffffd20(%rbp) | |
0000000000000bab movq %r10,0xfffffd18(%rbp) | |
0000000000000bb2 movq 0xfffffd20(%rbp),%r9 | |
0000000000000bb9 movq 0xfffffd18(%rbp),%r10 | |
0000000000000bc0 movq %r9,0xfffffd30(%rbp) | |
0000000000000bc7 movq %r10,0xfffffd28(%rbp) | |
0000000000000bce movq 0xfffffd30(%rbp),%r9 | |
0000000000000bd5 movq 0xfffffd28(%rbp),%r10 | |
0000000000000bdc movq %r10,0xfffffd38(%rbp) | |
0000000000000be3 movq 0xfffffd38(%rbp),%r10 | |
0000000000000bea movq %r10,0xfffffd40(%rbp) | |
0000000000000bf1 movq 0xfffffd40(%rbp),%r10 | |
0000000000000bf8 movq (%r10),%r10 | |
0000000000000bfb movq %r10,0xfffffd60(%rbp) | |
0000000000000c02 movq 0xfffffd60(%rbp),%r10 | |
0000000000000c09 movq %r9,0xfffffd50(%rbp) | |
0000000000000c10 movq %r10,0xfffffd48(%rbp) | |
0000000000000c17 movq 0xfffffd50(%rbp),%r9 | |
0000000000000c1e movq 0xfffffd48(%rbp),%r10 | |
0000000000000c25 movq %r10,0xfffffd58(%rbp) | |
0000000000000c2c movq 0xfffffd58(%rbp),%r10 | |
0000000000000c33 movq %r10,(%r9) | |
0000000000000c36 movq 0xfffff958(%rbp),%r9 | |
0000000000000c3d movq %r9,0xfffffce8(%rbp) | |
0000000000000c44 movq 0xfffffce8(%rbp),%r9 | |
0000000000000c4b movq %r9,0xfffffb98(%rbp) | |
0000000000000c52 movq 0xfffffb98(%rbp),%r9 | |
0000000000000c59 movq %r9,0xfffffba0(%rbp) | |
0000000000000c60 movq 0xfffffba0(%rbp),%r9 | |
0000000000000c67 movq %r8,0xfffffc28(%rbp) | |
0000000000000c6e movq %r9,0xfffffc20(%rbp) | |
0000000000000c75 movq 0xfffffc28(%rbp),%r9 | |
0000000000000c7c movq 0xfffffc20(%rbp),%r10 | |
0000000000000c83 movq %r9,0xfffffc58(%rbp) | |
0000000000000c8a movq %r10,0xfffffc50(%rbp) | |
0000000000000c91 movq 0xfffffc58(%rbp),%r9 | |
0000000000000c98 movq 0xfffffc50(%rbp),%r10 | |
0000000000000c9f movq %r10,0xfffffc60(%rbp) | |
0000000000000ca6 movq 0xfffffc60(%rbp),%r10 | |
0000000000000cad movq %r9,0xfffffc90(%rbp) | |
0000000000000cb4 movq %r10,0xfffffc68(%rbp) | |
0000000000000cbb movq 0xfffffc90(%rbp),%r9 | |
0000000000000cc2 movq 0xfffffc68(%rbp),%r10 | |
0000000000000cc9 movq %r9,0xfffffcc0(%rbp) | |
0000000000000cd0 movq %r10,0xfffffc98(%rbp) | |
0000000000000cd7 movq 0xfffffcc0(%rbp),%r9 | |
0000000000000cde movq 0xfffffc98(%rbp),%r10 | |
0000000000000ce5 movq %r10,0xfffffcc8(%rbp) | |
0000000000000cec movq 0xfffffcc8(%rbp),%r10 | |
0000000000000cf3 movq %r9,0xfffffcd8(%rbp) | |
0000000000000cfa movq %r10,0xfffffcd0(%rbp) | |
0000000000000d01 movq 0xfffffcd8(%rbp),%r9 | |
0000000000000d08 movq 0xfffffcd0(%rbp),%r10 | |
0000000000000d0f movq %r10,0xfffffce0(%rbp) | |
0000000000000d16 movq 0xfffffce0(%rbp),%r10 | |
0000000000000d1d movq %r10,(%r9) | |
0000000000000d20 movq %rdi,0xfffffbb0(%rbp) | |
0000000000000d27 movq %r8,0xfffffba8(%rbp) | |
0000000000000d2e movq 0xfffffbb0(%rbp),%r8 | |
0000000000000d35 movq 0xfffffba8(%rbp),%r9 | |
0000000000000d3c movq %r8,0xfffffbc0(%rbp) | |
0000000000000d43 movq %r9,0xfffffbb8(%rbp) | |
0000000000000d4a movq 0xfffffbc0(%rbp),%r8 | |
0000000000000d51 movq 0xfffffbb8(%rbp),%r9 | |
0000000000000d58 movq %r9,0xfffffbc8(%rbp) | |
0000000000000d5f movq 0xfffffbc8(%rbp),%r9 | |
0000000000000d66 movq %r8,0xfffffbd8(%rbp) | |
0000000000000d6d movq %r9,0xfffffbd0(%rbp) | |
0000000000000d74 movq 0xfffffbd8(%rbp),%r8 | |
0000000000000d7b movq 0xfffffbd0(%rbp),%r9 | |
0000000000000d82 movq %r8,0xfffffbe8(%rbp) | |
0000000000000d89 movq %r9,0xfffffbe0(%rbp) | |
0000000000000d90 movq 0xfffffbe8(%rbp),%r8 | |
0000000000000d97 movq 0xfffffbe0(%rbp),%r9 | |
0000000000000d9e movq %r9,0xfffffbf0(%rbp) | |
0000000000000da5 movq 0xfffffbf0(%rbp),%r9 | |
0000000000000dac movq %r9,0xfffffbf8(%rbp) | |
0000000000000db3 movq 0xfffffbf8(%rbp),%r9 | |
0000000000000dba movq (%r9),%r9 | |
0000000000000dbd movq %r9,0xfffffc18(%rbp) | |
0000000000000dc4 movq 0xfffffc18(%rbp),%r9 | |
0000000000000dcb movq %r8,0xfffffc08(%rbp) | |
0000000000000dd2 movq %r9,0xfffffc00(%rbp) | |
0000000000000dd9 movq 0xfffffc08(%rbp),%r8 | |
0000000000000de0 movq 0xfffffc00(%rbp),%r9 | |
0000000000000de7 movq %r9,0xfffffc10(%rbp) | |
0000000000000dee movq 0xfffffc10(%rbp),%r9 | |
0000000000000df5 movq %r9,(%r8) | |
0000000000000df8 movq %rdx,0xfffffb20(%rbp) | |
0000000000000dff movq %rdi,0xfffffb18(%rbp) | |
0000000000000e06 movq 0xfffffb20(%rbp),%rdi | |
0000000000000e0d movq 0xfffffb18(%rbp),%r8 | |
0000000000000e14 movq %rdi,0xfffffb30(%rbp) | |
0000000000000e1b movq %r8,0xfffffb28(%rbp) | |
0000000000000e22 movq 0xfffffb30(%rbp),%rdi | |
0000000000000e29 movq 0xfffffb28(%rbp),%r8 | |
0000000000000e30 movq %r8,0xfffffb38(%rbp) | |
0000000000000e37 movq 0xfffffb38(%rbp),%r8 | |
0000000000000e3e movq %rdi,0xfffffb48(%rbp) | |
0000000000000e45 movq %r8,0xfffffb40(%rbp) | |
0000000000000e4c movq 0xfffffb48(%rbp),%rdi | |
0000000000000e53 movq 0xfffffb40(%rbp),%r8 | |
0000000000000e5a movq %rdi,0xfffffb58(%rbp) | |
0000000000000e61 movq %r8,0xfffffb50(%rbp) | |
0000000000000e68 movq 0xfffffb58(%rbp),%rdi | |
0000000000000e6f movq 0xfffffb50(%rbp),%r8 | |
0000000000000e76 movq %r8,0xfffffb60(%rbp) | |
0000000000000e7d movq 0xfffffb60(%rbp),%r8 | |
0000000000000e84 movq %r8,0xfffffb68(%rbp) | |
0000000000000e8b movq 0xfffffb68(%rbp),%r8 | |
0000000000000e92 movq (%r8),%r8 | |
0000000000000e95 movq %r8,0xfffffb88(%rbp) | |
0000000000000e9c movq 0xfffffb88(%rbp),%r8 | |
0000000000000ea3 movq %rdi,0xfffffb78(%rbp) | |
0000000000000eaa movq %r8,0xfffffb70(%rbp) | |
0000000000000eb1 movq 0xfffffb78(%rbp),%rdi | |
0000000000000eb8 movq 0xfffffb70(%rbp),%r8 | |
0000000000000ebf movq %r8,0xfffffb80(%rbp) | |
0000000000000ec6 movq 0xfffffb80(%rbp),%r8 | |
0000000000000ecd movq %r8,(%rdi) | |
0000000000000ed0 movq %rax,0xfffff988(%rbp) | |
0000000000000ed7 movq 0xfffff988(%rbp),%rax | |
0000000000000ede movq %rax,0xfffff9c0(%rbp) | |
0000000000000ee5 movq 0xfffff9c0(%rbp),%rax | |
0000000000000eec movq %rsi,0xfffff9c8(%rbp) | |
0000000000000ef3 movq 0xfffff9c8(%rbp),%rsi | |
0000000000000efa movq %rcx,0xfffffaa8(%rbp) | |
0000000000000f01 movq %rsi,0xfffffaa0(%rbp) | |
0000000000000f08 movq 0xfffffaa8(%rbp),%rsi | |
0000000000000f0f movq 0xfffffaa0(%rbp),%rdi | |
0000000000000f16 movq %rsi,0xfffffab8(%rbp) | |
0000000000000f1d movq %rdi,0xfffffab0(%rbp) | |
0000000000000f24 movq 0xfffffab8(%rbp),%rsi | |
0000000000000f2b movq 0xfffffab0(%rbp),%rdi | |
0000000000000f32 movq %rdi,0xfffffac0(%rbp) | |
0000000000000f39 movq 0xfffffac0(%rbp),%rdi | |
0000000000000f40 movq %rsi,0xfffffad0(%rbp) | |
0000000000000f47 movq %rdi,0xfffffac8(%rbp) | |
0000000000000f4e movq 0xfffffad0(%rbp),%rsi | |
0000000000000f55 movq 0xfffffac8(%rbp),%rdi | |
0000000000000f5c movq %rsi,0xfffffae0(%rbp) | |
0000000000000f63 movq %rdi,0xfffffad8(%rbp) | |
0000000000000f6a movq 0xfffffae0(%rbp),%rsi | |
0000000000000f71 movq 0xfffffad8(%rbp),%rdi | |
0000000000000f78 movq %rdi,0xfffffae8(%rbp) | |
0000000000000f7f movq 0xfffffae8(%rbp),%rdi | |
0000000000000f86 movq %rdi,0xfffffaf0(%rbp) | |
0000000000000f8d movq 0xfffffaf0(%rbp),%rdi | |
0000000000000f94 movq (%rdi),%rdi | |
0000000000000f97 movq %rdi,0xfffffb10(%rbp) | |
0000000000000f9e movq 0xfffffb10(%rbp),%rdi | |
0000000000000fa5 movq %rsi,0xfffffb00(%rbp) | |
0000000000000fac movq %rdi,0xfffffaf8(%rbp) | |
0000000000000fb3 movq 0xfffffb00(%rbp),%rsi | |
0000000000000fba movq 0xfffffaf8(%rbp),%rdi | |
0000000000000fc1 movq %rdi,0xfffffb08(%rbp) | |
0000000000000fc8 movq 0xfffffb08(%rbp),%rdi | |
0000000000000fcf movq %rdi,(%rsi) | |
0000000000000fd2 movq %rdx,0xfffffa98(%rbp) | |
0000000000000fd9 movq 0xfffffa98(%rbp),%rdx | |
0000000000000fe0 movq 0xfffff6c8(%rbp),%rsi | |
0000000000000fe7 movq %rsi,0xfffffa28(%rbp) | |
0000000000000fee movq %rdx,0xfffffa20(%rbp) | |
0000000000000ff5 movq 0xfffffa28(%rbp),%rdx | |
0000000000000ffc movq 0xfffffa20(%rbp),%rdi | |
0000000000001003 movq %rdx,0xfffffa38(%rbp) | |
000000000000100a movq %rdi,0xfffffa30(%rbp) | |
0000000000001011 movq 0xfffffa38(%rbp),%rdx | |
0000000000001018 movq 0xfffffa30(%rbp),%rdi | |
000000000000101f movq %rdi,0xfffffa40(%rbp) | |
0000000000001026 movq 0xfffffa40(%rbp),%rdi | |
000000000000102d movq %rdx,0xfffffa50(%rbp) | |
0000000000001034 movq %rdi,0xfffffa48(%rbp) | |
000000000000103b movq 0xfffffa50(%rbp),%rdx | |
0000000000001042 movq 0xfffffa48(%rbp),%rdi | |
0000000000001049 movq %rdx,0xfffffa60(%rbp) | |
0000000000001050 movq %rdi,0xfffffa58(%rbp) | |
0000000000001057 movq 0xfffffa60(%rbp),%rdx | |
000000000000105e movq 0xfffffa58(%rbp),%rdi | |
0000000000001065 movq %rdi,0xfffffa68(%rbp) | |
000000000000106c movq 0xfffffa68(%rbp),%rdi | |
0000000000001073 movq %rdi,0xfffffa70(%rbp) | |
000000000000107a movq 0xfffffa70(%rbp),%rdi | |
0000000000001081 movq (%rdi),%rdi | |
0000000000001084 movq %rdi,0xfffffa90(%rbp) | |
000000000000108b movq 0xfffffa90(%rbp),%rdi | |
0000000000001092 movq %rdx,0xfffffa80(%rbp) | |
0000000000001099 movq %rdi,0xfffffa78(%rbp) | |
00000000000010a0 movq 0xfffffa80(%rbp),%rdx | |
00000000000010a7 movq 0xfffffa78(%rbp),%rdi | |
00000000000010ae movq %rdi,0xfffffa88(%rbp) | |
00000000000010b5 movq 0xfffffa88(%rbp),%rdi | |
00000000000010bc movq %rdi,(%rdx) | |
00000000000010bf movq %rax,0xfffff9e8(%rbp) | |
00000000000010c6 movq %rcx,0xfffff9f0(%rbp) | |
00000000000010cd movq 0xfffff9f0(%rbp),%rax | |
00000000000010d4 movq %rax,0xfffff9f8(%rbp) | |
00000000000010db movq 0xfffff9f8(%rbp),%rax | |
00000000000010e2 movq (%rax),%rax | |
00000000000010e5 movq %rax,0xfffffa18(%rbp) | |
00000000000010ec movq %rsi,0xfffffa08(%rbp) | |
00000000000010f3 movq 0xfffffa08(%rbp),%rax | |
00000000000010fa movq %rax,0xfffffa10(%rbp) | |
0000000000001101 movq 0xfffffa10(%rbp),%rax | |
0000000000001108 movq (%rax),%rax | |
000000000000110b movq %rax,0xfffffa00(%rbp) | |
0000000000001112 leaq 0xfffff708(%rbp),%rax | |
0000000000001119 movq %rax,0xfffff8e0(%rbp) | |
0000000000001120 movq 0xfffff8e0(%rbp),%rcx | |
0000000000001127 movq %rcx,0xfffff8e8(%rbp) | |
000000000000112e movq 0xfffff8e8(%rbp),%rdx | |
0000000000001135 movq %rdx,0xfffff8f0(%rbp) | |
000000000000113c movq 0xfffff8f0(%rbp),%rdx | |
0000000000001143 movq (%rdx),%rdx | |
0000000000001146 movq %rdx,0xfffff8d8(%rbp) | |
000000000000114d movq %rcx,0xfffff8f8(%rbp) | |
0000000000001154 movq 0xfffff8f8(%rbp),%rcx | |
000000000000115b movq %rcx,0xfffff900(%rbp) | |
0000000000001162 movq 0xfffff900(%rbp),%rcx | |
0000000000001169 movq $0x00000000,(%rcx) | |
0000000000001170 movq 0xfffff8d8(%rbp),%rcx | |
0000000000001177 movl $0x00000001,0xfffff6e0(%rbp) | |
0000000000001181 movq %rax,0xfffff7f8(%rbp) | |
0000000000001188 movq 0xfffff7f8(%rbp),%rax | |
000000000000118f movq %rax,0xfffff800(%rbp) | |
0000000000001196 movq 0xfffff800(%rbp),%rax | |
000000000000119d movq %rax,0xfffff818(%rbp) | |
00000000000011a4 movq $0x00000000,0xfffff810(%rbp) | |
00000000000011af movq 0xfffff818(%rbp),%rax | |
00000000000011b6 movq %rax,0xfffff820(%rbp) | |
00000000000011bd movq 0xfffff820(%rbp),%rdx | |
00000000000011c4 movq %rdx,0xfffff828(%rbp) | |
00000000000011cb movq 0xfffff828(%rbp),%rdx | |
00000000000011d2 movq (%rdx),%rdx | |
00000000000011d5 movq %rdx,0xfffff808(%rbp) | |
00000000000011dc movq 0xfffff810(%rbp),%rdx | |
00000000000011e3 movq %rax,0xfffff870(%rbp) | |
00000000000011ea movq 0xfffff870(%rbp),%rsi | |
00000000000011f1 movq %rsi,0xfffff878(%rbp) | |
00000000000011f8 movq 0xfffff878(%rbp),%rsi | |
00000000000011ff movq %rdx,(%rsi) | |
0000000000001202 cmpq $0x00000000,0xfffff808(%rbp) | |
000000000000120d movq %rcx,0xfffff6c0(%rbp) | |
0000000000001214 movq %rax,0xfffff6b8(%rbp) | |
000000000000121b je 0x000012c3 | |
0000000000001221 movq 0xfffff6b8(%rbp),%rax | |
0000000000001228 movq %rax,0xfffff880(%rbp) | |
000000000000122f movq 0xfffff880(%rbp),%rcx | |
0000000000001236 movq %rcx,0xfffff888(%rbp) | |
000000000000123d movq 0xfffff888(%rbp),%rcx | |
0000000000001244 addq $0x00000008,%rcx | |
000000000000124b movq 0xfffff808(%rbp),%rdx | |
0000000000001252 movq %rcx,0xfffff838(%rbp) | |
0000000000001259 movq %rdx,0xfffff830(%rbp) | |
0000000000001260 movq 0xfffff838(%rbp),%rcx | |
0000000000001267 movq (%rcx),%rdx | |
000000000000126a movq 0xfffff830(%rbp),%rsi | |
0000000000001271 movq 0x08(%rcx),%rcx | |
0000000000001275 movq %rdx,0xfffff850(%rbp) | |
000000000000127c movq %rsi,0xfffff848(%rbp) | |
0000000000001283 movq %rcx,0xfffff840(%rbp) | |
000000000000128a movq 0xfffff850(%rbp),%rcx | |
0000000000001291 movq 0xfffff848(%rbp),%rdx | |
0000000000001298 movq 0xfffff840(%rbp),%rsi | |
000000000000129f movq %rcx,0xfffff868(%rbp) | |
00000000000012a6 movq %rdx,0xfffff860(%rbp) | |
00000000000012ad movq %rsi,0xfffff858(%rbp) | |
00000000000012b4 movq 0xfffff860(%rbp),%rcx | |
00000000000012bb movq %rcx,%rdi | |
00000000000012be callq 0x000012c3 | |
00000000000012c3 movq 0xfffff6c0(%rbp),%rax | |
00000000000012ca addq $0x00000928,%rsp | |
00000000000012d1 popq %rbx | |
00000000000012d2 popq %r12 | |
00000000000012d4 popq %r13 | |
00000000000012d6 popq %r14 | |
00000000000012d8 popq %r15 | |
00000000000012da popq %rbp | |
00000000000012db ret | |
00000000000012dc nopl 0x00(%rax) | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE: | |
00000000000012e0 pushq %rbp | |
00000000000012e1 movq %rsp,%rbp | |
00000000000012e4 pushq %r15 | |
00000000000012e6 pushq %r14 | |
00000000000012e8 pushq %r12 | |
00000000000012ea pushq %rbx | |
00000000000012eb subq $0x00000560,%rsp | |
00000000000012f2 movq %rdi,0xfffffa18(%rbp) | |
00000000000012f9 movq %rsi,0xfffffa10(%rbp) | |
0000000000001300 movq 0xfffffa18(%rbp),%rsi | |
0000000000001307 movq 0xfffffa10(%rbp),%rdi | |
000000000000130e cmpq $0x00000000,%rdi | |
0000000000001315 movq %rsi,0xfffffa08(%rbp) | |
000000000000131c movq %rdi,0xfffffa00(%rbp) | |
0000000000001323 je 0x00001b43 | |
0000000000001329 leaq 0xfffffac8(%rbp),%rax | |
0000000000001330 leaq 0xfffffad0(%rbp),%rcx | |
0000000000001337 leaq 0xfffffa50(%rbp),%rdx | |
000000000000133e leaq 0xfffffa70(%rbp),%rsi | |
0000000000001345 leaq 0xfffffa48(%rbp),%rdi | |
000000000000134c leaq 0xfffffcb8(%rbp),%r8 | |
0000000000001353 leaq 0xfffffa68(%rbp),%r9 | |
000000000000135a leaq 0xfffffe80(%rbp),%r10 | |
0000000000001361 leaq 0x00000000(%rip),%r11 | |
0000000000001368 addq $0x00000010,%r11 | |
000000000000136f movq 0x00000000(%rip),%rbx | |
0000000000001376 addq $0x00000010,%rbx | |
000000000000137d movq 0xfffffa00(%rbp),%r14 | |
0000000000001384 movq 0xfffffa08(%rbp),%r15 | |
000000000000138b addq $0x00000008,%r15 | |
0000000000001392 movq %r15,0xfffffa20(%rbp) | |
0000000000001399 movq 0xfffffa20(%rbp),%r15 | |
00000000000013a0 movq %r15,0xfffffa28(%rbp) | |
00000000000013a7 movq 0xfffffa28(%rbp),%r15 | |
00000000000013ae movq 0xfffffa08(%rbp),%r12 | |
00000000000013b5 addq $0x00000008,%r12 | |
00000000000013bc movq %r12,0xd0(%rbp) | |
00000000000013c0 movq 0xd0(%rbp),%r12 | |
00000000000013c4 movq %r12,0xd8(%rbp) | |
00000000000013c8 movq 0xd8(%rbp),%r12 | |
00000000000013cc movq %r14,0xfffffa40(%rbp) | |
00000000000013d3 movq %r15,0xfffffa38(%rbp) | |
00000000000013da movq %r12,0xfffffa30(%rbp) | |
00000000000013e1 movq 0xfffffa40(%rbp),%r14 | |
00000000000013e8 movq 0xfffffa38(%rbp),%r15 | |
00000000000013ef movq 0xfffffa30(%rbp),%r12 | |
00000000000013f6 movq %r14,0xfffffa90(%rbp) | |
00000000000013fd movq %r15,0xfffffa88(%rbp) | |
0000000000001404 movq %r12,0xfffffa80(%rbp) | |
000000000000140b movq 0xfffffa90(%rbp),%r14 | |
0000000000001412 movq %r14,%r15 | |
0000000000001415 movq %r15,0xfffffa98(%rbp) | |
000000000000141c movq 0xfffffa98(%rbp),%r15 | |
0000000000001423 movq %rbx,(%r15) | |
0000000000001426 movq %r11,(%r14) | |
0000000000001429 addq $0x00000008,%r14 | |
0000000000001430 movq 0xfffffa88(%rbp),%r11 | |
0000000000001437 movq %r11,0xfffffe88(%rbp) | |
000000000000143e movq 0xfffffe88(%rbp),%r11 | |
0000000000001445 movq %r11,0xfffffe90(%rbp) | |
000000000000144c movq 0xfffffe90(%rbp),%r11 | |
0000000000001453 movq %r10,0xffffff18(%rbp) | |
000000000000145a movq %r11,0xffffff10(%rbp) | |
0000000000001461 movq 0xffffff18(%rbp),%r11 | |
0000000000001468 movq 0xffffff10(%rbp),%rbx | |
000000000000146f movq %r11,0xffffff48(%rbp) | |
0000000000001476 movq %rbx,0xffffff40(%rbp) | |
000000000000147d movq 0xffffff48(%rbp),%r11 | |
0000000000001484 movq 0xffffff40(%rbp),%rbx | |
000000000000148b movq %r11,0xffffff78(%rbp) | |
0000000000001492 movq %rbx,0xffffff50(%rbp) | |
0000000000001499 movq 0xffffff78(%rbp),%r11 | |
00000000000014a0 movq 0xffffff50(%rbp),%rbx | |
00000000000014a7 movq %r11,0xa8(%rbp) | |
00000000000014ab movq %rbx,0x80(%rbp) | |
00000000000014af movq 0xa8(%rbp),%r11 | |
00000000000014b3 movq 0x80(%rbp),%rbx | |
00000000000014b7 movq %rbx,0xb0(%rbp) | |
00000000000014bb movq 0xb0(%rbp),%rbx | |
00000000000014bf movq %r11,0xc0(%rbp) | |
00000000000014c3 movq %rbx,0xb8(%rbp) | |
00000000000014c7 movq 0xc0(%rbp),%r11 | |
00000000000014cb movq 0xb8(%rbp),%rbx | |
00000000000014cf movq %rbx,0xc8(%rbp) | |
00000000000014d3 movq 0xc8(%rbp),%rbx | |
00000000000014d7 movq %rbx,(%r11) | |
00000000000014da movq %r9,0xfffffea0(%rbp) | |
00000000000014e1 movq %r10,0xfffffe98(%rbp) | |
00000000000014e8 movq 0xfffffea0(%rbp),%r10 | |
00000000000014ef movq 0xfffffe98(%rbp),%r11 | |
00000000000014f6 movq %r10,0xfffffeb0(%rbp) | |
00000000000014fd movq %r11,0xfffffea8(%rbp) | |
0000000000001504 movq 0xfffffeb0(%rbp),%r10 | |
000000000000150b movq 0xfffffea8(%rbp),%r11 | |
0000000000001512 movq %r11,0xfffffeb8(%rbp) | |
0000000000001519 movq 0xfffffeb8(%rbp),%r11 | |
0000000000001520 movq %r10,0xfffffec8(%rbp) | |
0000000000001527 movq %r11,0xfffffec0(%rbp) | |
000000000000152e movq 0xfffffec8(%rbp),%r10 | |
0000000000001535 movq 0xfffffec0(%rbp),%r11 | |
000000000000153c movq %r10,0xfffffed8(%rbp) | |
0000000000001543 movq %r11,0xfffffed0(%rbp) | |
000000000000154a movq 0xfffffed8(%rbp),%r10 | |
0000000000001551 movq 0xfffffed0(%rbp),%r11 | |
0000000000001558 movq %r11,0xfffffee0(%rbp) | |
000000000000155f movq 0xfffffee0(%rbp),%r11 | |
0000000000001566 movq %r11,0xfffffee8(%rbp) | |
000000000000156d movq 0xfffffee8(%rbp),%r11 | |
0000000000001574 movq (%r11),%r11 | |
0000000000001577 movq %r11,0xffffff08(%rbp) | |
000000000000157e movq 0xffffff08(%rbp),%r11 | |
0000000000001585 movq %r10,0xfffffef8(%rbp) | |
000000000000158c movq %r11,0xfffffef0(%rbp) | |
0000000000001593 movq 0xfffffef8(%rbp),%r10 | |
000000000000159a movq 0xfffffef0(%rbp),%r11 | |
00000000000015a1 movq %r11,0xffffff00(%rbp) | |
00000000000015a8 movq 0xffffff00(%rbp),%r11 | |
00000000000015af movq %r11,(%r10) | |
00000000000015b2 movq %rsi,0xfffffe10(%rbp) | |
00000000000015b9 movq %r9,0xfffffe08(%rbp) | |
00000000000015c0 movq 0xfffffe10(%rbp),%r9 | |
00000000000015c7 movq 0xfffffe08(%rbp),%r10 | |
00000000000015ce movq %r9,0xfffffe20(%rbp) | |
00000000000015d5 movq %r10,0xfffffe18(%rbp) | |
00000000000015dc movq 0xfffffe20(%rbp),%r9 | |
00000000000015e3 movq 0xfffffe18(%rbp),%r10 | |
00000000000015ea movq %r10,0xfffffe28(%rbp) | |
00000000000015f1 movq 0xfffffe28(%rbp),%r10 | |
00000000000015f8 movq %r9,0xfffffe38(%rbp) | |
00000000000015ff movq %r10,0xfffffe30(%rbp) | |
0000000000001606 movq 0xfffffe38(%rbp),%r9 | |
000000000000160d movq 0xfffffe30(%rbp),%r10 | |
0000000000001614 movq %r9,0xfffffe48(%rbp) | |
000000000000161b movq %r10,0xfffffe40(%rbp) | |
0000000000001622 movq 0xfffffe48(%rbp),%r9 | |
0000000000001629 movq 0xfffffe40(%rbp),%r10 | |
0000000000001630 movq %r10,0xfffffe50(%rbp) | |
0000000000001637 movq 0xfffffe50(%rbp),%r10 | |
000000000000163e movq %r10,0xfffffe58(%rbp) | |
0000000000001645 movq 0xfffffe58(%rbp),%r10 | |
000000000000164c movq (%r10),%r10 | |
000000000000164f movq %r10,0xfffffe78(%rbp) | |
0000000000001656 movq 0xfffffe78(%rbp),%r10 | |
000000000000165d movq %r9,0xfffffe68(%rbp) | |
0000000000001664 movq %r10,0xfffffe60(%rbp) | |
000000000000166b movq 0xfffffe68(%rbp),%r9 | |
0000000000001672 movq 0xfffffe60(%rbp),%r10 | |
0000000000001679 movq %r10,0xfffffe70(%rbp) | |
0000000000001680 movq 0xfffffe70(%rbp),%r10 | |
0000000000001687 movq %r10,(%r9) | |
000000000000168a movq 0xfffffa80(%rbp),%r9 | |
0000000000001691 movq %r9,0xfffffcc0(%rbp) | |
0000000000001698 movq 0xfffffcc0(%rbp),%r9 | |
000000000000169f movq %r9,0xfffffcc8(%rbp) | |
00000000000016a6 movq 0xfffffcc8(%rbp),%r9 | |
00000000000016ad movq %r8,0xfffffd50(%rbp) | |
00000000000016b4 movq %r9,0xfffffd48(%rbp) | |
00000000000016bb movq 0xfffffd50(%rbp),%r9 | |
00000000000016c2 movq 0xfffffd48(%rbp),%r10 | |
00000000000016c9 movq %r9,0xfffffd80(%rbp) | |
00000000000016d0 movq %r10,0xfffffd78(%rbp) | |
00000000000016d7 movq 0xfffffd80(%rbp),%r9 | |
00000000000016de movq 0xfffffd78(%rbp),%r10 | |
00000000000016e5 movq %r9,0xfffffdb0(%rbp) | |
00000000000016ec movq %r10,0xfffffd88(%rbp) | |
00000000000016f3 movq 0xfffffdb0(%rbp),%r9 | |
00000000000016fa movq 0xfffffd88(%rbp),%r10 | |
0000000000001701 movq %r9,0xfffffde0(%rbp) | |
0000000000001708 movq %r10,0xfffffdb8(%rbp) | |
000000000000170f movq 0xfffffde0(%rbp),%r9 | |
0000000000001716 movq 0xfffffdb8(%rbp),%r10 | |
000000000000171d movq %r10,0xfffffde8(%rbp) | |
0000000000001724 movq 0xfffffde8(%rbp),%r10 | |
000000000000172b movq %r9,0xfffffdf8(%rbp) | |
0000000000001732 movq %r10,0xfffffdf0(%rbp) | |
0000000000001739 movq 0xfffffdf8(%rbp),%r9 | |
0000000000001740 movq 0xfffffdf0(%rbp),%r10 | |
0000000000001747 movq %r10,0xfffffe00(%rbp) | |
000000000000174e movq 0xfffffe00(%rbp),%r10 | |
0000000000001755 movq %r10,(%r9) | |
0000000000001758 movq %rdi,0xfffffcd8(%rbp) | |
000000000000175f movq %r8,0xfffffcd0(%rbp) | |
0000000000001766 movq 0xfffffcd8(%rbp),%r8 | |
000000000000176d movq 0xfffffcd0(%rbp),%r9 | |
0000000000001774 movq %r8,0xfffffce8(%rbp) | |
000000000000177b movq %r9,0xfffffce0(%rbp) | |
0000000000001782 movq 0xfffffce8(%rbp),%r8 | |
0000000000001789 movq 0xfffffce0(%rbp),%r9 | |
0000000000001790 movq %r9,0xfffffcf0(%rbp) | |
0000000000001797 movq 0xfffffcf0(%rbp),%r9 | |
000000000000179e movq %r8,0xfffffd00(%rbp) | |
00000000000017a5 movq %r9,0xfffffcf8(%rbp) | |
00000000000017ac movq 0xfffffd00(%rbp),%r8 | |
00000000000017b3 movq 0xfffffcf8(%rbp),%r9 | |
00000000000017ba movq %r8,0xfffffd10(%rbp) | |
00000000000017c1 movq %r9,0xfffffd08(%rbp) | |
00000000000017c8 movq 0xfffffd10(%rbp),%r8 | |
00000000000017cf movq 0xfffffd08(%rbp),%r9 | |
00000000000017d6 movq %r9,0xfffffd18(%rbp) | |
00000000000017dd movq 0xfffffd18(%rbp),%r9 | |
00000000000017e4 movq %r9,0xfffffd20(%rbp) | |
00000000000017eb movq 0xfffffd20(%rbp),%r9 | |
00000000000017f2 movq (%r9),%r9 | |
00000000000017f5 movq %r9,0xfffffd40(%rbp) | |
00000000000017fc movq 0xfffffd40(%rbp),%r9 | |
0000000000001803 movq %r8,0xfffffd30(%rbp) | |
000000000000180a movq %r9,0xfffffd28(%rbp) | |
0000000000001811 movq 0xfffffd30(%rbp),%r8 | |
0000000000001818 movq 0xfffffd28(%rbp),%r9 | |
000000000000181f movq %r9,0xfffffd38(%rbp) | |
0000000000001826 movq 0xfffffd38(%rbp),%r9 | |
000000000000182d movq %r9,(%r8) | |
0000000000001830 movq %rdx,0xfffffc48(%rbp) | |
0000000000001837 movq %rdi,0xfffffc40(%rbp) | |
000000000000183e movq 0xfffffc48(%rbp),%rdi | |
0000000000001845 movq 0xfffffc40(%rbp),%r8 | |
000000000000184c movq %rdi,0xfffffc58(%rbp) | |
0000000000001853 movq %r8,0xfffffc50(%rbp) | |
000000000000185a movq 0xfffffc58(%rbp),%rdi | |
0000000000001861 movq 0xfffffc50(%rbp),%r8 | |
0000000000001868 movq %r8,0xfffffc60(%rbp) | |
000000000000186f movq 0xfffffc60(%rbp),%r8 | |
0000000000001876 movq %rdi,0xfffffc70(%rbp) | |
000000000000187d movq %r8,0xfffffc68(%rbp) | |
0000000000001884 movq 0xfffffc70(%rbp),%rdi | |
000000000000188b movq 0xfffffc68(%rbp),%r8 | |
0000000000001892 movq %rdi,0xfffffc80(%rbp) | |
0000000000001899 movq %r8,0xfffffc78(%rbp) | |
00000000000018a0 movq 0xfffffc80(%rbp),%rdi | |
00000000000018a7 movq 0xfffffc78(%rbp),%r8 | |
00000000000018ae movq %r8,0xfffffc88(%rbp) | |
00000000000018b5 movq 0xfffffc88(%rbp),%r8 | |
00000000000018bc movq %r8,0xfffffc90(%rbp) | |
00000000000018c3 movq 0xfffffc90(%rbp),%r8 | |
00000000000018ca movq (%r8),%r8 | |
00000000000018cd movq %r8,0xfffffcb0(%rbp) | |
00000000000018d4 movq 0xfffffcb0(%rbp),%r8 | |
00000000000018db movq %rdi,0xfffffca0(%rbp) | |
00000000000018e2 movq %r8,0xfffffc98(%rbp) | |
00000000000018e9 movq 0xfffffca0(%rbp),%rdi | |
00000000000018f0 movq 0xfffffc98(%rbp),%r8 | |
00000000000018f7 movq %r8,0xfffffca8(%rbp) | |
00000000000018fe movq 0xfffffca8(%rbp),%r8 | |
0000000000001905 movq %r8,(%rdi) | |
0000000000001908 movq %r14,0xfffffab0(%rbp) | |
000000000000190f movq 0xfffffab0(%rbp),%rdi | |
0000000000001916 movq %rdi,0xfffffae8(%rbp) | |
000000000000191d movq 0xfffffae8(%rbp),%rdi | |
0000000000001924 movq %rsi,0xfffffaf0(%rbp) | |
000000000000192b movq 0xfffffaf0(%rbp),%rsi | |
0000000000001932 movq %rcx,0xfffffbd0(%rbp) | |
0000000000001939 movq %rsi,0xfffffbc8(%rbp) | |
0000000000001940 movq 0xfffffbd0(%rbp),%rsi | |
0000000000001947 movq 0xfffffbc8(%rbp),%r8 | |
000000000000194e movq %rsi,0xfffffbe0(%rbp) | |
0000000000001955 movq %r8,0xfffffbd8(%rbp) | |
000000000000195c movq 0xfffffbe0(%rbp),%rsi | |
0000000000001963 movq 0xfffffbd8(%rbp),%r8 | |
000000000000196a movq %r8,0xfffffbe8(%rbp) | |
0000000000001971 movq 0xfffffbe8(%rbp),%r8 | |
0000000000001978 movq %rsi,0xfffffbf8(%rbp) | |
000000000000197f movq %r8,0xfffffbf0(%rbp) | |
0000000000001986 movq 0xfffffbf8(%rbp),%rsi | |
000000000000198d movq 0xfffffbf0(%rbp),%r8 | |
0000000000001994 movq %rsi,0xfffffc08(%rbp) | |
000000000000199b movq %r8,0xfffffc00(%rbp) | |
00000000000019a2 movq 0xfffffc08(%rbp),%rsi | |
00000000000019a9 movq 0xfffffc00(%rbp),%r8 | |
00000000000019b0 movq %r8,0xfffffc10(%rbp) | |
00000000000019b7 movq 0xfffffc10(%rbp),%r8 | |
00000000000019be movq %r8,0xfffffc18(%rbp) | |
00000000000019c5 movq 0xfffffc18(%rbp),%r8 | |
00000000000019cc movq (%r8),%r8 | |
00000000000019cf movq %r8,0xfffffc38(%rbp) | |
00000000000019d6 movq 0xfffffc38(%rbp),%r8 | |
00000000000019dd movq %rsi,0xfffffc28(%rbp) | |
00000000000019e4 movq %r8,0xfffffc20(%rbp) | |
00000000000019eb movq 0xfffffc28(%rbp),%rsi | |
00000000000019f2 movq 0xfffffc20(%rbp),%r8 | |
00000000000019f9 movq %r8,0xfffffc30(%rbp) | |
0000000000001a00 movq 0xfffffc30(%rbp),%r8 | |
0000000000001a07 movq %r8,(%rsi) | |
0000000000001a0a movq %rdx,0xfffffbc0(%rbp) | |
0000000000001a11 movq 0xfffffbc0(%rbp),%rdx | |
0000000000001a18 movq %rax,0xfffffb50(%rbp) | |
0000000000001a1f movq %rdx,0xfffffb48(%rbp) | |
0000000000001a26 movq 0xfffffb50(%rbp),%rdx | |
0000000000001a2d movq 0xfffffb48(%rbp),%rsi | |
0000000000001a34 movq %rdx,0xfffffb60(%rbp) | |
0000000000001a3b movq %rsi,0xfffffb58(%rbp) | |
0000000000001a42 movq 0xfffffb60(%rbp),%rdx | |
0000000000001a49 movq 0xfffffb58(%rbp),%rsi | |
0000000000001a50 movq %rsi,0xfffffb68(%rbp) | |
0000000000001a57 movq 0xfffffb68(%rbp),%rsi | |
0000000000001a5e movq %rdx,0xfffffb78(%rbp) | |
0000000000001a65 movq %rsi,0xfffffb70(%rbp) | |
0000000000001a6c movq 0xfffffb78(%rbp),%rdx | |
0000000000001a73 movq 0xfffffb70(%rbp),%rsi | |
0000000000001a7a movq %rdx,0xfffffb88(%rbp) | |
0000000000001a81 movq %rsi,0xfffffb80(%rbp) | |
0000000000001a88 movq 0xfffffb88(%rbp),%rdx | |
0000000000001a8f movq 0xfffffb80(%rbp),%rsi | |
0000000000001a96 movq %rsi,0xfffffb90(%rbp) | |
0000000000001a9d movq 0xfffffb90(%rbp),%rsi | |
0000000000001aa4 movq %rsi,0xfffffb98(%rbp) | |
0000000000001aab movq 0xfffffb98(%rbp),%rsi | |
0000000000001ab2 movq (%rsi),%rsi | |
0000000000001ab5 movq %rsi,0xfffffbb8(%rbp) | |
0000000000001abc movq 0xfffffbb8(%rbp),%rsi | |
0000000000001ac3 movq %rdx,0xfffffba8(%rbp) | |
0000000000001aca movq %rsi,0xfffffba0(%rbp) | |
0000000000001ad1 movq 0xfffffba8(%rbp),%rdx | |
0000000000001ad8 movq 0xfffffba0(%rbp),%rsi | |
0000000000001adf movq %rsi,0xfffffbb0(%rbp) | |
0000000000001ae6 movq 0xfffffbb0(%rbp),%rsi | |
0000000000001aed movq %rsi,(%rdx) | |
0000000000001af0 movq %rdi,0xfffffb10(%rbp) | |
0000000000001af7 movq %rcx,0xfffffb18(%rbp) | |
0000000000001afe movq 0xfffffb18(%rbp),%rcx | |
0000000000001b05 movq %rcx,0xfffffb20(%rbp) | |
0000000000001b0c movq 0xfffffb20(%rbp),%rcx | |
0000000000001b13 movq (%rcx),%rcx | |
0000000000001b16 movq %rcx,0xfffffb40(%rbp) | |
0000000000001b1d movq %rax,0xfffffb30(%rbp) | |
0000000000001b24 movq 0xfffffb30(%rbp),%rax | |
0000000000001b2b movq %rax,0xfffffb38(%rbp) | |
0000000000001b32 movq 0xfffffb38(%rbp),%rax | |
0000000000001b39 movq (%rax),%rax | |
0000000000001b3c movq %rax,0xfffffb28(%rbp) | |
0000000000001b43 addq $0x00000560,%rsp | |
0000000000001b4a popq %rbx | |
0000000000001b4b popq %r12 | |
0000000000001b4d popq %r14 | |
0000000000001b4f popq %r15 | |
0000000000001b51 popq %rbp | |
0000000000001b52 ret | |
0000000000001b53 nopl %cs:0x00000000(%rax,%rax) | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv: | |
0000000000001b60 pushq %rbp | |
0000000000001b61 movq %rsp,%rbp | |
0000000000001b64 movq %rdi,0xf8(%rbp) | |
0000000000001b68 popq %rbp | |
0000000000001b69 ret | |
0000000000001b6a nopw 0x00(%rax,%rax) | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv: | |
0000000000001b70 pushq %rbp | |
0000000000001b71 movq %rsp,%rbp | |
0000000000001b74 subq $0x60,%rsp | |
0000000000001b78 leaq 0xa8(%rbp),%rax | |
0000000000001b7c movq %rdi,0xb0(%rbp) | |
0000000000001b80 movq 0xb0(%rbp),%rdi | |
0000000000001b84 movq %rdi,%rcx | |
0000000000001b87 addq $0x00000008,%rcx | |
0000000000001b8e movq %rcx,0xb8(%rbp) | |
0000000000001b92 movq 0xb8(%rbp),%rcx | |
0000000000001b96 movq %rcx,0xc0(%rbp) | |
0000000000001b9a movq 0xc0(%rbp),%rcx | |
0000000000001b9e movq %rax,0xe8(%rbp) | |
0000000000001ba2 movq %rcx,0xe0(%rbp) | |
0000000000001ba6 movq 0xe8(%rbp),%rcx | |
0000000000001baa movq 0xe0(%rbp),%rdx | |
0000000000001bae movq %rcx,0xf8(%rbp) | |
0000000000001bb2 movq %rdx,0xf0(%rbp) | |
0000000000001bb6 movq %rax,0xd8(%rbp) | |
0000000000001bba movq %rdi,0xd0(%rbp) | |
0000000000001bbe movq $0x00000001,0xc8(%rbp) | |
0000000000001bc6 movq 0xd0(%rbp),%rax | |
0000000000001bca movq %rax,%rdi | |
0000000000001bcd callq 0x00001bd2 | |
0000000000001bd2 addq $0x60,%rsp | |
0000000000001bd6 popq %rbp | |
0000000000001bd7 ret | |
0000000000001bd8 nopl 0x00000000(%rax,%rax) | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi: | |
0000000000001be0 pushq %rbp | |
0000000000001be1 movq %rsp,%rbp | |
0000000000001be4 subq $0x50,%rsp | |
0000000000001be8 movq %rdi,0xc0(%rbp) | |
0000000000001bec movq %rsi,0xb8(%rbp) | |
0000000000001bf0 movq 0xc0(%rbp),%rsi | |
0000000000001bf4 addq $0x00000008,%rsi | |
0000000000001bfb movq %rsi,0xc8(%rbp) | |
0000000000001bff movq 0xc8(%rbp),%rsi | |
0000000000001c03 movq %rsi,0xd0(%rbp) | |
0000000000001c07 movq 0xd0(%rbp),%rsi | |
0000000000001c0b movq 0xb8(%rbp),%rdi | |
0000000000001c0f movq %rdi,0xf8(%rbp) | |
0000000000001c13 movq 0xf8(%rbp),%rdi | |
0000000000001c17 movq %rsi,0xe0(%rbp) | |
0000000000001c1b movq %rdi,0xd8(%rbp) | |
0000000000001c1f movq 0xe0(%rbp),%rsi | |
0000000000001c23 movq %rsi,0xe8(%rbp) | |
0000000000001c27 movq 0xe8(%rbp),%rdi | |
0000000000001c2b movq 0xd8(%rbp),%rsi | |
0000000000001c2f movq %rsi,0xf0(%rbp) | |
0000000000001c33 movq 0xf0(%rbp),%rsi | |
0000000000001c37 movl (%rsi),%esi | |
0000000000001c39 callq 0x00001c3e | |
0000000000001c3e addq $0x50,%rsp | |
0000000000001c42 popq %rbp | |
0000000000001c43 ret | |
0000000000001c44 nopw %cs:0x00000000(%rax,%rax) | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info: | |
0000000000001c50 pushq %rbp | |
0000000000001c51 movq %rsp,%rbp | |
0000000000001c54 leaq 0x00000000(%rip),%rax | |
0000000000001c5b movq %rdi,0xd0(%rbp) | |
0000000000001c5f movq %rsi,0xc8(%rbp) | |
0000000000001c63 movq 0xd0(%rbp),%rsi | |
0000000000001c67 movq 0xc8(%rbp),%rdi | |
0000000000001c6b movq %rdi,0xe8(%rbp) | |
0000000000001c6f movq %rax,0xe0(%rbp) | |
0000000000001c73 movq 0xe8(%rbp),%rax | |
0000000000001c77 movq 0x08(%rax),%rax | |
0000000000001c7b movq 0xe0(%rbp),%rdi | |
0000000000001c7f cmpq 0x08(%rdi),%rax | |
0000000000001c83 movq %rsi,0xc0(%rbp) | |
0000000000001c87 jne 0x00001cb0 | |
0000000000001c8d movq 0xc0(%rbp),%rax | |
0000000000001c91 addq $0x00000008,%eax | |
0000000000001c97 movq %rax,0xf0(%rbp) | |
0000000000001c9b movq 0xf0(%rbp),%rax | |
0000000000001c9f movq %rax,0xf8(%rbp) | |
0000000000001ca3 movq 0xf8(%rbp),%rax | |
0000000000001ca7 movq %rax,0xd8(%rbp) | |
0000000000001cab jmp 0x00001cb8 | |
0000000000001cb0 movq $0x00000000,0xd8(%rbp) | |
0000000000001cb8 movq 0xd8(%rbp),%rax | |
0000000000001cbc popq %rbp | |
0000000000001cbd ret | |
0000000000001cbe nop | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv: | |
0000000000001cc0 pushq %rbp | |
0000000000001cc1 movq %rsp,%rbp | |
0000000000001cc4 leaq 0x00000000(%rip),%rax | |
0000000000001ccb movq %rdi,0xf8(%rbp) | |
0000000000001ccf popq %rbp | |
0000000000001cd0 ret | |
0000000000001cd1 nopl %cs:0x00000000(%rax,%rax) | |
__ZZ3foovENK3$_0clEi: | |
0000000000001ce0 pushq %rbp | |
0000000000001ce1 movq %rsp,%rbp | |
0000000000001ce4 movq %rdi,0xf8(%rbp) | |
0000000000001ce8 movl %esi,0xf4(%rbp) | |
0000000000001ceb movl 0xf4(%rbp),%esi | |
0000000000001cee addl $0x00000001,%esi | |
0000000000001cf4 movl %esi,%eax | |
0000000000001cf6 popq %rbp | |
0000000000001cf7 ret | |
0000000000001cf8 nopl 0x00000000(%rax,%rax) | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev: | |
0000000000001d00 pushq %rbp | |
0000000000001d01 movq %rsp,%rbp | |
0000000000001d04 movq %rdi,0xf0(%rbp) | |
0000000000001d08 movq 0xf0(%rbp),%rdi | |
0000000000001d0c movq %rdi,0xf8(%rbp) | |
0000000000001d10 popq %rbp | |
0000000000001d11 ret |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'std_func_overhead.cpp' | |
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" | |
target triple = "x86_64-apple-macosx10.8.0" | |
%"struct.std::__1::__ignore_t" = type { i8 } | |
%"struct.std::__1::piecewise_construct_t" = type { i8 } | |
%class.anon = type { i8 } | |
%"class.std::__1::function" = type { %"struct.std::__1::aligned_storage<24, 16>::type", %"class.std::__1::__function::__base"*, [8 x i8] } | |
%"struct.std::__1::aligned_storage<24, 16>::type" = type { [24 x i8], [8 x i8] } | |
%"class.std::__1::__function::__base" = type { i32 (...)** } | |
%"class.std::__1::__tuple_leaf" = type { %class.anon* } | |
%"struct.std::__1::__tuple_impl" = type { %"class.std::__1::__tuple_leaf" } | |
%"struct.std::__1::__tuple_indices" = type { i8 } | |
%"struct.std::__1::__tuple_types.18" = type { i8 } | |
%"struct.std::__1::__tuple_indices.9" = type { i8 } | |
%"struct.std::__1::__tuple_types.10" = type { i8 } | |
%"class.std::__1::tuple" = type { %"struct.std::__1::__tuple_impl" } | |
%"class.std::__1::tuple.0" = type { i8 } | |
%"class.std::__1::allocator" = type { i8 } | |
%"class.std::__1::__libcpp_compressed_pair_imp" = type { i8 } | |
%"class.std::__1::__compressed_pair" = type { i8 } | |
%"class.std::__1::__function::__func" = type { %"class.std::__1::__function::__base", %"class.std::__1::__compressed_pair" } | |
%"struct.std::__1::__function::__maybe_derive_from_unary_function" = type { i8 } | |
%"struct.std::__1::__function::__maybe_derive_from_binary_function" = type { i8 } | |
%"class.std::__1::__allocator_destructor" = type { %"class.std::__1::allocator.1"*, i64 } | |
%"class.std::__1::allocator.1" = type { i8 } | |
%"class.std::__1::__libcpp_compressed_pair_imp.13" = type { %"class.std::__1::__function::__func"*, %"class.std::__1::__allocator_destructor" } | |
%"class.std::__1::__compressed_pair.12" = type { %"class.std::__1::__libcpp_compressed_pair_imp.13" } | |
%"class.std::__1::unique_ptr" = type { %"class.std::__1::__compressed_pair.12" } | |
%"class.std::__1::__tuple_leaf.5" = type { %class.anon* } | |
%"struct.std::__1::__tuple_impl.4" = type { %"class.std::__1::__tuple_leaf.5" } | |
%"struct.std::__1::__tuple_types.11" = type { i8 } | |
%"class.std::__1::tuple.3" = type { %"struct.std::__1::__tuple_impl.4" } | |
%"class.std::__1::__tuple_leaf.16" = type { %"class.std::__1::allocator"* } | |
%"struct.std::__1::__tuple_impl.15" = type { %"class.std::__1::__tuple_leaf.16" } | |
%"struct.std::__1::__tuple_types.17" = type { i8 } | |
%"class.std::__1::tuple.14" = type { %"struct.std::__1::__tuple_impl.15" } | |
%"class.std::__1::__tuple_leaf.8" = type { %"class.std::__1::allocator"* } | |
%"struct.std::__1::__tuple_impl.7" = type { %"class.std::__1::__tuple_leaf.8" } | |
%"struct.std::__1::__tuple_types" = type { i8 } | |
%"class.std::__1::tuple.6" = type { %"struct.std::__1::__tuple_impl.7" } | |
%"class.std::type_info" = type { i32 (...)**, i8* } | |
@_ZNSt3__112_GLOBAL__N_1L6ignoreE = internal constant %"struct.std::__1::__ignore_t" undef, align 1 | |
@"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal unnamed_addr constant [11 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev" to i8*), i8* bitcast (%"class.std::__1::__function::__base"* (%"class.std::__1::__function::__func"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*, %"class.std::__1::__function::__base"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv" to i8*), i8* bitcast (i32 (%"class.std::__1::__function::__func"*, i32*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi" to i8*), i8* bitcast (i8* (%"class.std::__1::__function::__func"*, %"class.std::type_info"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info" to i8*), i8* bitcast (%"class.std::type_info"* (%"class.std::__1::__function::__func"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv" to i8*)] | |
@_ZNSt3__119piecewise_constructE = external global %"struct.std::__1::piecewise_construct_t" | |
@_ZTVN10__cxxabiv120__si_class_type_infoE = external global i8* | |
@"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal constant [64 x i8] c"NSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE\00" | |
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8* | |
@_ZTSNSt3__110__function6__baseIFiiEEE = linkonce_odr constant [34 x i8] c"NSt3__110__function6__baseIFiiEEE\00" | |
@_ZTINSt3__110__function6__baseIFiiEEE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([34 x i8]* @_ZTSNSt3__110__function6__baseIFiiEEE, i32 0, i32 0) } | |
@"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal unnamed_addr constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([64 x i8]* @"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTINSt3__110__function6__baseIFiiEEE to i8*) } | |
@"_ZTSZ3foovE3$_0" = internal constant [12 x i8] c"Z3foovE3$_0\00" | |
@"_ZTIZ3foovE3$_0" = internal unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([12 x i8]* @"_ZTSZ3foovE3$_0", i32 0, i32 0) } | |
@_ZTVNSt3__110__function6__baseIFiiEEE = linkonce_odr unnamed_addr constant [11 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTINSt3__110__function6__baseIFiiEEE to i8*), i8* bitcast (void (%"class.std::__1::__function::__base"*)* @_ZNSt3__110__function6__baseIFiiEED1Ev to i8*), i8* bitcast (void (%"class.std::__1::__function::__base"*)* @_ZNSt3__110__function6__baseIFiiEED0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] | |
define void @_Z3foov() uwtable ssp { | |
%l = alloca %class.anon, align 1 | |
%1 = alloca %"class.std::__1::function", align 16 | |
%2 = alloca %class.anon, align 1 | |
%3 = alloca i8* | |
%4 = alloca i32 | |
call void @"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"(%"class.std::__1::function"* %1, i8* null) | |
invoke void @_Z3runNSt3__18functionIFiiEEE(%"class.std::__1::function"* %1) | |
to label %5 unwind label %6 | |
; <label>:5 ; preds = %0 | |
call void @_ZNSt3__18functionIFiiEED1Ev(%"class.std::__1::function"* %1) nounwind | |
ret void | |
; <label>:6 ; preds = %0 | |
%7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) | |
cleanup | |
%8 = extractvalue { i8*, i32 } %7, 0 | |
store i8* %8, i8** %3 | |
%9 = extractvalue { i8*, i32 } %7, 1 | |
store i32 %9, i32* %4 | |
call void @_ZNSt3__18functionIFiiEED1Ev(%"class.std::__1::function"* %1) nounwind | |
br label %10 | |
; <label>:10 ; preds = %6 | |
%11 = load i8** %3 | |
%12 = load i32* %4 | |
%13 = insertvalue { i8*, i32 } undef, i8* %11, 0 | |
%14 = insertvalue { i8*, i32 } %13, i32 %12, 1 | |
resume { i8*, i32 } %14 | |
} | |
declare void @_Z3runNSt3__18functionIFiiEEE(%"class.std::__1::function"*) | |
define internal void @"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"(%"class.std::__1::function"* %this, i8*) unnamed_addr uwtable ssp align 2 { | |
%2 = alloca %"class.std::__1::function"*, align 8 | |
%__f = alloca %class.anon, align 1 | |
%3 = alloca i8*, align 8 | |
store %"class.std::__1::function"* %this, %"class.std::__1::function"** %2, align 8 | |
store i8* %0, i8** %3, align 8 | |
%4 = load %"class.std::__1::function"** %2 | |
%5 = load i8** %3, align 8 | |
call void @"_ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"(%"class.std::__1::function"* %4, i8* %5) | |
ret void | |
} | |
declare i32 @__gxx_personality_v0(...) | |
define linkonce_odr void @_ZNSt3__18functionIFiiEED1Ev(%"class.std::__1::function"* %this) unnamed_addr nounwind uwtable ssp align 2 { | |
%1 = alloca %"class.std::__1::function"*, align 8 | |
store %"class.std::__1::function"* %this, %"class.std::__1::function"** %1, align 8 | |
%2 = load %"class.std::__1::function"** %1 | |
call void @_ZNSt3__18functionIFiiEED2Ev(%"class.std::__1::function"* %2) nounwind | |
ret void | |
} | |
define linkonce_odr void @_ZNSt3__18functionIFiiEED2Ev(%"class.std::__1::function"* %this) unnamed_addr nounwind uwtable ssp align 2 { | |
%1 = alloca %"class.std::__1::function"*, align 8 | |
store %"class.std::__1::function"* %this, %"class.std::__1::function"** %1, align 8 | |
%2 = load %"class.std::__1::function"** %1 | |
%3 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 1 | |
%4 = load %"class.std::__1::__function::__base"** %3, align 8 | |
%5 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 0 | |
%6 = bitcast %"struct.std::__1::aligned_storage<24, 16>::type"* %5 to %"class.std::__1::__function::__base"* | |
%7 = icmp eq %"class.std::__1::__function::__base"* %4, %6 | |
br i1 %7, label %8, label %15 | |
; <label>:8 ; preds = %0 | |
%9 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 1 | |
%10 = load %"class.std::__1::__function::__base"** %9, align 8 | |
%11 = bitcast %"class.std::__1::__function::__base"* %10 to void (%"class.std::__1::__function::__base"*)*** | |
%12 = load void (%"class.std::__1::__function::__base"*)*** %11 | |
%13 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %12, i64 4 | |
%14 = load void (%"class.std::__1::__function::__base"*)** %13 | |
call void %14(%"class.std::__1::__function::__base"* %10) nounwind | |
br label %27 | |
; <label>:15 ; preds = %0 | |
%16 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 1 | |
%17 = load %"class.std::__1::__function::__base"** %16, align 8 | |
%18 = icmp ne %"class.std::__1::__function::__base"* %17, null | |
br i1 %18, label %19, label %26 | |
; <label>:19 ; preds = %15 | |
%20 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 1 | |
%21 = load %"class.std::__1::__function::__base"** %20, align 8 | |
%22 = bitcast %"class.std::__1::__function::__base"* %21 to void (%"class.std::__1::__function::__base"*)*** | |
%23 = load void (%"class.std::__1::__function::__base"*)*** %22 | |
%24 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %23, i64 5 | |
%25 = load void (%"class.std::__1::__function::__base"*)** %24 | |
call void %25(%"class.std::__1::__function::__base"* %21) nounwind | |
br label %26 | |
; <label>:26 ; preds = %19, %15 | |
br label %27 | |
; <label>:27 ; preds = %26, %8 | |
ret void | |
} | |
define internal void @"_ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"(%"class.std::__1::function"* %this, i8*) unnamed_addr uwtable ssp align 2 { | |
%2 = alloca %class.anon*, align 8 | |
%3 = alloca %class.anon*, align 8 | |
%4 = alloca %class.anon*, align 8 | |
%5 = alloca %"class.std::__1::__tuple_leaf"*, align 8 | |
%6 = alloca %class.anon*, align 8 | |
%7 = alloca %class.anon*, align 8 | |
%8 = alloca %"struct.std::__1::__tuple_impl"*, align 8 | |
%9 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%10 = alloca %"struct.std::__1::__tuple_types.18", align 1 | |
%11 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%12 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%13 = alloca %class.anon*, align 8 | |
%14 = alloca %"struct.std::__1::__tuple_impl"*, align 8 | |
%15 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%16 = alloca %"struct.std::__1::__tuple_types.18", align 1 | |
%17 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%18 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%19 = alloca %class.anon*, align 8 | |
%20 = alloca %class.anon*, align 8 | |
%21 = alloca %"class.std::__1::tuple"*, align 8 | |
%22 = alloca %class.anon*, align 8 | |
%23 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%24 = alloca %"struct.std::__1::__tuple_types.18", align 1 | |
%25 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%26 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%27 = alloca %"class.std::__1::tuple"*, align 8 | |
%28 = alloca %class.anon*, align 8 | |
%29 = alloca %class.anon*, align 8 | |
%30 = alloca %class.anon*, align 8 | |
%31 = alloca %"class.std::__1::__tuple_leaf"*, align 8 | |
%32 = alloca %class.anon*, align 8 | |
%33 = alloca %"class.std::__1::__tuple_leaf"*, align 8 | |
%34 = alloca %"class.std::__1::tuple"*, align 8 | |
%35 = alloca %"struct.std::__1::__tuple_impl"*, align 8 | |
%36 = alloca %"class.std::__1::tuple"*, align 8 | |
%37 = alloca %"struct.std::__1::__tuple_impl"*, align 8 | |
%38 = alloca %"class.std::__1::tuple"*, align 8 | |
%39 = alloca %"class.std::__1::tuple"*, align 8 | |
%40 = alloca %"class.std::__1::tuple"*, align 8 | |
%41 = alloca %"class.std::__1::tuple"*, align 8 | |
%42 = alloca %"class.std::__1::tuple"*, align 8 | |
%43 = alloca %"class.std::__1::tuple"*, align 8 | |
%44 = alloca %class.anon*, align 8 | |
%45 = alloca %class.anon*, align 8 | |
%46 = alloca %"class.std::__1::tuple", align 8 | |
%47 = alloca %class.anon*, align 8 | |
%48 = alloca %class.anon*, align 8 | |
%49 = alloca %"class.std::__1::__tuple_leaf"*, align 8 | |
%50 = alloca %class.anon*, align 8 | |
%51 = alloca %"class.std::__1::__tuple_leaf"*, align 8 | |
%52 = alloca %"class.std::__1::tuple"*, align 8 | |
%53 = alloca %"struct.std::__1::__tuple_impl"*, align 8 | |
%54 = alloca %"class.std::__1::tuple"*, align 8 | |
%55 = alloca %"struct.std::__1::__tuple_impl"*, align 8 | |
%56 = alloca %"class.std::__1::tuple"*, align 8 | |
%57 = alloca %"class.std::__1::tuple"*, align 8 | |
%58 = alloca %"class.std::__1::tuple"*, align 8 | |
%59 = alloca %"class.std::__1::tuple"*, align 8 | |
%60 = alloca %"class.std::__1::tuple"*, align 8 | |
%61 = alloca %"class.std::__1::tuple"*, align 8 | |
%62 = alloca %"class.std::__1::tuple.0"*, align 8 | |
%63 = alloca %"class.std::__1::tuple.0"*, align 8 | |
%64 = alloca %"class.std::__1::tuple.0", align 1 | |
%65 = alloca %class.anon*, align 8 | |
%66 = alloca %class.anon*, align 8 | |
%67 = alloca %"class.std::__1::__tuple_leaf"*, align 8 | |
%68 = alloca %class.anon*, align 8 | |
%69 = alloca %"class.std::__1::__tuple_leaf"*, align 8 | |
%70 = alloca %"class.std::__1::tuple"*, align 8 | |
%71 = alloca %"struct.std::__1::__tuple_impl"*, align 8 | |
%72 = alloca %"class.std::__1::tuple"*, align 8 | |
%73 = alloca %"struct.std::__1::__tuple_impl"*, align 8 | |
%74 = alloca %"class.std::__1::tuple"*, align 8 | |
%75 = alloca %"class.std::__1::tuple"*, align 8 | |
%76 = alloca %"class.std::__1::tuple"*, align 8 | |
%77 = alloca %"class.std::__1::tuple"*, align 8 | |
%78 = alloca %"class.std::__1::tuple"*, align 8 | |
%79 = alloca %"class.std::__1::tuple"*, align 8 | |
%80 = alloca %"class.std::__1::tuple.0"*, align 8 | |
%81 = alloca %class.anon*, align 8 | |
%82 = alloca %"class.std::__1::allocator"*, align 8 | |
%83 = alloca %"class.std::__1::__tuple_leaf"*, align 8 | |
%84 = alloca %"class.std::__1::tuple"*, align 8 | |
%85 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%__pc.i.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%__second_args.i.i.i.i.i = alloca %"class.std::__1::tuple.0", align 1 | |
%86 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%87 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%88 = alloca %"class.std::__1::tuple"*, align 8 | |
%89 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%__pc.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%__second_args.i.i.i.i = alloca %"class.std::__1::tuple.0", align 1 | |
%90 = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%91 = alloca %"class.std::__1::tuple", align 8 | |
%92 = alloca %"class.std::__1::tuple.0", align 1 | |
%93 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%94 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%95 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%__pc.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%__second_args.i.i.i = alloca %"class.std::__1::tuple.0", align 1 | |
%96 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%97 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%98 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%99 = alloca %class.anon*, align 8 | |
%100 = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%101 = alloca %"class.std::__1::tuple", align 8 | |
%102 = alloca %"class.std::__1::tuple", align 8 | |
%103 = alloca i8* | |
%104 = alloca i32 | |
%105 = alloca %"class.std::__1::tuple.0", align 1 | |
%106 = alloca %"class.std::__1::tuple.0", align 1 | |
%107 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%108 = alloca %class.anon*, align 8 | |
%109 = alloca %class.anon*, align 8 | |
%110 = alloca %"class.std::__1::function"*, align 8 | |
%__f = alloca %class.anon, align 1 | |
%111 = alloca i8*, align 8 | |
store %"class.std::__1::function"* %this, %"class.std::__1::function"** %110, align 8 | |
store i8* %0, i8** %111, align 8 | |
%112 = load %"class.std::__1::function"** %110 | |
%113 = bitcast %"class.std::__1::function"* %112 to %"struct.std::__1::__function::__maybe_derive_from_unary_function"* | |
%114 = bitcast %"class.std::__1::function"* %112 to %"struct.std::__1::__function::__maybe_derive_from_binary_function"* | |
%115 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 0 | |
%116 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 1 | |
store %"class.std::__1::__function::__base"* null, %"class.std::__1::__function::__base"** %116, align 8 | |
store %class.anon* %__f, %class.anon** %109, align 8 | |
br i1 true, label %117, label %242 | |
; <label>:117 ; preds = %1 | |
%118 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 0 | |
%119 = bitcast %"struct.std::__1::aligned_storage<24, 16>::type"* %118 to %"class.std::__1::__function::__base"* | |
%120 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 1 | |
store %"class.std::__1::__function::__base"* %119, %"class.std::__1::__function::__base"** %120, align 8 | |
%121 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 1 | |
%122 = load %"class.std::__1::__function::__base"** %121, align 8 | |
%123 = bitcast %"class.std::__1::__function::__base"* %122 to i8* | |
%124 = icmp eq i8* %123, null | |
br i1 %124, label %240, label %125 | |
; <label>:125 ; preds = %117 | |
%126 = bitcast i8* %123 to %"class.std::__1::__function::__func"* | |
store %class.anon* %__f, %class.anon** %2, align 8 | |
%127 = load %class.anon** %2, align 8 | |
store %"class.std::__1::__function::__func"* %126, %"class.std::__1::__function::__func"** %107, align 8 | |
store %class.anon* %127, %class.anon** %108, align 8 | |
%128 = load %"class.std::__1::__function::__func"** %107 | |
%129 = load %class.anon** %108 | |
store %"class.std::__1::__function::__func"* %128, %"class.std::__1::__function::__func"** %98, align 8 | |
store %class.anon* %129, %class.anon** %99, align 8 | |
%130 = load %"class.std::__1::__function::__func"** %98 | |
%131 = bitcast %"class.std::__1::__function::__func"* %130 to %"class.std::__1::__function::__base"* | |
store %"class.std::__1::__function::__base"* %131, %"class.std::__1::__function::__base"** %97, align 8 | |
%132 = load %"class.std::__1::__function::__base"** %97 | |
%133 = bitcast %"class.std::__1::__function::__base"* %132 to i8*** | |
store i8** getelementptr inbounds ([11 x i8*]* @_ZTVNSt3__110__function6__baseIFiiEEE, i64 0, i64 2), i8*** %133 | |
%134 = bitcast %"class.std::__1::__function::__func"* %130 to i8*** | |
store i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2), i8*** %134 | |
%135 = getelementptr inbounds %"class.std::__1::__function::__func"* %130, i32 0, i32 1 | |
%136 = load %class.anon** %99, align 8 | |
store %class.anon* %136, %class.anon** %3, align 8 | |
%137 = load %class.anon** %3, align 8 | |
store %class.anon* %137, %class.anon** %45, align 8 | |
%138 = load %class.anon** %45, align 8 | |
store %class.anon* %138, %class.anon** %44, align 8 | |
%139 = load %class.anon** %44, align 8 | |
store %"class.std::__1::tuple"* %46, %"class.std::__1::tuple"** %27, align 8 | |
store %class.anon* %139, %class.anon** %28, align 8 | |
%140 = load %"class.std::__1::tuple"** %27 | |
%141 = load %class.anon** %28 | |
store %"class.std::__1::tuple"* %140, %"class.std::__1::tuple"** %21, align 8 | |
store %class.anon* %141, %class.anon** %22, align 8 | |
%142 = load %"class.std::__1::tuple"** %21 | |
%143 = getelementptr inbounds %"class.std::__1::tuple"* %142, i32 0, i32 0 | |
%144 = load %class.anon** %22, align 8 | |
store %class.anon* %144, %class.anon** %20, align 8 | |
%145 = load %class.anon** %20, align 8 | |
store %"struct.std::__1::__tuple_impl"* %143, %"struct.std::__1::__tuple_impl"** %14, align 8 | |
store %class.anon* %145, %class.anon** %19, align 8 | |
%146 = load %"struct.std::__1::__tuple_impl"** %14 | |
%147 = load %class.anon** %19 | |
store %"struct.std::__1::__tuple_impl"* %146, %"struct.std::__1::__tuple_impl"** %8, align 8 | |
store %class.anon* %147, %class.anon** %13, align 8 | |
%148 = load %"struct.std::__1::__tuple_impl"** %8 | |
%149 = bitcast %"struct.std::__1::__tuple_impl"* %148 to %"class.std::__1::__tuple_leaf"* | |
%150 = load %class.anon** %13, align 8 | |
store %class.anon* %150, %class.anon** %7, align 8 | |
%151 = load %class.anon** %7, align 8 | |
store %"class.std::__1::__tuple_leaf"* %149, %"class.std::__1::__tuple_leaf"** %5, align 8 | |
store %class.anon* %151, %class.anon** %6, align 8 | |
%152 = load %"class.std::__1::__tuple_leaf"** %5 | |
%153 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %152, i32 0, i32 0 | |
%154 = load %class.anon** %6, align 8 | |
store %class.anon* %154, %class.anon** %4, align 8 | |
%155 = load %class.anon** %4, align 8 | |
store %class.anon* %155, %class.anon** %153, align 8 | |
store %"class.std::__1::tuple"* %102, %"class.std::__1::tuple"** %42, align 8 | |
store %"class.std::__1::tuple"* %46, %"class.std::__1::tuple"** %43, align 8 | |
%156 = load %"class.std::__1::tuple"** %42 | |
%157 = load %"class.std::__1::tuple"** %43 | |
store %"class.std::__1::tuple"* %156, %"class.std::__1::tuple"** %40, align 8 | |
store %"class.std::__1::tuple"* %157, %"class.std::__1::tuple"** %41, align 8 | |
%158 = load %"class.std::__1::tuple"** %40 | |
%159 = getelementptr inbounds %"class.std::__1::tuple"* %158, i32 0, i32 0 | |
%160 = load %"class.std::__1::tuple"** %41, align 8 | |
store %"class.std::__1::tuple"* %160, %"class.std::__1::tuple"** %39, align 8 | |
%161 = load %"class.std::__1::tuple"** %39, align 8 | |
store %"struct.std::__1::__tuple_impl"* %159, %"struct.std::__1::__tuple_impl"** %37, align 8 | |
store %"class.std::__1::tuple"* %161, %"class.std::__1::tuple"** %38, align 8 | |
%162 = load %"struct.std::__1::__tuple_impl"** %37 | |
%163 = load %"class.std::__1::tuple"** %38 | |
store %"struct.std::__1::__tuple_impl"* %162, %"struct.std::__1::__tuple_impl"** %35, align 8 | |
store %"class.std::__1::tuple"* %163, %"class.std::__1::tuple"** %36, align 8 | |
%164 = load %"struct.std::__1::__tuple_impl"** %35 | |
%165 = bitcast %"struct.std::__1::__tuple_impl"* %164 to %"class.std::__1::__tuple_leaf"* | |
%166 = load %"class.std::__1::tuple"** %36, align 8 | |
store %"class.std::__1::tuple"* %166, %"class.std::__1::tuple"** %34, align 8 | |
%167 = load %"class.std::__1::tuple"** %34, align 8 | |
%168 = getelementptr inbounds %"class.std::__1::tuple"* %167, i32 0, i32 0 | |
%169 = bitcast %"struct.std::__1::__tuple_impl"* %168 to %"class.std::__1::__tuple_leaf"* | |
store %"class.std::__1::__tuple_leaf"* %169, %"class.std::__1::__tuple_leaf"** %33, align 8 | |
%170 = load %"class.std::__1::__tuple_leaf"** %33 | |
%171 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %170, i32 0, i32 0 | |
%172 = load %class.anon** %171, align 8 | |
store %class.anon* %172, %class.anon** %29, align 8 | |
%173 = load %class.anon** %29, align 8 | |
store %"class.std::__1::__tuple_leaf"* %165, %"class.std::__1::__tuple_leaf"** %31, align 8 | |
store %class.anon* %173, %class.anon** %32, align 8 | |
%174 = load %"class.std::__1::__tuple_leaf"** %31 | |
%175 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %174, i32 0, i32 0 | |
%176 = load %class.anon** %32, align 8 | |
store %class.anon* %176, %class.anon** %30, align 8 | |
%177 = load %class.anon** %30, align 8 | |
store %class.anon* %177, %class.anon** %175, align 8 | |
store %"class.std::__1::tuple"* %101, %"class.std::__1::tuple"** %60, align 8 | |
store %"class.std::__1::tuple"* %102, %"class.std::__1::tuple"** %61, align 8 | |
%178 = load %"class.std::__1::tuple"** %60 | |
%179 = load %"class.std::__1::tuple"** %61 | |
store %"class.std::__1::tuple"* %178, %"class.std::__1::tuple"** %58, align 8 | |
store %"class.std::__1::tuple"* %179, %"class.std::__1::tuple"** %59, align 8 | |
%180 = load %"class.std::__1::tuple"** %58 | |
%181 = getelementptr inbounds %"class.std::__1::tuple"* %180, i32 0, i32 0 | |
%182 = load %"class.std::__1::tuple"** %59, align 8 | |
store %"class.std::__1::tuple"* %182, %"class.std::__1::tuple"** %57, align 8 | |
%183 = load %"class.std::__1::tuple"** %57, align 8 | |
store %"struct.std::__1::__tuple_impl"* %181, %"struct.std::__1::__tuple_impl"** %55, align 8 | |
store %"class.std::__1::tuple"* %183, %"class.std::__1::tuple"** %56, align 8 | |
%184 = load %"struct.std::__1::__tuple_impl"** %55 | |
%185 = load %"class.std::__1::tuple"** %56 | |
store %"struct.std::__1::__tuple_impl"* %184, %"struct.std::__1::__tuple_impl"** %53, align 8 | |
store %"class.std::__1::tuple"* %185, %"class.std::__1::tuple"** %54, align 8 | |
%186 = load %"struct.std::__1::__tuple_impl"** %53 | |
%187 = bitcast %"struct.std::__1::__tuple_impl"* %186 to %"class.std::__1::__tuple_leaf"* | |
%188 = load %"class.std::__1::tuple"** %54, align 8 | |
store %"class.std::__1::tuple"* %188, %"class.std::__1::tuple"** %52, align 8 | |
%189 = load %"class.std::__1::tuple"** %52, align 8 | |
%190 = getelementptr inbounds %"class.std::__1::tuple"* %189, i32 0, i32 0 | |
%191 = bitcast %"struct.std::__1::__tuple_impl"* %190 to %"class.std::__1::__tuple_leaf"* | |
store %"class.std::__1::__tuple_leaf"* %191, %"class.std::__1::__tuple_leaf"** %51, align 8 | |
%192 = load %"class.std::__1::__tuple_leaf"** %51 | |
%193 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %192, i32 0, i32 0 | |
%194 = load %class.anon** %193, align 8 | |
store %class.anon* %194, %class.anon** %47, align 8 | |
%195 = load %class.anon** %47, align 8 | |
store %"class.std::__1::__tuple_leaf"* %187, %"class.std::__1::__tuple_leaf"** %49, align 8 | |
store %class.anon* %195, %class.anon** %50, align 8 | |
%196 = load %"class.std::__1::__tuple_leaf"** %49 | |
%197 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %196, i32 0, i32 0 | |
%198 = load %class.anon** %50, align 8 | |
store %class.anon* %198, %class.anon** %48, align 8 | |
%199 = load %class.anon** %48, align 8 | |
store %class.anon* %199, %class.anon** %197, align 8 | |
store %"class.std::__1::tuple.0"* %64, %"class.std::__1::tuple.0"** %63, align 8 | |
%200 = load %"class.std::__1::tuple.0"** %63 | |
store %"class.std::__1::tuple.0"* %200, %"class.std::__1::tuple.0"** %62, align 8 | |
%201 = load %"class.std::__1::tuple.0"** %62 | |
store %"class.std::__1::__compressed_pair"* %135, %"class.std::__1::__compressed_pair"** %95, align 8 | |
%202 = load %"class.std::__1::__compressed_pair"** %95 | |
store %"class.std::__1::__compressed_pair"* %202, %"class.std::__1::__compressed_pair"** %89, align 8 | |
%203 = load %"class.std::__1::__compressed_pair"** %89 | |
%204 = bitcast %"class.std::__1::__compressed_pair"* %203 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::tuple"* %101, %"class.std::__1::tuple"** %88, align 8 | |
%205 = load %"class.std::__1::tuple"** %88, align 8 | |
store %"class.std::__1::tuple"* %91, %"class.std::__1::tuple"** %78, align 8 | |
store %"class.std::__1::tuple"* %205, %"class.std::__1::tuple"** %79, align 8 | |
%206 = load %"class.std::__1::tuple"** %78 | |
%207 = load %"class.std::__1::tuple"** %79 | |
store %"class.std::__1::tuple"* %206, %"class.std::__1::tuple"** %76, align 8 | |
store %"class.std::__1::tuple"* %207, %"class.std::__1::tuple"** %77, align 8 | |
%208 = load %"class.std::__1::tuple"** %76 | |
%209 = getelementptr inbounds %"class.std::__1::tuple"* %208, i32 0, i32 0 | |
%210 = load %"class.std::__1::tuple"** %77, align 8 | |
store %"class.std::__1::tuple"* %210, %"class.std::__1::tuple"** %75, align 8 | |
%211 = load %"class.std::__1::tuple"** %75, align 8 | |
store %"struct.std::__1::__tuple_impl"* %209, %"struct.std::__1::__tuple_impl"** %73, align 8 | |
store %"class.std::__1::tuple"* %211, %"class.std::__1::tuple"** %74, align 8 | |
%212 = load %"struct.std::__1::__tuple_impl"** %73 | |
%213 = load %"class.std::__1::tuple"** %74 | |
store %"struct.std::__1::__tuple_impl"* %212, %"struct.std::__1::__tuple_impl"** %71, align 8 | |
store %"class.std::__1::tuple"* %213, %"class.std::__1::tuple"** %72, align 8 | |
%214 = load %"struct.std::__1::__tuple_impl"** %71 | |
%215 = bitcast %"struct.std::__1::__tuple_impl"* %214 to %"class.std::__1::__tuple_leaf"* | |
%216 = load %"class.std::__1::tuple"** %72, align 8 | |
store %"class.std::__1::tuple"* %216, %"class.std::__1::tuple"** %70, align 8 | |
%217 = load %"class.std::__1::tuple"** %70, align 8 | |
%218 = getelementptr inbounds %"class.std::__1::tuple"* %217, i32 0, i32 0 | |
%219 = bitcast %"struct.std::__1::__tuple_impl"* %218 to %"class.std::__1::__tuple_leaf"* | |
store %"class.std::__1::__tuple_leaf"* %219, %"class.std::__1::__tuple_leaf"** %69, align 8 | |
%220 = load %"class.std::__1::__tuple_leaf"** %69 | |
%221 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %220, i32 0, i32 0 | |
%222 = load %class.anon** %221, align 8 | |
store %class.anon* %222, %class.anon** %65, align 8 | |
%223 = load %class.anon** %65, align 8 | |
store %"class.std::__1::__tuple_leaf"* %215, %"class.std::__1::__tuple_leaf"** %67, align 8 | |
store %class.anon* %223, %class.anon** %68, align 8 | |
%224 = load %"class.std::__1::__tuple_leaf"** %67 | |
%225 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %224, i32 0, i32 0 | |
%226 = load %class.anon** %68, align 8 | |
store %class.anon* %226, %class.anon** %66, align 8 | |
%227 = load %class.anon** %66, align 8 | |
store %class.anon* %227, %class.anon** %225, align 8 | |
store %"class.std::__1::tuple.0"* %__second_args.i.i.i.i, %"class.std::__1::tuple.0"** %80, align 8 | |
%228 = load %"class.std::__1::tuple.0"** %80, align 8 | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %204, %"class.std::__1::__libcpp_compressed_pair_imp"** %85, align 8 | |
%229 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %85 | |
%230 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %229 to %class.anon* | |
store %"class.std::__1::tuple"* %91, %"class.std::__1::tuple"** %84, align 8 | |
%231 = load %"class.std::__1::tuple"** %84, align 8 | |
%232 = getelementptr inbounds %"class.std::__1::tuple"* %231, i32 0, i32 0 | |
%233 = bitcast %"struct.std::__1::__tuple_impl"* %232 to %"class.std::__1::__tuple_leaf"* | |
store %"class.std::__1::__tuple_leaf"* %233, %"class.std::__1::__tuple_leaf"** %83, align 8 | |
%234 = load %"class.std::__1::__tuple_leaf"** %83 | |
%235 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %234, i32 0, i32 0 | |
%236 = load %class.anon** %235, align 8 | |
store %class.anon* %236, %class.anon** %81, align 8 | |
%237 = load %class.anon** %81, align 8 | |
%238 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %229 to %"class.std::__1::allocator"* | |
store %"class.std::__1::allocator"* %238, %"class.std::__1::allocator"** %82, align 8 | |
%239 = load %"class.std::__1::allocator"** %82 | |
br label %240 | |
; <label>:240 ; preds = %125, %117 | |
%241 = phi %"class.std::__1::__function::__func"* [ %126, %125 ], [ null, %117 ] | |
br label %242 | |
; <label>:242 ; preds = %240, %1 | |
ret void | |
} | |
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev"(%"class.std::__1::__function::__func"* %this) unnamed_addr nounwind uwtable inlinehint ssp align 2 { | |
%1 = alloca %"class.std::__1::__function::__func"*, align 8 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %1, align 8 | |
%2 = load %"class.std::__1::__function::__func"** %1 | |
call void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev"(%"class.std::__1::__function::__func"* %2) nounwind | |
ret void | |
} | |
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev"(%"class.std::__1::__function::__func"* %this) unnamed_addr nounwind uwtable inlinehint ssp align 2 { | |
%1 = alloca %"class.std::__1::__function::__func"*, align 8 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %1, align 8 | |
%2 = load %"class.std::__1::__function::__func"** %1 | |
call void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev"(%"class.std::__1::__function::__func"* %2) nounwind | |
%3 = bitcast %"class.std::__1::__function::__func"* %2 to i8* | |
call void @_ZdlPv(i8* %3) nounwind | |
ret void | |
} | |
define internal %"class.std::__1::__function::__base"* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv"(%"class.std::__1::__function::__func"* %this) uwtable ssp align 2 { | |
%1 = alloca %"class.std::__1::__allocator_destructor"*, align 8 | |
%2 = alloca %"class.std::__1::__allocator_destructor"*, align 8 | |
%3 = alloca %"class.std::__1::__function::__func"**, align 8 | |
%4 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%5 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%__t2.i.i.i.i.i = alloca %"class.std::__1::__allocator_destructor", align 8 | |
%6 = alloca %"class.std::__1::__function::__func"**, align 8 | |
%7 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%8 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%__t2.i.i.i.i = alloca %"class.std::__1::__allocator_destructor", align 8 | |
%9 = alloca %"class.std::__1::__allocator_destructor", align 8 | |
%10 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%11 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%__t2.i.i.i = alloca %"class.std::__1::__allocator_destructor", align 8 | |
%12 = alloca %"class.std::__1::__allocator_destructor"*, align 8 | |
%13 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%14 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%15 = alloca %"class.std::__1::__allocator_destructor"*, align 8 | |
%16 = alloca %"class.std::__1::__allocator_destructor", align 8 | |
%17 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%18 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%19 = alloca %"class.std::__1::__allocator_destructor"*, align 8 | |
%20 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%21 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%22 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%23 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%24 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%25 = alloca %"class.std::__1::allocator"*, align 8 | |
%26 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%27 = alloca %"class.std::__1::allocator"*, align 8 | |
%28 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%29 = alloca %class.anon*, align 8 | |
%30 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%31 = alloca %class.anon*, align 8 | |
%32 = alloca %class.anon*, align 8 | |
%33 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%34 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%35 = alloca %"struct.std::__1::__tuple_types.11", align 1 | |
%36 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%37 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%38 = alloca %class.anon*, align 8 | |
%39 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%40 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%41 = alloca %"struct.std::__1::__tuple_types.11", align 1 | |
%42 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%43 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%44 = alloca %class.anon*, align 8 | |
%45 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%46 = alloca %class.anon*, align 8 | |
%47 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%48 = alloca %"struct.std::__1::__tuple_types.11", align 1 | |
%49 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%50 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%51 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%52 = alloca %class.anon*, align 8 | |
%53 = alloca %class.anon*, align 8 | |
%54 = alloca %class.anon*, align 8 | |
%55 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%56 = alloca %class.anon*, align 8 | |
%57 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%58 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%59 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%60 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%61 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%62 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%63 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%64 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%65 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%66 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%67 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%68 = alloca %class.anon*, align 8 | |
%69 = alloca %class.anon*, align 8 | |
%70 = alloca %"class.std::__1::tuple.3", align 8 | |
%71 = alloca %class.anon*, align 8 | |
%72 = alloca %class.anon*, align 8 | |
%73 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%74 = alloca %class.anon*, align 8 | |
%75 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%76 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%77 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%78 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%79 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%80 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%81 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%82 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%83 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%84 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%85 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%86 = alloca %"class.std::__1::allocator"*, align 8 | |
%87 = alloca %"class.std::__1::allocator"*, align 8 | |
%88 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8 | |
%89 = alloca %"class.std::__1::allocator"*, align 8 | |
%90 = alloca %"class.std::__1::allocator"*, align 8 | |
%91 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8 | |
%92 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%93 = alloca %"struct.std::__1::__tuple_types.17", align 1 | |
%94 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%95 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%96 = alloca %"class.std::__1::allocator"*, align 8 | |
%97 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8 | |
%98 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%99 = alloca %"struct.std::__1::__tuple_types.17", align 1 | |
%100 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%101 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%102 = alloca %"class.std::__1::allocator"*, align 8 | |
%103 = alloca %"class.std::__1::allocator"*, align 8 | |
%104 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%105 = alloca %"class.std::__1::allocator"*, align 8 | |
%106 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%107 = alloca %"struct.std::__1::__tuple_types.17", align 1 | |
%108 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%109 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%110 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%111 = alloca %"class.std::__1::allocator"*, align 8 | |
%112 = alloca %"class.std::__1::allocator"*, align 8 | |
%113 = alloca %"class.std::__1::allocator"*, align 8 | |
%114 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8 | |
%115 = alloca %"class.std::__1::allocator"*, align 8 | |
%116 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8 | |
%117 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%118 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8 | |
%119 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%120 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8 | |
%121 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%122 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%123 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%124 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%125 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%126 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%127 = alloca %"class.std::__1::allocator"*, align 8 | |
%128 = alloca %"class.std::__1::allocator"*, align 8 | |
%129 = alloca %"class.std::__1::tuple.14", align 8 | |
%130 = alloca %"class.std::__1::allocator"*, align 8 | |
%131 = alloca %"class.std::__1::allocator"*, align 8 | |
%132 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8 | |
%133 = alloca %"class.std::__1::allocator"*, align 8 | |
%134 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8 | |
%135 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%136 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8 | |
%137 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%138 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8 | |
%139 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%140 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%141 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%142 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%143 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%144 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%145 = alloca %class.anon*, align 8 | |
%146 = alloca %class.anon*, align 8 | |
%147 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%148 = alloca %class.anon*, align 8 | |
%149 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%150 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%151 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%152 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%153 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%154 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%155 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%156 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%157 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%158 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%159 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%160 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%161 = alloca %"class.std::__1::allocator"*, align 8 | |
%162 = alloca %"class.std::__1::allocator"*, align 8 | |
%163 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8 | |
%164 = alloca %"class.std::__1::allocator"*, align 8 | |
%165 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8 | |
%166 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%167 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8 | |
%168 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%169 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8 | |
%170 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%171 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%172 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%173 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%174 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%175 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%176 = alloca %class.anon*, align 8 | |
%177 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8 | |
%178 = alloca %"class.std::__1::tuple.14"*, align 8 | |
%179 = alloca %"class.std::__1::allocator"*, align 8 | |
%180 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%181 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%182 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%__pc.i.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%183 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%184 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%185 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%186 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%__pc.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%187 = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%188 = alloca %"class.std::__1::tuple.3", align 8 | |
%189 = alloca %"class.std::__1::tuple.14", align 8 | |
%190 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%191 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%192 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%__pc.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%193 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%194 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%195 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%196 = alloca %class.anon*, align 8 | |
%197 = alloca %"class.std::__1::allocator"*, align 8 | |
%198 = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%199 = alloca %"class.std::__1::tuple.3", align 8 | |
%200 = alloca %"class.std::__1::tuple.3", align 8 | |
%201 = alloca i8* | |
%202 = alloca i32 | |
%203 = alloca %"class.std::__1::tuple.14", align 8 | |
%204 = alloca %"class.std::__1::tuple.14", align 8 | |
%205 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%206 = alloca %class.anon*, align 8 | |
%207 = alloca %"class.std::__1::allocator"*, align 8 | |
%208 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%209 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%210 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%211 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%212 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%__t.i = alloca %"class.std::__1::__function::__func"*, align 8 | |
%213 = alloca %"class.std::__1::__allocator_destructor"*, align 8 | |
%214 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%215 = alloca i64, align 8 | |
%216 = alloca %"class.std::__1::__allocator_destructor"*, align 8 | |
%217 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%218 = alloca i64, align 8 | |
%219 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%220 = alloca i64, align 8 | |
%221 = alloca i8*, align 8 | |
%222 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%223 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%224 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%225 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%226 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%227 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%228 = alloca i64, align 8 | |
%229 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%230 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%231 = alloca i64, align 8 | |
%232 = alloca %"class.std::__1::__allocator_destructor"*, align 8 | |
%233 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%234 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%235 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%236 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%237 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%__tmp.i.i.i1 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%238 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%239 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%240 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%241 = alloca %"class.std::__1::allocator"*, align 8 | |
%242 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%243 = alloca %"class.std::__1::allocator"*, align 8 | |
%244 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%245 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%246 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%247 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%248 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%249 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%250 = alloca i64, align 8 | |
%251 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%252 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%253 = alloca i64, align 8 | |
%254 = alloca %"class.std::__1::__allocator_destructor"*, align 8 | |
%255 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%256 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8 | |
%257 = alloca %"class.std::__1::__compressed_pair.12"*, align 8 | |
%258 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%259 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%__tmp.i.i.i = alloca %"class.std::__1::__function::__func"*, align 8 | |
%260 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%261 = alloca %"class.std::__1::unique_ptr"*, align 8 | |
%262 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%263 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%264 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%__a = alloca %"class.std::__1::allocator.1", align 1 | |
%__hold = alloca %"class.std::__1::unique_ptr", align 8 | |
%265 = alloca %"class.std::__1::__allocator_destructor", align 8 | |
%266 = alloca %"class.std::__1::allocator", align 1 | |
%267 = alloca i8* | |
%268 = alloca i32 | |
%269 = alloca i32 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %264, align 8 | |
%270 = load %"class.std::__1::__function::__func"** %264 | |
%271 = getelementptr inbounds %"class.std::__1::__function::__func"* %270, i32 0, i32 1 | |
store %"class.std::__1::__compressed_pair"* %271, %"class.std::__1::__compressed_pair"** %263, align 8 | |
%272 = load %"class.std::__1::__compressed_pair"** %263 | |
%273 = bitcast %"class.std::__1::__compressed_pair"* %272 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %273, %"class.std::__1::__libcpp_compressed_pair_imp"** %262, align 8 | |
%274 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %262 | |
%275 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %274 to %"class.std::__1::allocator"* | |
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %242, align 8 | |
store %"class.std::__1::allocator"* %275, %"class.std::__1::allocator"** %243, align 8 | |
%276 = load %"class.std::__1::allocator.1"** %242 | |
%277 = load %"class.std::__1::allocator"** %243 | |
store %"class.std::__1::allocator.1"* %276, %"class.std::__1::allocator.1"** %240, align 8 | |
store %"class.std::__1::allocator"* %277, %"class.std::__1::allocator"** %241, align 8 | |
%278 = load %"class.std::__1::allocator.1"** %240 | |
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %219, align 8 | |
store i64 1, i64* %220, align 8 | |
store i8* null, i8** %221, align 8 | |
%279 = load %"class.std::__1::allocator.1"** %219 | |
%280 = load i64* %220, align 8 | |
%281 = mul i64 %280, 16 | |
%282 = call noalias i8* @_Znwm(i64 %281) | |
%283 = bitcast i8* %282 to %"class.std::__1::__function::__func"* | |
store %"class.std::__1::__allocator_destructor"* %265, %"class.std::__1::__allocator_destructor"** %216, align 8 | |
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %217, align 8 | |
store i64 1, i64* %218, align 8 | |
%284 = load %"class.std::__1::__allocator_destructor"** %216 | |
%285 = load i64* %218, align 8 | |
%286 = load %"class.std::__1::allocator.1"** %217 | |
store %"class.std::__1::__allocator_destructor"* %284, %"class.std::__1::__allocator_destructor"** %213, align 8 | |
store %"class.std::__1::allocator.1"* %286, %"class.std::__1::allocator.1"** %214, align 8 | |
store i64 %285, i64* %215, align 8 | |
%287 = load %"class.std::__1::__allocator_destructor"** %213 | |
%288 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %287, i32 0, i32 0 | |
%289 = load %"class.std::__1::allocator.1"** %214, align 8 | |
store %"class.std::__1::allocator.1"* %289, %"class.std::__1::allocator.1"** %288, align 8 | |
%290 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %287, i32 0, i32 1 | |
%291 = load i64* %215, align 8 | |
store i64 %291, i64* %290, align 8 | |
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %17, align 8 | |
store %"class.std::__1::__function::__func"* %283, %"class.std::__1::__function::__func"** %18, align 8 | |
store %"class.std::__1::__allocator_destructor"* %265, %"class.std::__1::__allocator_destructor"** %19, align 8 | |
%292 = load %"class.std::__1::unique_ptr"** %17 | |
%293 = load %"class.std::__1::__function::__func"** %18, align 8 | |
%294 = load %"class.std::__1::__allocator_destructor"** %19 | |
store %"class.std::__1::unique_ptr"* %292, %"class.std::__1::unique_ptr"** %13, align 8 | |
store %"class.std::__1::__function::__func"* %293, %"class.std::__1::__function::__func"** %14, align 8 | |
store %"class.std::__1::__allocator_destructor"* %294, %"class.std::__1::__allocator_destructor"** %15, align 8 | |
%295 = load %"class.std::__1::unique_ptr"** %13 | |
%296 = getelementptr inbounds %"class.std::__1::unique_ptr"* %295, i32 0, i32 0 | |
%297 = load %"class.std::__1::__function::__func"** %14, align 8 | |
%298 = load %"class.std::__1::__allocator_destructor"** %15, align 8 | |
store %"class.std::__1::__allocator_destructor"* %298, %"class.std::__1::__allocator_destructor"** %12, align 8 | |
%299 = load %"class.std::__1::__allocator_destructor"** %12, align 8 | |
%300 = bitcast %"class.std::__1::__allocator_destructor"* %16 to i8* | |
%301 = bitcast %"class.std::__1::__allocator_destructor"* %299 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %300, i8* %301, i64 16, i32 8, i1 false) nounwind | |
%302 = bitcast %"class.std::__1::__allocator_destructor"* %16 to { %"class.std::__1::allocator.1"*, i64 }* | |
%303 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %302, i32 0, i32 0 | |
%304 = load %"class.std::__1::allocator.1"** %303, align 1 | |
%305 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %302, i32 0, i32 1 | |
%306 = load i64* %305, align 1 | |
store %"class.std::__1::__compressed_pair.12"* %296, %"class.std::__1::__compressed_pair.12"** %10, align 8 | |
store %"class.std::__1::__function::__func"* %297, %"class.std::__1::__function::__func"** %11, align 8 | |
%307 = bitcast %"class.std::__1::__allocator_destructor"* %__t2.i.i.i to { %"class.std::__1::allocator.1"*, i64 }* | |
%308 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %307, i32 0, i32 0 | |
store %"class.std::__1::allocator.1"* %304, %"class.std::__1::allocator.1"** %308 | |
%309 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %307, i32 0, i32 1 | |
store i64 %306, i64* %309 | |
%310 = load %"class.std::__1::__compressed_pair.12"** %10 | |
%311 = load %"class.std::__1::__function::__func"** %11, align 8 | |
%312 = bitcast %"class.std::__1::__allocator_destructor"* %__t2.i.i.i to { %"class.std::__1::allocator.1"*, i64 }* | |
%313 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %312, i32 0, i32 0 | |
%314 = load %"class.std::__1::allocator.1"** %313, align 1 | |
%315 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %312, i32 0, i32 1 | |
%316 = load i64* %315, align 1 | |
store %"class.std::__1::__compressed_pair.12"* %310, %"class.std::__1::__compressed_pair.12"** %7, align 8 | |
store %"class.std::__1::__function::__func"* %311, %"class.std::__1::__function::__func"** %8, align 8 | |
%317 = bitcast %"class.std::__1::__allocator_destructor"* %__t2.i.i.i.i to { %"class.std::__1::allocator.1"*, i64 }* | |
%318 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %317, i32 0, i32 0 | |
store %"class.std::__1::allocator.1"* %314, %"class.std::__1::allocator.1"** %318 | |
%319 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %317, i32 0, i32 1 | |
store i64 %316, i64* %319 | |
%320 = load %"class.std::__1::__compressed_pair.12"** %7 | |
%321 = bitcast %"class.std::__1::__compressed_pair.12"* %320 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__function::__func"** %8, %"class.std::__1::__function::__func"*** %6, align 8 | |
%322 = load %"class.std::__1::__function::__func"*** %6, align 8 | |
%323 = load %"class.std::__1::__function::__func"** %322 | |
store %"class.std::__1::__allocator_destructor"* %__t2.i.i.i.i, %"class.std::__1::__allocator_destructor"** %1, align 8 | |
%324 = load %"class.std::__1::__allocator_destructor"** %1, align 8 | |
%325 = bitcast %"class.std::__1::__allocator_destructor"* %9 to i8* | |
%326 = bitcast %"class.std::__1::__allocator_destructor"* %324 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %325, i8* %326, i64 16, i32 8, i1 false) nounwind | |
%327 = bitcast %"class.std::__1::__allocator_destructor"* %9 to { %"class.std::__1::allocator.1"*, i64 }* | |
%328 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %327, i32 0, i32 0 | |
%329 = load %"class.std::__1::allocator.1"** %328, align 1 | |
%330 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %327, i32 0, i32 1 | |
%331 = load i64* %330, align 1 | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %321, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %4, align 8 | |
store %"class.std::__1::__function::__func"* %323, %"class.std::__1::__function::__func"** %5, align 8 | |
%332 = bitcast %"class.std::__1::__allocator_destructor"* %__t2.i.i.i.i.i to { %"class.std::__1::allocator.1"*, i64 }* | |
%333 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %332, i32 0, i32 0 | |
store %"class.std::__1::allocator.1"* %329, %"class.std::__1::allocator.1"** %333 | |
%334 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %332, i32 0, i32 1 | |
store i64 %331, i64* %334 | |
%335 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %4 | |
%336 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %335, i32 0, i32 0 | |
store %"class.std::__1::__function::__func"** %5, %"class.std::__1::__function::__func"*** %3, align 8 | |
%337 = load %"class.std::__1::__function::__func"*** %3, align 8 | |
%338 = load %"class.std::__1::__function::__func"** %337 | |
store %"class.std::__1::__function::__func"* %338, %"class.std::__1::__function::__func"** %336, align 8 | |
%339 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %335, i32 0, i32 1 | |
store %"class.std::__1::__allocator_destructor"* %__t2.i.i.i.i.i, %"class.std::__1::__allocator_destructor"** %2, align 8 | |
%340 = load %"class.std::__1::__allocator_destructor"** %2, align 8 | |
%341 = bitcast %"class.std::__1::__allocator_destructor"* %339 to i8* | |
%342 = bitcast %"class.std::__1::__allocator_destructor"* %340 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %341, i8* %342, i64 16, i32 8, i1 false) nounwind | |
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %22, align 8 | |
%343 = load %"class.std::__1::unique_ptr"** %22 | |
%344 = getelementptr inbounds %"class.std::__1::unique_ptr"* %343, i32 0, i32 0 | |
store %"class.std::__1::__compressed_pair.12"* %344, %"class.std::__1::__compressed_pair.12"** %21, align 8 | |
%345 = load %"class.std::__1::__compressed_pair.12"** %21 | |
%346 = bitcast %"class.std::__1::__compressed_pair.12"* %345 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %346, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %20, align 8 | |
%347 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %20 | |
%348 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %347, i32 0, i32 0 | |
%349 = load %"class.std::__1::__function::__func"** %348 | |
%350 = bitcast %"class.std::__1::__function::__func"* %349 to i8* | |
%351 = icmp eq i8* %350, null | |
br i1 %351, label %564, label %352 | |
; <label>:352 ; preds = %0 | |
%353 = bitcast i8* %350 to %"class.std::__1::__function::__func"* | |
%354 = getelementptr inbounds %"class.std::__1::__function::__func"* %270, i32 0, i32 1 | |
store %"class.std::__1::__compressed_pair"* %354, %"class.std::__1::__compressed_pair"** %24, align 8 | |
%355 = load %"class.std::__1::__compressed_pair"** %24 | |
%356 = bitcast %"class.std::__1::__compressed_pair"* %355 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %356, %"class.std::__1::__libcpp_compressed_pair_imp"** %23, align 8 | |
%357 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %23 | |
%358 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %357 to %class.anon* | |
store %"class.std::__1::allocator"* %266, %"class.std::__1::allocator"** %27, align 8 | |
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %28, align 8 | |
%359 = load %"class.std::__1::allocator"** %27 | |
%360 = load %"class.std::__1::allocator.1"** %28 | |
store %"class.std::__1::allocator"* %359, %"class.std::__1::allocator"** %25, align 8 | |
store %"class.std::__1::allocator.1"* %360, %"class.std::__1::allocator.1"** %26, align 8 | |
%361 = load %"class.std::__1::allocator"** %25 | |
store %"class.std::__1::__function::__func"* %353, %"class.std::__1::__function::__func"** %205, align 8 | |
store %class.anon* %358, %class.anon** %206, align 8 | |
store %"class.std::__1::allocator"* %266, %"class.std::__1::allocator"** %207, align 8 | |
%362 = load %"class.std::__1::__function::__func"** %205 | |
%363 = load %class.anon** %206 | |
%364 = load %"class.std::__1::allocator"** %207 | |
store %"class.std::__1::__function::__func"* %362, %"class.std::__1::__function::__func"** %195, align 8 | |
store %class.anon* %363, %class.anon** %196, align 8 | |
store %"class.std::__1::allocator"* %364, %"class.std::__1::allocator"** %197, align 8 | |
%365 = load %"class.std::__1::__function::__func"** %195 | |
%366 = bitcast %"class.std::__1::__function::__func"* %365 to %"class.std::__1::__function::__base"* | |
store %"class.std::__1::__function::__base"* %366, %"class.std::__1::__function::__base"** %194, align 8 | |
%367 = load %"class.std::__1::__function::__base"** %194 | |
%368 = bitcast %"class.std::__1::__function::__base"* %367 to i8*** | |
store i8** getelementptr inbounds ([11 x i8*]* @_ZTVNSt3__110__function6__baseIFiiEEE, i64 0, i64 2), i8*** %368 | |
%369 = bitcast %"class.std::__1::__function::__func"* %365 to i8*** | |
store i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2), i8*** %369 | |
%370 = getelementptr inbounds %"class.std::__1::__function::__func"* %365, i32 0, i32 1 | |
%371 = load %class.anon** %196, align 8 | |
store %class.anon* %371, %class.anon** %69, align 8 | |
%372 = load %class.anon** %69, align 8 | |
store %class.anon* %372, %class.anon** %68, align 8 | |
%373 = load %class.anon** %68, align 8 | |
store %"class.std::__1::tuple.3"* %70, %"class.std::__1::tuple.3"** %51, align 8 | |
store %class.anon* %373, %class.anon** %52, align 8 | |
%374 = load %"class.std::__1::tuple.3"** %51 | |
%375 = load %class.anon** %52 | |
store %"class.std::__1::tuple.3"* %374, %"class.std::__1::tuple.3"** %45, align 8 | |
store %class.anon* %375, %class.anon** %46, align 8 | |
%376 = load %"class.std::__1::tuple.3"** %45 | |
%377 = getelementptr inbounds %"class.std::__1::tuple.3"* %376, i32 0, i32 0 | |
%378 = load %class.anon** %46, align 8 | |
store %"struct.std::__1::__tuple_impl.4"* %377, %"struct.std::__1::__tuple_impl.4"** %39, align 8 | |
store %class.anon* %378, %class.anon** %44, align 8 | |
%379 = load %"struct.std::__1::__tuple_impl.4"** %39 | |
%380 = load %class.anon** %44 | |
store %"struct.std::__1::__tuple_impl.4"* %379, %"struct.std::__1::__tuple_impl.4"** %33, align 8 | |
store %class.anon* %380, %class.anon** %38, align 8 | |
%381 = load %"struct.std::__1::__tuple_impl.4"** %33 | |
%382 = bitcast %"struct.std::__1::__tuple_impl.4"* %381 to %"class.std::__1::__tuple_leaf.5"* | |
%383 = load %class.anon** %38, align 8 | |
store %class.anon* %383, %class.anon** %32, align 8 | |
%384 = load %class.anon** %32, align 8 | |
store %"class.std::__1::__tuple_leaf.5"* %382, %"class.std::__1::__tuple_leaf.5"** %30, align 8 | |
store %class.anon* %384, %class.anon** %31, align 8 | |
%385 = load %"class.std::__1::__tuple_leaf.5"** %30 | |
%386 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %385, i32 0, i32 0 | |
%387 = load %class.anon** %31, align 8 | |
store %class.anon* %387, %class.anon** %29, align 8 | |
%388 = load %class.anon** %29, align 8 | |
store %class.anon* %388, %class.anon** %386, align 8 | |
store %"class.std::__1::tuple.3"* %200, %"class.std::__1::tuple.3"** %66, align 8 | |
store %"class.std::__1::tuple.3"* %70, %"class.std::__1::tuple.3"** %67, align 8 | |
%389 = load %"class.std::__1::tuple.3"** %66 | |
%390 = load %"class.std::__1::tuple.3"** %67 | |
store %"class.std::__1::tuple.3"* %389, %"class.std::__1::tuple.3"** %64, align 8 | |
store %"class.std::__1::tuple.3"* %390, %"class.std::__1::tuple.3"** %65, align 8 | |
%391 = load %"class.std::__1::tuple.3"** %64 | |
%392 = getelementptr inbounds %"class.std::__1::tuple.3"* %391, i32 0, i32 0 | |
%393 = load %"class.std::__1::tuple.3"** %65, align 8 | |
store %"class.std::__1::tuple.3"* %393, %"class.std::__1::tuple.3"** %63, align 8 | |
%394 = load %"class.std::__1::tuple.3"** %63, align 8 | |
store %"struct.std::__1::__tuple_impl.4"* %392, %"struct.std::__1::__tuple_impl.4"** %61, align 8 | |
store %"class.std::__1::tuple.3"* %394, %"class.std::__1::tuple.3"** %62, align 8 | |
%395 = load %"struct.std::__1::__tuple_impl.4"** %61 | |
%396 = load %"class.std::__1::tuple.3"** %62 | |
store %"struct.std::__1::__tuple_impl.4"* %395, %"struct.std::__1::__tuple_impl.4"** %59, align 8 | |
store %"class.std::__1::tuple.3"* %396, %"class.std::__1::tuple.3"** %60, align 8 | |
%397 = load %"struct.std::__1::__tuple_impl.4"** %59 | |
%398 = bitcast %"struct.std::__1::__tuple_impl.4"* %397 to %"class.std::__1::__tuple_leaf.5"* | |
%399 = load %"class.std::__1::tuple.3"** %60, align 8 | |
store %"class.std::__1::tuple.3"* %399, %"class.std::__1::tuple.3"** %58, align 8 | |
%400 = load %"class.std::__1::tuple.3"** %58, align 8 | |
%401 = getelementptr inbounds %"class.std::__1::tuple.3"* %400, i32 0, i32 0 | |
%402 = bitcast %"struct.std::__1::__tuple_impl.4"* %401 to %"class.std::__1::__tuple_leaf.5"* | |
store %"class.std::__1::__tuple_leaf.5"* %402, %"class.std::__1::__tuple_leaf.5"** %57, align 8 | |
%403 = load %"class.std::__1::__tuple_leaf.5"** %57 | |
%404 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %403, i32 0, i32 0 | |
%405 = load %class.anon** %404, align 8 | |
store %class.anon* %405, %class.anon** %53, align 8 | |
%406 = load %class.anon** %53, align 8 | |
store %"class.std::__1::__tuple_leaf.5"* %398, %"class.std::__1::__tuple_leaf.5"** %55, align 8 | |
store %class.anon* %406, %class.anon** %56, align 8 | |
%407 = load %"class.std::__1::__tuple_leaf.5"** %55 | |
%408 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %407, i32 0, i32 0 | |
%409 = load %class.anon** %56, align 8 | |
store %class.anon* %409, %class.anon** %54, align 8 | |
%410 = load %class.anon** %54, align 8 | |
store %class.anon* %410, %class.anon** %408, align 8 | |
store %"class.std::__1::tuple.3"* %199, %"class.std::__1::tuple.3"** %84, align 8 | |
store %"class.std::__1::tuple.3"* %200, %"class.std::__1::tuple.3"** %85, align 8 | |
%411 = load %"class.std::__1::tuple.3"** %84 | |
%412 = load %"class.std::__1::tuple.3"** %85 | |
store %"class.std::__1::tuple.3"* %411, %"class.std::__1::tuple.3"** %82, align 8 | |
store %"class.std::__1::tuple.3"* %412, %"class.std::__1::tuple.3"** %83, align 8 | |
%413 = load %"class.std::__1::tuple.3"** %82 | |
%414 = getelementptr inbounds %"class.std::__1::tuple.3"* %413, i32 0, i32 0 | |
%415 = load %"class.std::__1::tuple.3"** %83, align 8 | |
store %"class.std::__1::tuple.3"* %415, %"class.std::__1::tuple.3"** %81, align 8 | |
%416 = load %"class.std::__1::tuple.3"** %81, align 8 | |
store %"struct.std::__1::__tuple_impl.4"* %414, %"struct.std::__1::__tuple_impl.4"** %79, align 8 | |
store %"class.std::__1::tuple.3"* %416, %"class.std::__1::tuple.3"** %80, align 8 | |
%417 = load %"struct.std::__1::__tuple_impl.4"** %79 | |
%418 = load %"class.std::__1::tuple.3"** %80 | |
store %"struct.std::__1::__tuple_impl.4"* %417, %"struct.std::__1::__tuple_impl.4"** %77, align 8 | |
store %"class.std::__1::tuple.3"* %418, %"class.std::__1::tuple.3"** %78, align 8 | |
%419 = load %"struct.std::__1::__tuple_impl.4"** %77 | |
%420 = bitcast %"struct.std::__1::__tuple_impl.4"* %419 to %"class.std::__1::__tuple_leaf.5"* | |
%421 = load %"class.std::__1::tuple.3"** %78, align 8 | |
store %"class.std::__1::tuple.3"* %421, %"class.std::__1::tuple.3"** %76, align 8 | |
%422 = load %"class.std::__1::tuple.3"** %76, align 8 | |
%423 = getelementptr inbounds %"class.std::__1::tuple.3"* %422, i32 0, i32 0 | |
%424 = bitcast %"struct.std::__1::__tuple_impl.4"* %423 to %"class.std::__1::__tuple_leaf.5"* | |
store %"class.std::__1::__tuple_leaf.5"* %424, %"class.std::__1::__tuple_leaf.5"** %75, align 8 | |
%425 = load %"class.std::__1::__tuple_leaf.5"** %75 | |
%426 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %425, i32 0, i32 0 | |
%427 = load %class.anon** %426, align 8 | |
store %class.anon* %427, %class.anon** %71, align 8 | |
%428 = load %class.anon** %71, align 8 | |
store %"class.std::__1::__tuple_leaf.5"* %420, %"class.std::__1::__tuple_leaf.5"** %73, align 8 | |
store %class.anon* %428, %class.anon** %74, align 8 | |
%429 = load %"class.std::__1::__tuple_leaf.5"** %73 | |
%430 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %429, i32 0, i32 0 | |
%431 = load %class.anon** %74, align 8 | |
store %class.anon* %431, %class.anon** %72, align 8 | |
%432 = load %class.anon** %72, align 8 | |
store %class.anon* %432, %class.anon** %430, align 8 | |
%433 = load %"class.std::__1::allocator"** %197, align 8 | |
store %"class.std::__1::allocator"* %433, %"class.std::__1::allocator"** %86, align 8 | |
%434 = load %"class.std::__1::allocator"** %86, align 8 | |
store %"class.std::__1::allocator"* %434, %"class.std::__1::allocator"** %128, align 8 | |
%435 = load %"class.std::__1::allocator"** %128, align 8 | |
store %"class.std::__1::allocator"* %435, %"class.std::__1::allocator"** %127, align 8 | |
%436 = load %"class.std::__1::allocator"** %127, align 8 | |
store %"class.std::__1::tuple.14"* %129, %"class.std::__1::tuple.14"** %110, align 8 | |
store %"class.std::__1::allocator"* %436, %"class.std::__1::allocator"** %111, align 8 | |
%437 = load %"class.std::__1::tuple.14"** %110 | |
%438 = load %"class.std::__1::allocator"** %111 | |
store %"class.std::__1::tuple.14"* %437, %"class.std::__1::tuple.14"** %104, align 8 | |
store %"class.std::__1::allocator"* %438, %"class.std::__1::allocator"** %105, align 8 | |
%439 = load %"class.std::__1::tuple.14"** %104 | |
%440 = getelementptr inbounds %"class.std::__1::tuple.14"* %439, i32 0, i32 0 | |
%441 = load %"class.std::__1::allocator"** %105, align 8 | |
store %"class.std::__1::allocator"* %441, %"class.std::__1::allocator"** %103, align 8 | |
%442 = load %"class.std::__1::allocator"** %103, align 8 | |
store %"struct.std::__1::__tuple_impl.15"* %440, %"struct.std::__1::__tuple_impl.15"** %97, align 8 | |
store %"class.std::__1::allocator"* %442, %"class.std::__1::allocator"** %102, align 8 | |
%443 = load %"struct.std::__1::__tuple_impl.15"** %97 | |
%444 = load %"class.std::__1::allocator"** %102 | |
store %"struct.std::__1::__tuple_impl.15"* %443, %"struct.std::__1::__tuple_impl.15"** %91, align 8 | |
store %"class.std::__1::allocator"* %444, %"class.std::__1::allocator"** %96, align 8 | |
%445 = load %"struct.std::__1::__tuple_impl.15"** %91 | |
%446 = bitcast %"struct.std::__1::__tuple_impl.15"* %445 to %"class.std::__1::__tuple_leaf.16"* | |
%447 = load %"class.std::__1::allocator"** %96, align 8 | |
store %"class.std::__1::allocator"* %447, %"class.std::__1::allocator"** %90, align 8 | |
%448 = load %"class.std::__1::allocator"** %90, align 8 | |
store %"class.std::__1::__tuple_leaf.16"* %446, %"class.std::__1::__tuple_leaf.16"** %88, align 8 | |
store %"class.std::__1::allocator"* %448, %"class.std::__1::allocator"** %89, align 8 | |
%449 = load %"class.std::__1::__tuple_leaf.16"** %88 | |
%450 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %449, i32 0, i32 0 | |
%451 = load %"class.std::__1::allocator"** %89, align 8 | |
store %"class.std::__1::allocator"* %451, %"class.std::__1::allocator"** %87, align 8 | |
%452 = load %"class.std::__1::allocator"** %87, align 8 | |
store %"class.std::__1::allocator"* %452, %"class.std::__1::allocator"** %450, align 8 | |
store %"class.std::__1::tuple.14"* %204, %"class.std::__1::tuple.14"** %125, align 8 | |
store %"class.std::__1::tuple.14"* %129, %"class.std::__1::tuple.14"** %126, align 8 | |
%453 = load %"class.std::__1::tuple.14"** %125 | |
%454 = load %"class.std::__1::tuple.14"** %126 | |
store %"class.std::__1::tuple.14"* %453, %"class.std::__1::tuple.14"** %123, align 8 | |
store %"class.std::__1::tuple.14"* %454, %"class.std::__1::tuple.14"** %124, align 8 | |
%455 = load %"class.std::__1::tuple.14"** %123 | |
%456 = getelementptr inbounds %"class.std::__1::tuple.14"* %455, i32 0, i32 0 | |
%457 = load %"class.std::__1::tuple.14"** %124, align 8 | |
store %"class.std::__1::tuple.14"* %457, %"class.std::__1::tuple.14"** %122, align 8 | |
%458 = load %"class.std::__1::tuple.14"** %122, align 8 | |
store %"struct.std::__1::__tuple_impl.15"* %456, %"struct.std::__1::__tuple_impl.15"** %120, align 8 | |
store %"class.std::__1::tuple.14"* %458, %"class.std::__1::tuple.14"** %121, align 8 | |
%459 = load %"struct.std::__1::__tuple_impl.15"** %120 | |
%460 = load %"class.std::__1::tuple.14"** %121 | |
store %"struct.std::__1::__tuple_impl.15"* %459, %"struct.std::__1::__tuple_impl.15"** %118, align 8 | |
store %"class.std::__1::tuple.14"* %460, %"class.std::__1::tuple.14"** %119, align 8 | |
%461 = load %"struct.std::__1::__tuple_impl.15"** %118 | |
%462 = bitcast %"struct.std::__1::__tuple_impl.15"* %461 to %"class.std::__1::__tuple_leaf.16"* | |
%463 = load %"class.std::__1::tuple.14"** %119, align 8 | |
store %"class.std::__1::tuple.14"* %463, %"class.std::__1::tuple.14"** %117, align 8 | |
%464 = load %"class.std::__1::tuple.14"** %117, align 8 | |
%465 = getelementptr inbounds %"class.std::__1::tuple.14"* %464, i32 0, i32 0 | |
%466 = bitcast %"struct.std::__1::__tuple_impl.15"* %465 to %"class.std::__1::__tuple_leaf.16"* | |
store %"class.std::__1::__tuple_leaf.16"* %466, %"class.std::__1::__tuple_leaf.16"** %116, align 8 | |
%467 = load %"class.std::__1::__tuple_leaf.16"** %116 | |
%468 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %467, i32 0, i32 0 | |
%469 = load %"class.std::__1::allocator"** %468, align 8 | |
store %"class.std::__1::allocator"* %469, %"class.std::__1::allocator"** %112, align 8 | |
%470 = load %"class.std::__1::allocator"** %112, align 8 | |
store %"class.std::__1::__tuple_leaf.16"* %462, %"class.std::__1::__tuple_leaf.16"** %114, align 8 | |
store %"class.std::__1::allocator"* %470, %"class.std::__1::allocator"** %115, align 8 | |
%471 = load %"class.std::__1::__tuple_leaf.16"** %114 | |
%472 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %471, i32 0, i32 0 | |
%473 = load %"class.std::__1::allocator"** %115, align 8 | |
store %"class.std::__1::allocator"* %473, %"class.std::__1::allocator"** %113, align 8 | |
%474 = load %"class.std::__1::allocator"** %113, align 8 | |
store %"class.std::__1::allocator"* %474, %"class.std::__1::allocator"** %472, align 8 | |
store %"class.std::__1::tuple.14"* %203, %"class.std::__1::tuple.14"** %143, align 8 | |
store %"class.std::__1::tuple.14"* %204, %"class.std::__1::tuple.14"** %144, align 8 | |
%475 = load %"class.std::__1::tuple.14"** %143 | |
%476 = load %"class.std::__1::tuple.14"** %144 | |
store %"class.std::__1::tuple.14"* %475, %"class.std::__1::tuple.14"** %141, align 8 | |
store %"class.std::__1::tuple.14"* %476, %"class.std::__1::tuple.14"** %142, align 8 | |
%477 = load %"class.std::__1::tuple.14"** %141 | |
%478 = getelementptr inbounds %"class.std::__1::tuple.14"* %477, i32 0, i32 0 | |
%479 = load %"class.std::__1::tuple.14"** %142, align 8 | |
store %"class.std::__1::tuple.14"* %479, %"class.std::__1::tuple.14"** %140, align 8 | |
%480 = load %"class.std::__1::tuple.14"** %140, align 8 | |
store %"struct.std::__1::__tuple_impl.15"* %478, %"struct.std::__1::__tuple_impl.15"** %138, align 8 | |
store %"class.std::__1::tuple.14"* %480, %"class.std::__1::tuple.14"** %139, align 8 | |
%481 = load %"struct.std::__1::__tuple_impl.15"** %138 | |
%482 = load %"class.std::__1::tuple.14"** %139 | |
store %"struct.std::__1::__tuple_impl.15"* %481, %"struct.std::__1::__tuple_impl.15"** %136, align 8 | |
store %"class.std::__1::tuple.14"* %482, %"class.std::__1::tuple.14"** %137, align 8 | |
%483 = load %"struct.std::__1::__tuple_impl.15"** %136 | |
%484 = bitcast %"struct.std::__1::__tuple_impl.15"* %483 to %"class.std::__1::__tuple_leaf.16"* | |
%485 = load %"class.std::__1::tuple.14"** %137, align 8 | |
store %"class.std::__1::tuple.14"* %485, %"class.std::__1::tuple.14"** %135, align 8 | |
%486 = load %"class.std::__1::tuple.14"** %135, align 8 | |
%487 = getelementptr inbounds %"class.std::__1::tuple.14"* %486, i32 0, i32 0 | |
%488 = bitcast %"struct.std::__1::__tuple_impl.15"* %487 to %"class.std::__1::__tuple_leaf.16"* | |
store %"class.std::__1::__tuple_leaf.16"* %488, %"class.std::__1::__tuple_leaf.16"** %134, align 8 | |
%489 = load %"class.std::__1::__tuple_leaf.16"** %134 | |
%490 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %489, i32 0, i32 0 | |
%491 = load %"class.std::__1::allocator"** %490, align 8 | |
store %"class.std::__1::allocator"* %491, %"class.std::__1::allocator"** %130, align 8 | |
%492 = load %"class.std::__1::allocator"** %130, align 8 | |
store %"class.std::__1::__tuple_leaf.16"* %484, %"class.std::__1::__tuple_leaf.16"** %132, align 8 | |
store %"class.std::__1::allocator"* %492, %"class.std::__1::allocator"** %133, align 8 | |
%493 = load %"class.std::__1::__tuple_leaf.16"** %132 | |
%494 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %493, i32 0, i32 0 | |
%495 = load %"class.std::__1::allocator"** %133, align 8 | |
store %"class.std::__1::allocator"* %495, %"class.std::__1::allocator"** %131, align 8 | |
%496 = load %"class.std::__1::allocator"** %131, align 8 | |
store %"class.std::__1::allocator"* %496, %"class.std::__1::allocator"** %494, align 8 | |
store %"class.std::__1::__compressed_pair"* %370, %"class.std::__1::__compressed_pair"** %192, align 8 | |
%497 = load %"class.std::__1::__compressed_pair"** %192 | |
store %"class.std::__1::__compressed_pair"* %497, %"class.std::__1::__compressed_pair"** %186, align 8 | |
%498 = load %"class.std::__1::__compressed_pair"** %186 | |
%499 = bitcast %"class.std::__1::__compressed_pair"* %498 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::tuple.3"* %199, %"class.std::__1::tuple.3"** %185, align 8 | |
%500 = load %"class.std::__1::tuple.3"** %185, align 8 | |
store %"class.std::__1::tuple.3"* %188, %"class.std::__1::tuple.3"** %158, align 8 | |
store %"class.std::__1::tuple.3"* %500, %"class.std::__1::tuple.3"** %159, align 8 | |
%501 = load %"class.std::__1::tuple.3"** %158 | |
%502 = load %"class.std::__1::tuple.3"** %159 | |
store %"class.std::__1::tuple.3"* %501, %"class.std::__1::tuple.3"** %156, align 8 | |
store %"class.std::__1::tuple.3"* %502, %"class.std::__1::tuple.3"** %157, align 8 | |
%503 = load %"class.std::__1::tuple.3"** %156 | |
%504 = getelementptr inbounds %"class.std::__1::tuple.3"* %503, i32 0, i32 0 | |
%505 = load %"class.std::__1::tuple.3"** %157, align 8 | |
store %"class.std::__1::tuple.3"* %505, %"class.std::__1::tuple.3"** %155, align 8 | |
%506 = load %"class.std::__1::tuple.3"** %155, align 8 | |
store %"struct.std::__1::__tuple_impl.4"* %504, %"struct.std::__1::__tuple_impl.4"** %153, align 8 | |
store %"class.std::__1::tuple.3"* %506, %"class.std::__1::tuple.3"** %154, align 8 | |
%507 = load %"struct.std::__1::__tuple_impl.4"** %153 | |
%508 = load %"class.std::__1::tuple.3"** %154 | |
store %"struct.std::__1::__tuple_impl.4"* %507, %"struct.std::__1::__tuple_impl.4"** %151, align 8 | |
store %"class.std::__1::tuple.3"* %508, %"class.std::__1::tuple.3"** %152, align 8 | |
%509 = load %"struct.std::__1::__tuple_impl.4"** %151 | |
%510 = bitcast %"struct.std::__1::__tuple_impl.4"* %509 to %"class.std::__1::__tuple_leaf.5"* | |
%511 = load %"class.std::__1::tuple.3"** %152, align 8 | |
store %"class.std::__1::tuple.3"* %511, %"class.std::__1::tuple.3"** %150, align 8 | |
%512 = load %"class.std::__1::tuple.3"** %150, align 8 | |
%513 = getelementptr inbounds %"class.std::__1::tuple.3"* %512, i32 0, i32 0 | |
%514 = bitcast %"struct.std::__1::__tuple_impl.4"* %513 to %"class.std::__1::__tuple_leaf.5"* | |
store %"class.std::__1::__tuple_leaf.5"* %514, %"class.std::__1::__tuple_leaf.5"** %149, align 8 | |
%515 = load %"class.std::__1::__tuple_leaf.5"** %149 | |
%516 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %515, i32 0, i32 0 | |
%517 = load %class.anon** %516, align 8 | |
store %class.anon* %517, %class.anon** %145, align 8 | |
%518 = load %class.anon** %145, align 8 | |
store %"class.std::__1::__tuple_leaf.5"* %510, %"class.std::__1::__tuple_leaf.5"** %147, align 8 | |
store %class.anon* %518, %class.anon** %148, align 8 | |
%519 = load %"class.std::__1::__tuple_leaf.5"** %147 | |
%520 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %519, i32 0, i32 0 | |
%521 = load %class.anon** %148, align 8 | |
store %class.anon* %521, %class.anon** %146, align 8 | |
%522 = load %class.anon** %146, align 8 | |
store %class.anon* %522, %class.anon** %520, align 8 | |
store %"class.std::__1::tuple.14"* %203, %"class.std::__1::tuple.14"** %160, align 8 | |
%523 = load %"class.std::__1::tuple.14"** %160, align 8 | |
store %"class.std::__1::tuple.14"* %189, %"class.std::__1::tuple.14"** %174, align 8 | |
store %"class.std::__1::tuple.14"* %523, %"class.std::__1::tuple.14"** %175, align 8 | |
%524 = load %"class.std::__1::tuple.14"** %174 | |
%525 = load %"class.std::__1::tuple.14"** %175 | |
store %"class.std::__1::tuple.14"* %524, %"class.std::__1::tuple.14"** %172, align 8 | |
store %"class.std::__1::tuple.14"* %525, %"class.std::__1::tuple.14"** %173, align 8 | |
%526 = load %"class.std::__1::tuple.14"** %172 | |
%527 = getelementptr inbounds %"class.std::__1::tuple.14"* %526, i32 0, i32 0 | |
%528 = load %"class.std::__1::tuple.14"** %173, align 8 | |
store %"class.std::__1::tuple.14"* %528, %"class.std::__1::tuple.14"** %171, align 8 | |
%529 = load %"class.std::__1::tuple.14"** %171, align 8 | |
store %"struct.std::__1::__tuple_impl.15"* %527, %"struct.std::__1::__tuple_impl.15"** %169, align 8 | |
store %"class.std::__1::tuple.14"* %529, %"class.std::__1::tuple.14"** %170, align 8 | |
%530 = load %"struct.std::__1::__tuple_impl.15"** %169 | |
%531 = load %"class.std::__1::tuple.14"** %170 | |
store %"struct.std::__1::__tuple_impl.15"* %530, %"struct.std::__1::__tuple_impl.15"** %167, align 8 | |
store %"class.std::__1::tuple.14"* %531, %"class.std::__1::tuple.14"** %168, align 8 | |
%532 = load %"struct.std::__1::__tuple_impl.15"** %167 | |
%533 = bitcast %"struct.std::__1::__tuple_impl.15"* %532 to %"class.std::__1::__tuple_leaf.16"* | |
%534 = load %"class.std::__1::tuple.14"** %168, align 8 | |
store %"class.std::__1::tuple.14"* %534, %"class.std::__1::tuple.14"** %166, align 8 | |
%535 = load %"class.std::__1::tuple.14"** %166, align 8 | |
%536 = getelementptr inbounds %"class.std::__1::tuple.14"* %535, i32 0, i32 0 | |
%537 = bitcast %"struct.std::__1::__tuple_impl.15"* %536 to %"class.std::__1::__tuple_leaf.16"* | |
store %"class.std::__1::__tuple_leaf.16"* %537, %"class.std::__1::__tuple_leaf.16"** %165, align 8 | |
%538 = load %"class.std::__1::__tuple_leaf.16"** %165 | |
%539 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %538, i32 0, i32 0 | |
%540 = load %"class.std::__1::allocator"** %539, align 8 | |
store %"class.std::__1::allocator"* %540, %"class.std::__1::allocator"** %161, align 8 | |
%541 = load %"class.std::__1::allocator"** %161, align 8 | |
store %"class.std::__1::__tuple_leaf.16"* %533, %"class.std::__1::__tuple_leaf.16"** %163, align 8 | |
store %"class.std::__1::allocator"* %541, %"class.std::__1::allocator"** %164, align 8 | |
%542 = load %"class.std::__1::__tuple_leaf.16"** %163 | |
%543 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %542, i32 0, i32 0 | |
%544 = load %"class.std::__1::allocator"** %164, align 8 | |
store %"class.std::__1::allocator"* %544, %"class.std::__1::allocator"** %162, align 8 | |
%545 = load %"class.std::__1::allocator"** %162, align 8 | |
store %"class.std::__1::allocator"* %545, %"class.std::__1::allocator"** %543, align 8 | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %499, %"class.std::__1::__libcpp_compressed_pair_imp"** %182, align 8 | |
%546 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %182 | |
%547 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %546 to %class.anon* | |
store %"class.std::__1::tuple.3"* %188, %"class.std::__1::tuple.3"** %181, align 8 | |
%548 = load %"class.std::__1::tuple.3"** %181, align 8 | |
%549 = getelementptr inbounds %"class.std::__1::tuple.3"* %548, i32 0, i32 0 | |
%550 = bitcast %"struct.std::__1::__tuple_impl.4"* %549 to %"class.std::__1::__tuple_leaf.5"* | |
store %"class.std::__1::__tuple_leaf.5"* %550, %"class.std::__1::__tuple_leaf.5"** %180, align 8 | |
%551 = load %"class.std::__1::__tuple_leaf.5"** %180 | |
%552 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %551, i32 0, i32 0 | |
%553 = load %class.anon** %552, align 8 | |
store %class.anon* %553, %class.anon** %176, align 8 | |
%554 = load %class.anon** %176, align 8 | |
%555 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %546 to %"class.std::__1::allocator"* | |
store %"class.std::__1::tuple.14"* %189, %"class.std::__1::tuple.14"** %178, align 8 | |
%556 = load %"class.std::__1::tuple.14"** %178, align 8 | |
%557 = getelementptr inbounds %"class.std::__1::tuple.14"* %556, i32 0, i32 0 | |
%558 = bitcast %"struct.std::__1::__tuple_impl.15"* %557 to %"class.std::__1::__tuple_leaf.16"* | |
store %"class.std::__1::__tuple_leaf.16"* %558, %"class.std::__1::__tuple_leaf.16"** %177, align 8 | |
%559 = load %"class.std::__1::__tuple_leaf.16"** %177 | |
%560 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %559, i32 0, i32 0 | |
%561 = load %"class.std::__1::allocator"** %560, align 8 | |
store %"class.std::__1::allocator"* %561, %"class.std::__1::allocator"** %179, align 8 | |
%562 = load %"class.std::__1::allocator"** %179, align 8 | |
br label %563 | |
; <label>:563 ; preds = %352 | |
br label %564 | |
; <label>:564 ; preds = %563, %0 | |
%565 = phi %"class.std::__1::__function::__func"* [ %353, %563 ], [ null, %0 ] | |
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %212, align 8 | |
%566 = load %"class.std::__1::unique_ptr"** %212 | |
%567 = getelementptr inbounds %"class.std::__1::unique_ptr"* %566, i32 0, i32 0 | |
store %"class.std::__1::__compressed_pair.12"* %567, %"class.std::__1::__compressed_pair.12"** %211, align 8 | |
%568 = load %"class.std::__1::__compressed_pair.12"** %211 | |
%569 = bitcast %"class.std::__1::__compressed_pair.12"* %568 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %569, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %210, align 8 | |
%570 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %210 | |
%571 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %570, i32 0, i32 0 | |
%572 = load %"class.std::__1::__function::__func"** %571 | |
store %"class.std::__1::__function::__func"* %572, %"class.std::__1::__function::__func"** %__t.i, align 8 | |
%573 = getelementptr inbounds %"class.std::__1::unique_ptr"* %566, i32 0, i32 0 | |
store %"class.std::__1::__compressed_pair.12"* %573, %"class.std::__1::__compressed_pair.12"** %209, align 8 | |
%574 = load %"class.std::__1::__compressed_pair.12"** %209 | |
%575 = bitcast %"class.std::__1::__compressed_pair.12"* %574 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %575, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %208, align 8 | |
%576 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %208 | |
%577 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %576, i32 0, i32 0 | |
store %"class.std::__1::__function::__func"* null, %"class.std::__1::__function::__func"** %577 | |
%578 = load %"class.std::__1::__function::__func"** %__t.i, align 8 | |
%579 = bitcast %"class.std::__1::__function::__func"* %578 to %"class.std::__1::__function::__base"* | |
store i32 1, i32* %269 | |
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %239, align 8 | |
%580 = load %"class.std::__1::unique_ptr"** %239 | |
store %"class.std::__1::unique_ptr"* %580, %"class.std::__1::unique_ptr"** %238, align 8 | |
%581 = load %"class.std::__1::unique_ptr"** %238 | |
store %"class.std::__1::unique_ptr"* %581, %"class.std::__1::unique_ptr"** %236, align 8 | |
store %"class.std::__1::__function::__func"* null, %"class.std::__1::__function::__func"** %237, align 8 | |
%582 = load %"class.std::__1::unique_ptr"** %236 | |
%583 = getelementptr inbounds %"class.std::__1::unique_ptr"* %582, i32 0, i32 0 | |
store %"class.std::__1::__compressed_pair.12"* %583, %"class.std::__1::__compressed_pair.12"** %235, align 8 | |
%584 = load %"class.std::__1::__compressed_pair.12"** %235 | |
%585 = bitcast %"class.std::__1::__compressed_pair.12"* %584 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %585, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %234, align 8 | |
%586 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %234 | |
%587 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %586, i32 0, i32 0 | |
%588 = load %"class.std::__1::__function::__func"** %587 | |
store %"class.std::__1::__function::__func"* %588, %"class.std::__1::__function::__func"** %__tmp.i.i.i1, align 8 | |
%589 = load %"class.std::__1::__function::__func"** %237, align 8 | |
%590 = getelementptr inbounds %"class.std::__1::unique_ptr"* %582, i32 0, i32 0 | |
store %"class.std::__1::__compressed_pair.12"* %590, %"class.std::__1::__compressed_pair.12"** %225, align 8 | |
%591 = load %"class.std::__1::__compressed_pair.12"** %225 | |
%592 = bitcast %"class.std::__1::__compressed_pair.12"* %591 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %592, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %224, align 8 | |
%593 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %224 | |
%594 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %593, i32 0, i32 0 | |
store %"class.std::__1::__function::__func"* %589, %"class.std::__1::__function::__func"** %594 | |
%595 = load %"class.std::__1::__function::__func"** %__tmp.i.i.i1, align 8 | |
%596 = icmp ne %"class.std::__1::__function::__func"* %595, null | |
br i1 %596, label %597, label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit2" | |
; <label>:597 ; preds = %564 | |
%598 = getelementptr inbounds %"class.std::__1::unique_ptr"* %582, i32 0, i32 0 | |
store %"class.std::__1::__compressed_pair.12"* %598, %"class.std::__1::__compressed_pair.12"** %223, align 8 | |
%599 = load %"class.std::__1::__compressed_pair.12"** %223 | |
%600 = bitcast %"class.std::__1::__compressed_pair.12"* %599 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %600, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %222, align 8 | |
%601 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %222 | |
%602 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %601, i32 0, i32 1 | |
%603 = load %"class.std::__1::__function::__func"** %__tmp.i.i.i1, align 8 | |
store %"class.std::__1::__allocator_destructor"* %602, %"class.std::__1::__allocator_destructor"** %232, align 8 | |
store %"class.std::__1::__function::__func"* %603, %"class.std::__1::__function::__func"** %233, align 8 | |
%604 = load %"class.std::__1::__allocator_destructor"** %232 | |
%605 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %604, i32 0, i32 0 | |
%606 = load %"class.std::__1::allocator.1"** %605, align 8 | |
%607 = load %"class.std::__1::__function::__func"** %233, align 8 | |
%608 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %604, i32 0, i32 1 | |
%609 = load i64* %608, align 8 | |
store %"class.std::__1::allocator.1"* %606, %"class.std::__1::allocator.1"** %229, align 8 | |
store %"class.std::__1::__function::__func"* %607, %"class.std::__1::__function::__func"** %230, align 8 | |
store i64 %609, i64* %231, align 8 | |
%610 = load %"class.std::__1::allocator.1"** %229, align 8 | |
%611 = load %"class.std::__1::__function::__func"** %230, align 8 | |
%612 = load i64* %231, align 8 | |
store %"class.std::__1::allocator.1"* %610, %"class.std::__1::allocator.1"** %226, align 8 | |
store %"class.std::__1::__function::__func"* %611, %"class.std::__1::__function::__func"** %227, align 8 | |
store i64 %612, i64* %228, align 8 | |
%613 = load %"class.std::__1::allocator.1"** %226 | |
%614 = load %"class.std::__1::__function::__func"** %227, align 8 | |
%615 = bitcast %"class.std::__1::__function::__func"* %614 to i8* | |
call void @_ZdlPv(i8* %615) nounwind | |
br label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit2" | |
"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit2": ; preds = %564, %597 | |
ret %"class.std::__1::__function::__base"* %579 | |
; No predecessors! | |
%617 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) | |
cleanup | |
%618 = extractvalue { i8*, i32 } %617, 0 | |
store i8* %618, i8** %267 | |
%619 = extractvalue { i8*, i32 } %617, 1 | |
store i32 %619, i32* %268 | |
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %261, align 8 | |
%620 = load %"class.std::__1::unique_ptr"** %261 | |
store %"class.std::__1::unique_ptr"* %620, %"class.std::__1::unique_ptr"** %260, align 8 | |
%621 = load %"class.std::__1::unique_ptr"** %260 | |
store %"class.std::__1::unique_ptr"* %621, %"class.std::__1::unique_ptr"** %258, align 8 | |
store %"class.std::__1::__function::__func"* null, %"class.std::__1::__function::__func"** %259, align 8 | |
%622 = load %"class.std::__1::unique_ptr"** %258 | |
%623 = getelementptr inbounds %"class.std::__1::unique_ptr"* %622, i32 0, i32 0 | |
store %"class.std::__1::__compressed_pair.12"* %623, %"class.std::__1::__compressed_pair.12"** %257, align 8 | |
%624 = load %"class.std::__1::__compressed_pair.12"** %257 | |
%625 = bitcast %"class.std::__1::__compressed_pair.12"* %624 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %625, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %256, align 8 | |
%626 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %256 | |
%627 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %626, i32 0, i32 0 | |
%628 = load %"class.std::__1::__function::__func"** %627 | |
store %"class.std::__1::__function::__func"* %628, %"class.std::__1::__function::__func"** %__tmp.i.i.i, align 8 | |
%629 = load %"class.std::__1::__function::__func"** %259, align 8 | |
%630 = getelementptr inbounds %"class.std::__1::unique_ptr"* %622, i32 0, i32 0 | |
store %"class.std::__1::__compressed_pair.12"* %630, %"class.std::__1::__compressed_pair.12"** %247, align 8 | |
%631 = load %"class.std::__1::__compressed_pair.12"** %247 | |
%632 = bitcast %"class.std::__1::__compressed_pair.12"* %631 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %632, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %246, align 8 | |
%633 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %246 | |
%634 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %633, i32 0, i32 0 | |
store %"class.std::__1::__function::__func"* %629, %"class.std::__1::__function::__func"** %634 | |
%635 = load %"class.std::__1::__function::__func"** %__tmp.i.i.i, align 8 | |
%636 = icmp ne %"class.std::__1::__function::__func"* %635, null | |
br i1 %636, label %637, label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit" | |
; <label>:637 ; preds = %616 | |
%638 = getelementptr inbounds %"class.std::__1::unique_ptr"* %622, i32 0, i32 0 | |
store %"class.std::__1::__compressed_pair.12"* %638, %"class.std::__1::__compressed_pair.12"** %245, align 8 | |
%639 = load %"class.std::__1::__compressed_pair.12"** %245 | |
%640 = bitcast %"class.std::__1::__compressed_pair.12"* %639 to %"class.std::__1::__libcpp_compressed_pair_imp.13"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %640, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %244, align 8 | |
%641 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %244 | |
%642 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %641, i32 0, i32 1 | |
%643 = load %"class.std::__1::__function::__func"** %__tmp.i.i.i, align 8 | |
store %"class.std::__1::__allocator_destructor"* %642, %"class.std::__1::__allocator_destructor"** %254, align 8 | |
store %"class.std::__1::__function::__func"* %643, %"class.std::__1::__function::__func"** %255, align 8 | |
%644 = load %"class.std::__1::__allocator_destructor"** %254 | |
%645 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %644, i32 0, i32 0 | |
%646 = load %"class.std::__1::allocator.1"** %645, align 8 | |
%647 = load %"class.std::__1::__function::__func"** %255, align 8 | |
%648 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %644, i32 0, i32 1 | |
%649 = load i64* %648, align 8 | |
store %"class.std::__1::allocator.1"* %646, %"class.std::__1::allocator.1"** %251, align 8 | |
store %"class.std::__1::__function::__func"* %647, %"class.std::__1::__function::__func"** %252, align 8 | |
store i64 %649, i64* %253, align 8 | |
%650 = load %"class.std::__1::allocator.1"** %251, align 8 | |
%651 = load %"class.std::__1::__function::__func"** %252, align 8 | |
%652 = load i64* %253, align 8 | |
store %"class.std::__1::allocator.1"* %650, %"class.std::__1::allocator.1"** %248, align 8 | |
store %"class.std::__1::__function::__func"* %651, %"class.std::__1::__function::__func"** %249, align 8 | |
store i64 %652, i64* %250, align 8 | |
%653 = load %"class.std::__1::allocator.1"** %248 | |
%654 = load %"class.std::__1::__function::__func"** %249, align 8 | |
%655 = bitcast %"class.std::__1::__function::__func"* %654 to i8* | |
call void @_ZdlPv(i8* %655) nounwind | |
br label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit" | |
"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit": ; preds = %616, %637 | |
br label %656 | |
; <label>:656 ; preds = %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit" | |
%657 = load i8** %267 | |
%658 = load i32* %268 | |
%659 = insertvalue { i8*, i32 } undef, i8* %657, 0 | |
%660 = insertvalue { i8*, i32 } %659, i32 %658, 1 | |
resume { i8*, i32 } %660 | |
} | |
define internal void @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE"(%"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__base"* %__p) uwtable ssp align 2 { | |
%1 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%2 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%3 = alloca %class.anon*, align 8 | |
%4 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%5 = alloca %class.anon*, align 8 | |
%6 = alloca %class.anon*, align 8 | |
%7 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%8 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%9 = alloca %"struct.std::__1::__tuple_types.11", align 1 | |
%10 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%11 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%12 = alloca %class.anon*, align 8 | |
%13 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%14 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%15 = alloca %"struct.std::__1::__tuple_types.11", align 1 | |
%16 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%17 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%18 = alloca %class.anon*, align 8 | |
%19 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%20 = alloca %class.anon*, align 8 | |
%21 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%22 = alloca %"struct.std::__1::__tuple_types.11", align 1 | |
%23 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%24 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%25 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%26 = alloca %class.anon*, align 8 | |
%27 = alloca %class.anon*, align 8 | |
%28 = alloca %class.anon*, align 8 | |
%29 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%30 = alloca %class.anon*, align 8 | |
%31 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%32 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%33 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%34 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%35 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%36 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%37 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%38 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%39 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%40 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%41 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%42 = alloca %class.anon*, align 8 | |
%43 = alloca %class.anon*, align 8 | |
%44 = alloca %"class.std::__1::tuple.3", align 8 | |
%45 = alloca %class.anon*, align 8 | |
%46 = alloca %class.anon*, align 8 | |
%47 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%48 = alloca %class.anon*, align 8 | |
%49 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%50 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%51 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%52 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%53 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%54 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%55 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%56 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%57 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%58 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%59 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%60 = alloca %"class.std::__1::allocator"*, align 8 | |
%61 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8 | |
%62 = alloca %"class.std::__1::allocator"*, align 8 | |
%63 = alloca %"class.std::__1::allocator"*, align 8 | |
%64 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8 | |
%65 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%66 = alloca %"struct.std::__1::__tuple_types", align 1 | |
%67 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%68 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%69 = alloca %"class.std::__1::allocator"*, align 8 | |
%70 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8 | |
%71 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%72 = alloca %"struct.std::__1::__tuple_types", align 1 | |
%73 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%74 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%75 = alloca %"class.std::__1::allocator"*, align 8 | |
%76 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%77 = alloca %"class.std::__1::allocator"*, align 8 | |
%78 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%79 = alloca %"struct.std::__1::__tuple_types", align 1 | |
%80 = alloca %"struct.std::__1::__tuple_indices.9", align 1 | |
%81 = alloca %"struct.std::__1::__tuple_types.10", align 1 | |
%82 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%83 = alloca %"class.std::__1::allocator"*, align 8 | |
%84 = alloca %"class.std::__1::allocator"*, align 8 | |
%85 = alloca %"class.std::__1::allocator"*, align 8 | |
%86 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8 | |
%87 = alloca %"class.std::__1::allocator"*, align 8 | |
%88 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8 | |
%89 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%90 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8 | |
%91 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%92 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8 | |
%93 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%94 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%95 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%96 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%97 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%98 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%99 = alloca %"class.std::__1::allocator"*, align 8 | |
%100 = alloca %"class.std::__1::allocator"*, align 8 | |
%101 = alloca %"class.std::__1::tuple.6", align 8 | |
%102 = alloca %"class.std::__1::allocator"*, align 8 | |
%103 = alloca %"class.std::__1::allocator"*, align 8 | |
%104 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8 | |
%105 = alloca %"class.std::__1::allocator"*, align 8 | |
%106 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8 | |
%107 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%108 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8 | |
%109 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%110 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8 | |
%111 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%112 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%113 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%114 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%115 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%116 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%117 = alloca %class.anon*, align 8 | |
%118 = alloca %class.anon*, align 8 | |
%119 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%120 = alloca %class.anon*, align 8 | |
%121 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%122 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%123 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%124 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%125 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8 | |
%126 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%127 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%128 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%129 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%130 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%131 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%132 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%133 = alloca %"class.std::__1::allocator"*, align 8 | |
%134 = alloca %"class.std::__1::allocator"*, align 8 | |
%135 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8 | |
%136 = alloca %"class.std::__1::allocator"*, align 8 | |
%137 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8 | |
%138 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%139 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8 | |
%140 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%141 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8 | |
%142 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%143 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%144 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%145 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%146 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%147 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%148 = alloca %class.anon*, align 8 | |
%149 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8 | |
%150 = alloca %"class.std::__1::tuple.6"*, align 8 | |
%151 = alloca %"class.std::__1::allocator"*, align 8 | |
%152 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8 | |
%153 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%154 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%__pc.i.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%155 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%156 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%157 = alloca %"class.std::__1::tuple.3"*, align 8 | |
%158 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%__pc.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%159 = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%160 = alloca %"class.std::__1::tuple.3", align 8 | |
%161 = alloca %"class.std::__1::tuple.6", align 8 | |
%162 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%163 = alloca %"struct.std::__1::__tuple_indices", align 1 | |
%164 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%__pc.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%165 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%166 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%167 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%168 = alloca %class.anon*, align 8 | |
%169 = alloca %"class.std::__1::allocator"*, align 8 | |
%170 = alloca %"struct.std::__1::piecewise_construct_t", align 1 | |
%171 = alloca %"class.std::__1::tuple.3", align 8 | |
%172 = alloca %"class.std::__1::tuple.3", align 8 | |
%173 = alloca i8* | |
%174 = alloca i32 | |
%175 = alloca %"class.std::__1::tuple.6", align 8 | |
%176 = alloca %"class.std::__1::tuple.6", align 8 | |
%177 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%178 = alloca %class.anon*, align 8 | |
%179 = alloca %"class.std::__1::allocator"*, align 8 | |
%180 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%181 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%182 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%183 = alloca %"class.std::__1::__function::__base"*, align 8 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %182, align 8 | |
store %"class.std::__1::__function::__base"* %__p, %"class.std::__1::__function::__base"** %183, align 8 | |
%184 = load %"class.std::__1::__function::__func"** %182 | |
%185 = load %"class.std::__1::__function::__base"** %183, align 8 | |
%186 = bitcast %"class.std::__1::__function::__base"* %185 to i8* | |
%187 = icmp eq i8* %186, null | |
br i1 %187, label %399, label %188 | |
; <label>:188 ; preds = %0 | |
%189 = bitcast i8* %186 to %"class.std::__1::__function::__func"* | |
%190 = getelementptr inbounds %"class.std::__1::__function::__func"* %184, i32 0, i32 1 | |
store %"class.std::__1::__compressed_pair"* %190, %"class.std::__1::__compressed_pair"** %181, align 8 | |
%191 = load %"class.std::__1::__compressed_pair"** %181 | |
%192 = bitcast %"class.std::__1::__compressed_pair"* %191 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %192, %"class.std::__1::__libcpp_compressed_pair_imp"** %180, align 8 | |
%193 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %180 | |
%194 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %193 to %class.anon* | |
%195 = getelementptr inbounds %"class.std::__1::__function::__func"* %184, i32 0, i32 1 | |
store %"class.std::__1::__compressed_pair"* %195, %"class.std::__1::__compressed_pair"** %2, align 8 | |
%196 = load %"class.std::__1::__compressed_pair"** %2 | |
%197 = bitcast %"class.std::__1::__compressed_pair"* %196 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %197, %"class.std::__1::__libcpp_compressed_pair_imp"** %1, align 8 | |
%198 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %1 | |
%199 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %198 to %"class.std::__1::allocator"* | |
store %"class.std::__1::__function::__func"* %189, %"class.std::__1::__function::__func"** %177, align 8 | |
store %class.anon* %194, %class.anon** %178, align 8 | |
store %"class.std::__1::allocator"* %199, %"class.std::__1::allocator"** %179, align 8 | |
%200 = load %"class.std::__1::__function::__func"** %177 | |
%201 = load %class.anon** %178 | |
%202 = load %"class.std::__1::allocator"** %179 | |
store %"class.std::__1::__function::__func"* %200, %"class.std::__1::__function::__func"** %167, align 8 | |
store %class.anon* %201, %class.anon** %168, align 8 | |
store %"class.std::__1::allocator"* %202, %"class.std::__1::allocator"** %169, align 8 | |
%203 = load %"class.std::__1::__function::__func"** %167 | |
%204 = bitcast %"class.std::__1::__function::__func"* %203 to %"class.std::__1::__function::__base"* | |
store %"class.std::__1::__function::__base"* %204, %"class.std::__1::__function::__base"** %166, align 8 | |
%205 = load %"class.std::__1::__function::__base"** %166 | |
%206 = bitcast %"class.std::__1::__function::__base"* %205 to i8*** | |
store i8** getelementptr inbounds ([11 x i8*]* @_ZTVNSt3__110__function6__baseIFiiEEE, i64 0, i64 2), i8*** %206 | |
%207 = bitcast %"class.std::__1::__function::__func"* %203 to i8*** | |
store i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2), i8*** %207 | |
%208 = getelementptr inbounds %"class.std::__1::__function::__func"* %203, i32 0, i32 1 | |
%209 = load %class.anon** %168, align 8 | |
store %class.anon* %209, %class.anon** %43, align 8 | |
%210 = load %class.anon** %43, align 8 | |
store %class.anon* %210, %class.anon** %42, align 8 | |
%211 = load %class.anon** %42, align 8 | |
store %"class.std::__1::tuple.3"* %44, %"class.std::__1::tuple.3"** %25, align 8 | |
store %class.anon* %211, %class.anon** %26, align 8 | |
%212 = load %"class.std::__1::tuple.3"** %25 | |
%213 = load %class.anon** %26 | |
store %"class.std::__1::tuple.3"* %212, %"class.std::__1::tuple.3"** %19, align 8 | |
store %class.anon* %213, %class.anon** %20, align 8 | |
%214 = load %"class.std::__1::tuple.3"** %19 | |
%215 = getelementptr inbounds %"class.std::__1::tuple.3"* %214, i32 0, i32 0 | |
%216 = load %class.anon** %20, align 8 | |
store %"struct.std::__1::__tuple_impl.4"* %215, %"struct.std::__1::__tuple_impl.4"** %13, align 8 | |
store %class.anon* %216, %class.anon** %18, align 8 | |
%217 = load %"struct.std::__1::__tuple_impl.4"** %13 | |
%218 = load %class.anon** %18 | |
store %"struct.std::__1::__tuple_impl.4"* %217, %"struct.std::__1::__tuple_impl.4"** %7, align 8 | |
store %class.anon* %218, %class.anon** %12, align 8 | |
%219 = load %"struct.std::__1::__tuple_impl.4"** %7 | |
%220 = bitcast %"struct.std::__1::__tuple_impl.4"* %219 to %"class.std::__1::__tuple_leaf.5"* | |
%221 = load %class.anon** %12, align 8 | |
store %class.anon* %221, %class.anon** %6, align 8 | |
%222 = load %class.anon** %6, align 8 | |
store %"class.std::__1::__tuple_leaf.5"* %220, %"class.std::__1::__tuple_leaf.5"** %4, align 8 | |
store %class.anon* %222, %class.anon** %5, align 8 | |
%223 = load %"class.std::__1::__tuple_leaf.5"** %4 | |
%224 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %223, i32 0, i32 0 | |
%225 = load %class.anon** %5, align 8 | |
store %class.anon* %225, %class.anon** %3, align 8 | |
%226 = load %class.anon** %3, align 8 | |
store %class.anon* %226, %class.anon** %224, align 8 | |
store %"class.std::__1::tuple.3"* %172, %"class.std::__1::tuple.3"** %40, align 8 | |
store %"class.std::__1::tuple.3"* %44, %"class.std::__1::tuple.3"** %41, align 8 | |
%227 = load %"class.std::__1::tuple.3"** %40 | |
%228 = load %"class.std::__1::tuple.3"** %41 | |
store %"class.std::__1::tuple.3"* %227, %"class.std::__1::tuple.3"** %38, align 8 | |
store %"class.std::__1::tuple.3"* %228, %"class.std::__1::tuple.3"** %39, align 8 | |
%229 = load %"class.std::__1::tuple.3"** %38 | |
%230 = getelementptr inbounds %"class.std::__1::tuple.3"* %229, i32 0, i32 0 | |
%231 = load %"class.std::__1::tuple.3"** %39, align 8 | |
store %"class.std::__1::tuple.3"* %231, %"class.std::__1::tuple.3"** %37, align 8 | |
%232 = load %"class.std::__1::tuple.3"** %37, align 8 | |
store %"struct.std::__1::__tuple_impl.4"* %230, %"struct.std::__1::__tuple_impl.4"** %35, align 8 | |
store %"class.std::__1::tuple.3"* %232, %"class.std::__1::tuple.3"** %36, align 8 | |
%233 = load %"struct.std::__1::__tuple_impl.4"** %35 | |
%234 = load %"class.std::__1::tuple.3"** %36 | |
store %"struct.std::__1::__tuple_impl.4"* %233, %"struct.std::__1::__tuple_impl.4"** %33, align 8 | |
store %"class.std::__1::tuple.3"* %234, %"class.std::__1::tuple.3"** %34, align 8 | |
%235 = load %"struct.std::__1::__tuple_impl.4"** %33 | |
%236 = bitcast %"struct.std::__1::__tuple_impl.4"* %235 to %"class.std::__1::__tuple_leaf.5"* | |
%237 = load %"class.std::__1::tuple.3"** %34, align 8 | |
store %"class.std::__1::tuple.3"* %237, %"class.std::__1::tuple.3"** %32, align 8 | |
%238 = load %"class.std::__1::tuple.3"** %32, align 8 | |
%239 = getelementptr inbounds %"class.std::__1::tuple.3"* %238, i32 0, i32 0 | |
%240 = bitcast %"struct.std::__1::__tuple_impl.4"* %239 to %"class.std::__1::__tuple_leaf.5"* | |
store %"class.std::__1::__tuple_leaf.5"* %240, %"class.std::__1::__tuple_leaf.5"** %31, align 8 | |
%241 = load %"class.std::__1::__tuple_leaf.5"** %31 | |
%242 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %241, i32 0, i32 0 | |
%243 = load %class.anon** %242, align 8 | |
store %class.anon* %243, %class.anon** %27, align 8 | |
%244 = load %class.anon** %27, align 8 | |
store %"class.std::__1::__tuple_leaf.5"* %236, %"class.std::__1::__tuple_leaf.5"** %29, align 8 | |
store %class.anon* %244, %class.anon** %30, align 8 | |
%245 = load %"class.std::__1::__tuple_leaf.5"** %29 | |
%246 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %245, i32 0, i32 0 | |
%247 = load %class.anon** %30, align 8 | |
store %class.anon* %247, %class.anon** %28, align 8 | |
%248 = load %class.anon** %28, align 8 | |
store %class.anon* %248, %class.anon** %246, align 8 | |
store %"class.std::__1::tuple.3"* %171, %"class.std::__1::tuple.3"** %58, align 8 | |
store %"class.std::__1::tuple.3"* %172, %"class.std::__1::tuple.3"** %59, align 8 | |
%249 = load %"class.std::__1::tuple.3"** %58 | |
%250 = load %"class.std::__1::tuple.3"** %59 | |
store %"class.std::__1::tuple.3"* %249, %"class.std::__1::tuple.3"** %56, align 8 | |
store %"class.std::__1::tuple.3"* %250, %"class.std::__1::tuple.3"** %57, align 8 | |
%251 = load %"class.std::__1::tuple.3"** %56 | |
%252 = getelementptr inbounds %"class.std::__1::tuple.3"* %251, i32 0, i32 0 | |
%253 = load %"class.std::__1::tuple.3"** %57, align 8 | |
store %"class.std::__1::tuple.3"* %253, %"class.std::__1::tuple.3"** %55, align 8 | |
%254 = load %"class.std::__1::tuple.3"** %55, align 8 | |
store %"struct.std::__1::__tuple_impl.4"* %252, %"struct.std::__1::__tuple_impl.4"** %53, align 8 | |
store %"class.std::__1::tuple.3"* %254, %"class.std::__1::tuple.3"** %54, align 8 | |
%255 = load %"struct.std::__1::__tuple_impl.4"** %53 | |
%256 = load %"class.std::__1::tuple.3"** %54 | |
store %"struct.std::__1::__tuple_impl.4"* %255, %"struct.std::__1::__tuple_impl.4"** %51, align 8 | |
store %"class.std::__1::tuple.3"* %256, %"class.std::__1::tuple.3"** %52, align 8 | |
%257 = load %"struct.std::__1::__tuple_impl.4"** %51 | |
%258 = bitcast %"struct.std::__1::__tuple_impl.4"* %257 to %"class.std::__1::__tuple_leaf.5"* | |
%259 = load %"class.std::__1::tuple.3"** %52, align 8 | |
store %"class.std::__1::tuple.3"* %259, %"class.std::__1::tuple.3"** %50, align 8 | |
%260 = load %"class.std::__1::tuple.3"** %50, align 8 | |
%261 = getelementptr inbounds %"class.std::__1::tuple.3"* %260, i32 0, i32 0 | |
%262 = bitcast %"struct.std::__1::__tuple_impl.4"* %261 to %"class.std::__1::__tuple_leaf.5"* | |
store %"class.std::__1::__tuple_leaf.5"* %262, %"class.std::__1::__tuple_leaf.5"** %49, align 8 | |
%263 = load %"class.std::__1::__tuple_leaf.5"** %49 | |
%264 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %263, i32 0, i32 0 | |
%265 = load %class.anon** %264, align 8 | |
store %class.anon* %265, %class.anon** %45, align 8 | |
%266 = load %class.anon** %45, align 8 | |
store %"class.std::__1::__tuple_leaf.5"* %258, %"class.std::__1::__tuple_leaf.5"** %47, align 8 | |
store %class.anon* %266, %class.anon** %48, align 8 | |
%267 = load %"class.std::__1::__tuple_leaf.5"** %47 | |
%268 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %267, i32 0, i32 0 | |
%269 = load %class.anon** %48, align 8 | |
store %class.anon* %269, %class.anon** %46, align 8 | |
%270 = load %class.anon** %46, align 8 | |
store %class.anon* %270, %class.anon** %268, align 8 | |
%271 = load %"class.std::__1::allocator"** %169, align 8 | |
store %"class.std::__1::allocator"* %271, %"class.std::__1::allocator"** %100, align 8 | |
%272 = load %"class.std::__1::allocator"** %100, align 8 | |
store %"class.std::__1::allocator"* %272, %"class.std::__1::allocator"** %99, align 8 | |
%273 = load %"class.std::__1::allocator"** %99, align 8 | |
store %"class.std::__1::tuple.6"* %101, %"class.std::__1::tuple.6"** %82, align 8 | |
store %"class.std::__1::allocator"* %273, %"class.std::__1::allocator"** %83, align 8 | |
%274 = load %"class.std::__1::tuple.6"** %82 | |
%275 = load %"class.std::__1::allocator"** %83 | |
store %"class.std::__1::tuple.6"* %274, %"class.std::__1::tuple.6"** %76, align 8 | |
store %"class.std::__1::allocator"* %275, %"class.std::__1::allocator"** %77, align 8 | |
%276 = load %"class.std::__1::tuple.6"** %76 | |
%277 = getelementptr inbounds %"class.std::__1::tuple.6"* %276, i32 0, i32 0 | |
%278 = load %"class.std::__1::allocator"** %77, align 8 | |
store %"struct.std::__1::__tuple_impl.7"* %277, %"struct.std::__1::__tuple_impl.7"** %70, align 8 | |
store %"class.std::__1::allocator"* %278, %"class.std::__1::allocator"** %75, align 8 | |
%279 = load %"struct.std::__1::__tuple_impl.7"** %70 | |
%280 = load %"class.std::__1::allocator"** %75 | |
store %"struct.std::__1::__tuple_impl.7"* %279, %"struct.std::__1::__tuple_impl.7"** %64, align 8 | |
store %"class.std::__1::allocator"* %280, %"class.std::__1::allocator"** %69, align 8 | |
%281 = load %"struct.std::__1::__tuple_impl.7"** %64 | |
%282 = bitcast %"struct.std::__1::__tuple_impl.7"* %281 to %"class.std::__1::__tuple_leaf.8"* | |
%283 = load %"class.std::__1::allocator"** %69, align 8 | |
store %"class.std::__1::allocator"* %283, %"class.std::__1::allocator"** %63, align 8 | |
%284 = load %"class.std::__1::allocator"** %63, align 8 | |
store %"class.std::__1::__tuple_leaf.8"* %282, %"class.std::__1::__tuple_leaf.8"** %61, align 8 | |
store %"class.std::__1::allocator"* %284, %"class.std::__1::allocator"** %62, align 8 | |
%285 = load %"class.std::__1::__tuple_leaf.8"** %61 | |
%286 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %285, i32 0, i32 0 | |
%287 = load %"class.std::__1::allocator"** %62, align 8 | |
store %"class.std::__1::allocator"* %287, %"class.std::__1::allocator"** %60, align 8 | |
%288 = load %"class.std::__1::allocator"** %60, align 8 | |
store %"class.std::__1::allocator"* %288, %"class.std::__1::allocator"** %286, align 8 | |
store %"class.std::__1::tuple.6"* %176, %"class.std::__1::tuple.6"** %97, align 8 | |
store %"class.std::__1::tuple.6"* %101, %"class.std::__1::tuple.6"** %98, align 8 | |
%289 = load %"class.std::__1::tuple.6"** %97 | |
%290 = load %"class.std::__1::tuple.6"** %98 | |
store %"class.std::__1::tuple.6"* %289, %"class.std::__1::tuple.6"** %95, align 8 | |
store %"class.std::__1::tuple.6"* %290, %"class.std::__1::tuple.6"** %96, align 8 | |
%291 = load %"class.std::__1::tuple.6"** %95 | |
%292 = getelementptr inbounds %"class.std::__1::tuple.6"* %291, i32 0, i32 0 | |
%293 = load %"class.std::__1::tuple.6"** %96, align 8 | |
store %"class.std::__1::tuple.6"* %293, %"class.std::__1::tuple.6"** %94, align 8 | |
%294 = load %"class.std::__1::tuple.6"** %94, align 8 | |
store %"struct.std::__1::__tuple_impl.7"* %292, %"struct.std::__1::__tuple_impl.7"** %92, align 8 | |
store %"class.std::__1::tuple.6"* %294, %"class.std::__1::tuple.6"** %93, align 8 | |
%295 = load %"struct.std::__1::__tuple_impl.7"** %92 | |
%296 = load %"class.std::__1::tuple.6"** %93 | |
store %"struct.std::__1::__tuple_impl.7"* %295, %"struct.std::__1::__tuple_impl.7"** %90, align 8 | |
store %"class.std::__1::tuple.6"* %296, %"class.std::__1::tuple.6"** %91, align 8 | |
%297 = load %"struct.std::__1::__tuple_impl.7"** %90 | |
%298 = bitcast %"struct.std::__1::__tuple_impl.7"* %297 to %"class.std::__1::__tuple_leaf.8"* | |
%299 = load %"class.std::__1::tuple.6"** %91, align 8 | |
store %"class.std::__1::tuple.6"* %299, %"class.std::__1::tuple.6"** %89, align 8 | |
%300 = load %"class.std::__1::tuple.6"** %89, align 8 | |
%301 = getelementptr inbounds %"class.std::__1::tuple.6"* %300, i32 0, i32 0 | |
%302 = bitcast %"struct.std::__1::__tuple_impl.7"* %301 to %"class.std::__1::__tuple_leaf.8"* | |
store %"class.std::__1::__tuple_leaf.8"* %302, %"class.std::__1::__tuple_leaf.8"** %88, align 8 | |
%303 = load %"class.std::__1::__tuple_leaf.8"** %88 | |
%304 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %303, i32 0, i32 0 | |
%305 = load %"class.std::__1::allocator"** %304, align 8 | |
store %"class.std::__1::allocator"* %305, %"class.std::__1::allocator"** %84, align 8 | |
%306 = load %"class.std::__1::allocator"** %84, align 8 | |
store %"class.std::__1::__tuple_leaf.8"* %298, %"class.std::__1::__tuple_leaf.8"** %86, align 8 | |
store %"class.std::__1::allocator"* %306, %"class.std::__1::allocator"** %87, align 8 | |
%307 = load %"class.std::__1::__tuple_leaf.8"** %86 | |
%308 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %307, i32 0, i32 0 | |
%309 = load %"class.std::__1::allocator"** %87, align 8 | |
store %"class.std::__1::allocator"* %309, %"class.std::__1::allocator"** %85, align 8 | |
%310 = load %"class.std::__1::allocator"** %85, align 8 | |
store %"class.std::__1::allocator"* %310, %"class.std::__1::allocator"** %308, align 8 | |
store %"class.std::__1::tuple.6"* %175, %"class.std::__1::tuple.6"** %115, align 8 | |
store %"class.std::__1::tuple.6"* %176, %"class.std::__1::tuple.6"** %116, align 8 | |
%311 = load %"class.std::__1::tuple.6"** %115 | |
%312 = load %"class.std::__1::tuple.6"** %116 | |
store %"class.std::__1::tuple.6"* %311, %"class.std::__1::tuple.6"** %113, align 8 | |
store %"class.std::__1::tuple.6"* %312, %"class.std::__1::tuple.6"** %114, align 8 | |
%313 = load %"class.std::__1::tuple.6"** %113 | |
%314 = getelementptr inbounds %"class.std::__1::tuple.6"* %313, i32 0, i32 0 | |
%315 = load %"class.std::__1::tuple.6"** %114, align 8 | |
store %"class.std::__1::tuple.6"* %315, %"class.std::__1::tuple.6"** %112, align 8 | |
%316 = load %"class.std::__1::tuple.6"** %112, align 8 | |
store %"struct.std::__1::__tuple_impl.7"* %314, %"struct.std::__1::__tuple_impl.7"** %110, align 8 | |
store %"class.std::__1::tuple.6"* %316, %"class.std::__1::tuple.6"** %111, align 8 | |
%317 = load %"struct.std::__1::__tuple_impl.7"** %110 | |
%318 = load %"class.std::__1::tuple.6"** %111 | |
store %"struct.std::__1::__tuple_impl.7"* %317, %"struct.std::__1::__tuple_impl.7"** %108, align 8 | |
store %"class.std::__1::tuple.6"* %318, %"class.std::__1::tuple.6"** %109, align 8 | |
%319 = load %"struct.std::__1::__tuple_impl.7"** %108 | |
%320 = bitcast %"struct.std::__1::__tuple_impl.7"* %319 to %"class.std::__1::__tuple_leaf.8"* | |
%321 = load %"class.std::__1::tuple.6"** %109, align 8 | |
store %"class.std::__1::tuple.6"* %321, %"class.std::__1::tuple.6"** %107, align 8 | |
%322 = load %"class.std::__1::tuple.6"** %107, align 8 | |
%323 = getelementptr inbounds %"class.std::__1::tuple.6"* %322, i32 0, i32 0 | |
%324 = bitcast %"struct.std::__1::__tuple_impl.7"* %323 to %"class.std::__1::__tuple_leaf.8"* | |
store %"class.std::__1::__tuple_leaf.8"* %324, %"class.std::__1::__tuple_leaf.8"** %106, align 8 | |
%325 = load %"class.std::__1::__tuple_leaf.8"** %106 | |
%326 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %325, i32 0, i32 0 | |
%327 = load %"class.std::__1::allocator"** %326, align 8 | |
store %"class.std::__1::allocator"* %327, %"class.std::__1::allocator"** %102, align 8 | |
%328 = load %"class.std::__1::allocator"** %102, align 8 | |
store %"class.std::__1::__tuple_leaf.8"* %320, %"class.std::__1::__tuple_leaf.8"** %104, align 8 | |
store %"class.std::__1::allocator"* %328, %"class.std::__1::allocator"** %105, align 8 | |
%329 = load %"class.std::__1::__tuple_leaf.8"** %104 | |
%330 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %329, i32 0, i32 0 | |
%331 = load %"class.std::__1::allocator"** %105, align 8 | |
store %"class.std::__1::allocator"* %331, %"class.std::__1::allocator"** %103, align 8 | |
%332 = load %"class.std::__1::allocator"** %103, align 8 | |
store %"class.std::__1::allocator"* %332, %"class.std::__1::allocator"** %330, align 8 | |
store %"class.std::__1::__compressed_pair"* %208, %"class.std::__1::__compressed_pair"** %164, align 8 | |
%333 = load %"class.std::__1::__compressed_pair"** %164 | |
store %"class.std::__1::__compressed_pair"* %333, %"class.std::__1::__compressed_pair"** %158, align 8 | |
%334 = load %"class.std::__1::__compressed_pair"** %158 | |
%335 = bitcast %"class.std::__1::__compressed_pair"* %334 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::tuple.3"* %171, %"class.std::__1::tuple.3"** %157, align 8 | |
%336 = load %"class.std::__1::tuple.3"** %157, align 8 | |
store %"class.std::__1::tuple.3"* %160, %"class.std::__1::tuple.3"** %130, align 8 | |
store %"class.std::__1::tuple.3"* %336, %"class.std::__1::tuple.3"** %131, align 8 | |
%337 = load %"class.std::__1::tuple.3"** %130 | |
%338 = load %"class.std::__1::tuple.3"** %131 | |
store %"class.std::__1::tuple.3"* %337, %"class.std::__1::tuple.3"** %128, align 8 | |
store %"class.std::__1::tuple.3"* %338, %"class.std::__1::tuple.3"** %129, align 8 | |
%339 = load %"class.std::__1::tuple.3"** %128 | |
%340 = getelementptr inbounds %"class.std::__1::tuple.3"* %339, i32 0, i32 0 | |
%341 = load %"class.std::__1::tuple.3"** %129, align 8 | |
store %"class.std::__1::tuple.3"* %341, %"class.std::__1::tuple.3"** %127, align 8 | |
%342 = load %"class.std::__1::tuple.3"** %127, align 8 | |
store %"struct.std::__1::__tuple_impl.4"* %340, %"struct.std::__1::__tuple_impl.4"** %125, align 8 | |
store %"class.std::__1::tuple.3"* %342, %"class.std::__1::tuple.3"** %126, align 8 | |
%343 = load %"struct.std::__1::__tuple_impl.4"** %125 | |
%344 = load %"class.std::__1::tuple.3"** %126 | |
store %"struct.std::__1::__tuple_impl.4"* %343, %"struct.std::__1::__tuple_impl.4"** %123, align 8 | |
store %"class.std::__1::tuple.3"* %344, %"class.std::__1::tuple.3"** %124, align 8 | |
%345 = load %"struct.std::__1::__tuple_impl.4"** %123 | |
%346 = bitcast %"struct.std::__1::__tuple_impl.4"* %345 to %"class.std::__1::__tuple_leaf.5"* | |
%347 = load %"class.std::__1::tuple.3"** %124, align 8 | |
store %"class.std::__1::tuple.3"* %347, %"class.std::__1::tuple.3"** %122, align 8 | |
%348 = load %"class.std::__1::tuple.3"** %122, align 8 | |
%349 = getelementptr inbounds %"class.std::__1::tuple.3"* %348, i32 0, i32 0 | |
%350 = bitcast %"struct.std::__1::__tuple_impl.4"* %349 to %"class.std::__1::__tuple_leaf.5"* | |
store %"class.std::__1::__tuple_leaf.5"* %350, %"class.std::__1::__tuple_leaf.5"** %121, align 8 | |
%351 = load %"class.std::__1::__tuple_leaf.5"** %121 | |
%352 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %351, i32 0, i32 0 | |
%353 = load %class.anon** %352, align 8 | |
store %class.anon* %353, %class.anon** %117, align 8 | |
%354 = load %class.anon** %117, align 8 | |
store %"class.std::__1::__tuple_leaf.5"* %346, %"class.std::__1::__tuple_leaf.5"** %119, align 8 | |
store %class.anon* %354, %class.anon** %120, align 8 | |
%355 = load %"class.std::__1::__tuple_leaf.5"** %119 | |
%356 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %355, i32 0, i32 0 | |
%357 = load %class.anon** %120, align 8 | |
store %class.anon* %357, %class.anon** %118, align 8 | |
%358 = load %class.anon** %118, align 8 | |
store %class.anon* %358, %class.anon** %356, align 8 | |
store %"class.std::__1::tuple.6"* %175, %"class.std::__1::tuple.6"** %132, align 8 | |
%359 = load %"class.std::__1::tuple.6"** %132, align 8 | |
store %"class.std::__1::tuple.6"* %161, %"class.std::__1::tuple.6"** %146, align 8 | |
store %"class.std::__1::tuple.6"* %359, %"class.std::__1::tuple.6"** %147, align 8 | |
%360 = load %"class.std::__1::tuple.6"** %146 | |
%361 = load %"class.std::__1::tuple.6"** %147 | |
store %"class.std::__1::tuple.6"* %360, %"class.std::__1::tuple.6"** %144, align 8 | |
store %"class.std::__1::tuple.6"* %361, %"class.std::__1::tuple.6"** %145, align 8 | |
%362 = load %"class.std::__1::tuple.6"** %144 | |
%363 = getelementptr inbounds %"class.std::__1::tuple.6"* %362, i32 0, i32 0 | |
%364 = load %"class.std::__1::tuple.6"** %145, align 8 | |
store %"class.std::__1::tuple.6"* %364, %"class.std::__1::tuple.6"** %143, align 8 | |
%365 = load %"class.std::__1::tuple.6"** %143, align 8 | |
store %"struct.std::__1::__tuple_impl.7"* %363, %"struct.std::__1::__tuple_impl.7"** %141, align 8 | |
store %"class.std::__1::tuple.6"* %365, %"class.std::__1::tuple.6"** %142, align 8 | |
%366 = load %"struct.std::__1::__tuple_impl.7"** %141 | |
%367 = load %"class.std::__1::tuple.6"** %142 | |
store %"struct.std::__1::__tuple_impl.7"* %366, %"struct.std::__1::__tuple_impl.7"** %139, align 8 | |
store %"class.std::__1::tuple.6"* %367, %"class.std::__1::tuple.6"** %140, align 8 | |
%368 = load %"struct.std::__1::__tuple_impl.7"** %139 | |
%369 = bitcast %"struct.std::__1::__tuple_impl.7"* %368 to %"class.std::__1::__tuple_leaf.8"* | |
%370 = load %"class.std::__1::tuple.6"** %140, align 8 | |
store %"class.std::__1::tuple.6"* %370, %"class.std::__1::tuple.6"** %138, align 8 | |
%371 = load %"class.std::__1::tuple.6"** %138, align 8 | |
%372 = getelementptr inbounds %"class.std::__1::tuple.6"* %371, i32 0, i32 0 | |
%373 = bitcast %"struct.std::__1::__tuple_impl.7"* %372 to %"class.std::__1::__tuple_leaf.8"* | |
store %"class.std::__1::__tuple_leaf.8"* %373, %"class.std::__1::__tuple_leaf.8"** %137, align 8 | |
%374 = load %"class.std::__1::__tuple_leaf.8"** %137 | |
%375 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %374, i32 0, i32 0 | |
%376 = load %"class.std::__1::allocator"** %375, align 8 | |
store %"class.std::__1::allocator"* %376, %"class.std::__1::allocator"** %133, align 8 | |
%377 = load %"class.std::__1::allocator"** %133, align 8 | |
store %"class.std::__1::__tuple_leaf.8"* %369, %"class.std::__1::__tuple_leaf.8"** %135, align 8 | |
store %"class.std::__1::allocator"* %377, %"class.std::__1::allocator"** %136, align 8 | |
%378 = load %"class.std::__1::__tuple_leaf.8"** %135 | |
%379 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %378, i32 0, i32 0 | |
%380 = load %"class.std::__1::allocator"** %136, align 8 | |
store %"class.std::__1::allocator"* %380, %"class.std::__1::allocator"** %134, align 8 | |
%381 = load %"class.std::__1::allocator"** %134, align 8 | |
store %"class.std::__1::allocator"* %381, %"class.std::__1::allocator"** %379, align 8 | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %335, %"class.std::__1::__libcpp_compressed_pair_imp"** %154, align 8 | |
%382 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %154 | |
%383 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %382 to %class.anon* | |
store %"class.std::__1::tuple.3"* %160, %"class.std::__1::tuple.3"** %153, align 8 | |
%384 = load %"class.std::__1::tuple.3"** %153, align 8 | |
%385 = getelementptr inbounds %"class.std::__1::tuple.3"* %384, i32 0, i32 0 | |
%386 = bitcast %"struct.std::__1::__tuple_impl.4"* %385 to %"class.std::__1::__tuple_leaf.5"* | |
store %"class.std::__1::__tuple_leaf.5"* %386, %"class.std::__1::__tuple_leaf.5"** %152, align 8 | |
%387 = load %"class.std::__1::__tuple_leaf.5"** %152 | |
%388 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %387, i32 0, i32 0 | |
%389 = load %class.anon** %388, align 8 | |
store %class.anon* %389, %class.anon** %148, align 8 | |
%390 = load %class.anon** %148, align 8 | |
%391 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %382 to %"class.std::__1::allocator"* | |
store %"class.std::__1::tuple.6"* %161, %"class.std::__1::tuple.6"** %150, align 8 | |
%392 = load %"class.std::__1::tuple.6"** %150, align 8 | |
%393 = getelementptr inbounds %"class.std::__1::tuple.6"* %392, i32 0, i32 0 | |
%394 = bitcast %"struct.std::__1::__tuple_impl.7"* %393 to %"class.std::__1::__tuple_leaf.8"* | |
store %"class.std::__1::__tuple_leaf.8"* %394, %"class.std::__1::__tuple_leaf.8"** %149, align 8 | |
%395 = load %"class.std::__1::__tuple_leaf.8"** %149 | |
%396 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %395, i32 0, i32 0 | |
%397 = load %"class.std::__1::allocator"** %396, align 8 | |
store %"class.std::__1::allocator"* %397, %"class.std::__1::allocator"** %151, align 8 | |
%398 = load %"class.std::__1::allocator"** %151, align 8 | |
br label %399 | |
; <label>:399 ; preds = %188, %0 | |
%400 = phi %"class.std::__1::__function::__func"* [ %189, %188 ], [ null, %0 ] | |
ret void | |
} | |
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv"(%"class.std::__1::__function::__func"* %this) nounwind uwtable ssp align 2 { | |
%1 = alloca %"class.std::__1::__function::__func"*, align 8 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %1, align 8 | |
%2 = load %"class.std::__1::__function::__func"** %1 | |
%3 = getelementptr inbounds %"class.std::__1::__function::__func"* %2, i32 0, i32 1 | |
ret void | |
} | |
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv"(%"class.std::__1::__function::__func"* %this) nounwind uwtable ssp align 2 { | |
%1 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%2 = alloca %"class.std::__1::allocator"*, align 8 | |
%3 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%4 = alloca %"class.std::__1::allocator"*, align 8 | |
%5 = alloca %"class.std::__1::allocator.1"*, align 8 | |
%6 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%7 = alloca i64, align 8 | |
%8 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%9 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%10 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%__a = alloca %"class.std::__1::allocator.1", align 1 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %10, align 8 | |
%11 = load %"class.std::__1::__function::__func"** %10 | |
%12 = getelementptr inbounds %"class.std::__1::__function::__func"* %11, i32 0, i32 1 | |
store %"class.std::__1::__compressed_pair"* %12, %"class.std::__1::__compressed_pair"** %9, align 8 | |
%13 = load %"class.std::__1::__compressed_pair"** %9 | |
%14 = bitcast %"class.std::__1::__compressed_pair"* %13 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %14, %"class.std::__1::__libcpp_compressed_pair_imp"** %8, align 8 | |
%15 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %8 | |
%16 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %15 to %"class.std::__1::allocator"* | |
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %3, align 8 | |
store %"class.std::__1::allocator"* %16, %"class.std::__1::allocator"** %4, align 8 | |
%17 = load %"class.std::__1::allocator.1"** %3 | |
%18 = load %"class.std::__1::allocator"** %4 | |
store %"class.std::__1::allocator.1"* %17, %"class.std::__1::allocator.1"** %1, align 8 | |
store %"class.std::__1::allocator"* %18, %"class.std::__1::allocator"** %2, align 8 | |
%19 = load %"class.std::__1::allocator.1"** %1 | |
%20 = getelementptr inbounds %"class.std::__1::__function::__func"* %11, i32 0, i32 1 | |
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %5, align 8 | |
store %"class.std::__1::__function::__func"* %11, %"class.std::__1::__function::__func"** %6, align 8 | |
store i64 1, i64* %7, align 8 | |
%21 = load %"class.std::__1::allocator.1"** %5 | |
%22 = load %"class.std::__1::__function::__func"** %6, align 8 | |
%23 = bitcast %"class.std::__1::__function::__func"* %22 to i8* | |
call void @_ZdlPv(i8* %23) nounwind | |
ret void | |
} | |
define internal i32 @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi"(%"class.std::__1::__function::__func"* %this, i32* %__arg) uwtable ssp align 2 { | |
%1 = alloca i32*, align 8 | |
%2 = alloca i32*, align 8 | |
%3 = alloca %class.anon*, align 8 | |
%4 = alloca %class.anon*, align 8 | |
%5 = alloca i32*, align 8 | |
%6 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%7 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%8 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%9 = alloca i32*, align 8 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %8, align 8 | |
store i32* %__arg, i32** %9, align 8 | |
%10 = load %"class.std::__1::__function::__func"** %8 | |
%11 = getelementptr inbounds %"class.std::__1::__function::__func"* %10, i32 0, i32 1 | |
store %"class.std::__1::__compressed_pair"* %11, %"class.std::__1::__compressed_pair"** %7, align 8 | |
%12 = load %"class.std::__1::__compressed_pair"** %7 | |
%13 = bitcast %"class.std::__1::__compressed_pair"* %12 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %13, %"class.std::__1::__libcpp_compressed_pair_imp"** %6, align 8 | |
%14 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %6 | |
%15 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %14 to %class.anon* | |
%16 = load i32** %9, align 8 | |
store i32* %16, i32** %1, align 8 | |
%17 = load i32** %1, align 8 | |
store %class.anon* %15, %class.anon** %4, align 8 | |
store i32* %17, i32** %5, align 8 | |
%18 = load %class.anon** %4, align 8 | |
store %class.anon* %18, %class.anon** %3, align 8 | |
%19 = load %class.anon** %3, align 8 | |
%20 = load i32** %5, align 8 | |
store i32* %20, i32** %2, align 8 | |
%21 = load i32** %2, align 8 | |
%22 = load i32* %21 | |
%23 = call i32 @"_ZZ3foovENK3$_0clEi"(%class.anon* %19, i32 %22) | |
ret i32 %23 | |
} | |
define internal i8* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info"(%"class.std::__1::__function::__func"* %this, %"class.std::type_info"* %__ti) nounwind uwtable ssp align 2 { | |
%1 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8 | |
%2 = alloca %"class.std::__1::__compressed_pair"*, align 8 | |
%3 = alloca %"class.std::type_info"*, align 8 | |
%4 = alloca %"class.std::type_info"*, align 8 | |
%5 = alloca i8*, align 8 | |
%6 = alloca %"class.std::__1::__function::__func"*, align 8 | |
%7 = alloca %"class.std::type_info"*, align 8 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %6, align 8 | |
store %"class.std::type_info"* %__ti, %"class.std::type_info"** %7, align 8 | |
%8 = load %"class.std::__1::__function::__func"** %6 | |
%9 = load %"class.std::type_info"** %7, align 8 | |
store %"class.std::type_info"* %9, %"class.std::type_info"** %3, align 8 | |
store %"class.std::type_info"* bitcast ({ i8*, i8* }* @"_ZTIZ3foovE3$_0" to %"class.std::type_info"*), %"class.std::type_info"** %4, align 8 | |
%10 = load %"class.std::type_info"** %3 | |
%11 = getelementptr inbounds %"class.std::type_info"* %10, i32 0, i32 1 | |
%12 = load i8** %11, align 8 | |
%13 = load %"class.std::type_info"** %4, align 8 | |
%14 = getelementptr inbounds %"class.std::type_info"* %13, i32 0, i32 1 | |
%15 = load i8** %14, align 8 | |
%16 = icmp eq i8* %12, %15 | |
br i1 %16, label %17, label %24 | |
; <label>:17 ; preds = %0 | |
%18 = getelementptr inbounds %"class.std::__1::__function::__func"* %8, i32 0, i32 1 | |
store %"class.std::__1::__compressed_pair"* %18, %"class.std::__1::__compressed_pair"** %2, align 8 | |
%19 = load %"class.std::__1::__compressed_pair"** %2 | |
%20 = bitcast %"class.std::__1::__compressed_pair"* %19 to %"class.std::__1::__libcpp_compressed_pair_imp"* | |
store %"class.std::__1::__libcpp_compressed_pair_imp"* %20, %"class.std::__1::__libcpp_compressed_pair_imp"** %1, align 8 | |
%21 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %1 | |
%22 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %21 to %class.anon* | |
%23 = bitcast %class.anon* %22 to i8* | |
store i8* %23, i8** %5 | |
br label %25 | |
; <label>:24 ; preds = %0 | |
store i8* null, i8** %5 | |
br label %25 | |
; <label>:25 ; preds = %24, %17 | |
%26 = load i8** %5 | |
ret i8* %26 | |
} | |
define internal %"class.std::type_info"* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv"(%"class.std::__1::__function::__func"* %this) nounwind uwtable ssp align 2 { | |
%1 = alloca %"class.std::__1::__function::__func"*, align 8 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %1, align 8 | |
%2 = load %"class.std::__1::__function::__func"** %1 | |
ret %"class.std::type_info"* bitcast ({ i8*, i8* }* @"_ZTIZ3foovE3$_0" to %"class.std::type_info"*) | |
} | |
define internal i32 @"_ZZ3foovENK3$_0clEi"(%class.anon* %this, i32 %x) nounwind uwtable inlinehint ssp align 2 { | |
%1 = alloca %class.anon*, align 8 | |
%2 = alloca i32, align 4 | |
store %class.anon* %this, %class.anon** %1, align 8 | |
store i32 %x, i32* %2, align 4 | |
%3 = load %class.anon** %1 | |
%4 = load i32* %2, align 4 | |
%5 = add nsw i32 %4, 1 | |
ret i32 %5 | |
} | |
declare void @_ZdlPv(i8*) nounwind | |
declare void @_ZSt9terminatev() | |
declare noalias i8* @_Znwm(i64) | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind | |
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev"(%"class.std::__1::__function::__func"* %this) unnamed_addr nounwind uwtable inlinehint ssp align 2 { | |
%1 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%2 = alloca %"class.std::__1::__function::__func"*, align 8 | |
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %2, align 8 | |
%3 = load %"class.std::__1::__function::__func"** %2 | |
%4 = bitcast %"class.std::__1::__function::__func"* %3 to %"class.std::__1::__function::__base"* | |
store %"class.std::__1::__function::__base"* %4, %"class.std::__1::__function::__base"** %1, align 8 | |
%5 = load %"class.std::__1::__function::__base"** %1 | |
ret void | |
} | |
define linkonce_odr hidden void @_ZNSt3__110__function6__baseIFiiEED1Ev(%"class.std::__1::__function::__base"* %this) unnamed_addr nounwind uwtable alwaysinline ssp align 2 { | |
%1 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%2 = alloca %"class.std::__1::__function::__base"*, align 8 | |
store %"class.std::__1::__function::__base"* %this, %"class.std::__1::__function::__base"** %2, align 8 | |
%3 = load %"class.std::__1::__function::__base"** %2 | |
store %"class.std::__1::__function::__base"* %3, %"class.std::__1::__function::__base"** %1, align 8 | |
%4 = load %"class.std::__1::__function::__base"** %1 | |
ret void | |
} | |
define linkonce_odr hidden void @_ZNSt3__110__function6__baseIFiiEED0Ev(%"class.std::__1::__function::__base"* %this) unnamed_addr nounwind uwtable alwaysinline ssp align 2 { | |
%1 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%2 = alloca %"class.std::__1::__function::__base"*, align 8 | |
%3 = alloca %"class.std::__1::__function::__base"*, align 8 | |
store %"class.std::__1::__function::__base"* %this, %"class.std::__1::__function::__base"** %3, align 8 | |
%4 = load %"class.std::__1::__function::__base"** %3 | |
store %"class.std::__1::__function::__base"* %4, %"class.std::__1::__function::__base"** %2, align 8 | |
%5 = load %"class.std::__1::__function::__base"** %2 | |
store %"class.std::__1::__function::__base"* %5, %"class.std::__1::__function::__base"** %1, align 8 | |
%6 = load %"class.std::__1::__function::__base"** %1 | |
%7 = bitcast %"class.std::__1::__function::__base"* %4 to i8* | |
call void @_ZdlPv(i8* %7) nounwind | |
ret void | |
} | |
declare void @__cxa_pure_virtual() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.section __TEXT,__text,regular,pure_instructions | |
.globl __Z3foov | |
.align 4, 0x90 | |
__Z3foov: ## @_Z3foov | |
.cfi_startproc | |
.cfi_personality 155, ___gxx_personality_v0 | |
Leh_func_begin0: | |
.cfi_lsda 16, Lexception0 | |
## BB#0: ## %_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE.exit | |
pushq %rbp | |
Ltmp6: | |
.cfi_def_cfa_offset 16 | |
Ltmp7: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp8: | |
.cfi_def_cfa_register %rbp | |
pushq %r14 | |
pushq %rbx | |
subq $48, %rsp | |
Ltmp9: | |
.cfi_offset %rbx, -32 | |
Ltmp10: | |
.cfi_offset %r14, -24 | |
leaq -64(%rbp), %rbx | |
movq %rbx, -32(%rbp) | |
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE+16(%rip), %rax | |
movq %rax, -64(%rbp) | |
Ltmp0: | |
movq %rbx, %rdi | |
callq __Z3runNSt3__18functionIFiiEEE | |
Ltmp1: | |
## BB#1: | |
movq -32(%rbp), %rdi | |
cmpq %rbx, %rdi | |
jne LBB0_3 | |
## BB#2: | |
movq -64(%rbp), %rax | |
leaq -64(%rbp), %rdi | |
callq *32(%rax) | |
jmp LBB0_5 | |
LBB0_3: | |
testq %rdi, %rdi | |
je LBB0_5 | |
## BB#4: | |
movq (%rdi), %rax | |
callq *40(%rax) | |
LBB0_5: ## %_ZNSt3__18functionIFiiEED1Ev.exit1 | |
addq $48, %rsp | |
popq %rbx | |
popq %r14 | |
popq %rbp | |
ret | |
LBB0_6: | |
Ltmp2: | |
movq %rax, %r14 | |
movq -32(%rbp), %rdi | |
cmpq %rbx, %rdi | |
jne LBB0_8 | |
## BB#7: | |
movq -64(%rbp), %rax | |
leaq -64(%rbp), %rdi | |
callq *32(%rax) | |
movq %r14, %rdi | |
callq __Unwind_Resume | |
LBB0_8: | |
testq %rdi, %rdi | |
je LBB0_10 | |
## BB#9: | |
movq (%rdi), %rax | |
callq *40(%rax) | |
LBB0_10: ## %_ZNSt3__18functionIFiiEED1Ev.exit | |
movq %r14, %rdi | |
callq __Unwind_Resume | |
.cfi_endproc | |
Leh_func_end0: | |
.section __TEXT,__gcc_except_tab | |
.align 2 | |
GCC_except_table0: | |
Lexception0: | |
.byte 255 ## @LPStart Encoding = omit | |
.byte 155 ## @TType Encoding = indirect pcrel sdata4 | |
.asciz "\234" ## @TType base offset | |
.byte 3 ## Call site Encoding = udata4 | |
.byte 26 ## Call site table length | |
Lset0 = Ltmp0-Leh_func_begin0 ## >> Call Site 1 << | |
.long Lset0 | |
Lset1 = Ltmp1-Ltmp0 ## Call between Ltmp0 and Ltmp1 | |
.long Lset1 | |
Lset2 = Ltmp2-Leh_func_begin0 ## jumps to Ltmp2 | |
.long Lset2 | |
.byte 0 ## On action: cleanup | |
Lset3 = Ltmp1-Leh_func_begin0 ## >> Call Site 2 << | |
.long Lset3 | |
Lset4 = Leh_func_end0-Ltmp1 ## Call between Ltmp1 and Leh_func_end0 | |
.long Lset4 | |
.long 0 ## has no landing pad | |
.byte 0 ## On action: cleanup | |
.align 2 | |
.section __TEXT,__text,regular,pure_instructions | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp13: | |
.cfi_def_cfa_offset 16 | |
Ltmp14: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp15: | |
.cfi_def_cfa_register %rbp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp18: | |
.cfi_def_cfa_offset 16 | |
Ltmp19: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp20: | |
.cfi_def_cfa_register %rbp | |
popq %rbp | |
jmp __ZdlPv ## TAILCALL | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp23: | |
.cfi_def_cfa_offset 16 | |
Ltmp24: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp25: | |
.cfi_def_cfa_register %rbp | |
movl $16, %edi | |
callq __Znwm | |
testq %rax, %rax | |
je LBB3_2 | |
## BB#1: | |
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE+16(%rip), %rcx | |
movq %rcx, (%rax) | |
LBB3_2: ## %_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp28: | |
.cfi_def_cfa_offset 16 | |
Ltmp29: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp30: | |
.cfi_def_cfa_register %rbp | |
testq %rsi, %rsi | |
je LBB4_2 | |
## BB#1: | |
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE+16(%rip), %rax | |
movq %rax, (%rsi) | |
LBB4_2: | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp33: | |
.cfi_def_cfa_offset 16 | |
Ltmp34: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp35: | |
.cfi_def_cfa_register %rbp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp38: | |
.cfi_def_cfa_offset 16 | |
Ltmp39: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp40: | |
.cfi_def_cfa_register %rbp | |
popq %rbp | |
jmp __ZdlPv ## TAILCALL | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp43: | |
.cfi_def_cfa_offset 16 | |
Ltmp44: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp45: | |
.cfi_def_cfa_register %rbp | |
movl (%rsi), %eax | |
incl %eax | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp48: | |
.cfi_def_cfa_offset 16 | |
Ltmp49: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp50: | |
.cfi_def_cfa_register %rbp | |
addq $8, %rdi | |
leaq __ZTSZ3foovE3$_0(%rip), %rax | |
cmpq %rax, 8(%rsi) | |
movl $0, %eax | |
cmoveq %rdi, %rax | |
popq %rbp | |
ret | |
.cfi_endproc | |
.align 4, 0x90 | |
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv" | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp53: | |
.cfi_def_cfa_offset 16 | |
Ltmp54: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp55: | |
.cfi_def_cfa_register %rbp | |
leaq __ZTIZ3foovE3$_0(%rip), %rax | |
popq %rbp | |
ret | |
.cfi_endproc | |
.section __TEXT,__textcoal_nt,coalesced,pure_instructions | |
.private_extern __ZNSt3__110__function6__baseIFiiEED1Ev | |
.globl __ZNSt3__110__function6__baseIFiiEED1Ev | |
.weak_definition __ZNSt3__110__function6__baseIFiiEED1Ev | |
.align 4, 0x90 | |
__ZNSt3__110__function6__baseIFiiEED1Ev: ## @_ZNSt3__110__function6__baseIFiiEED1Ev | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp58: | |
.cfi_def_cfa_offset 16 | |
Ltmp59: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp60: | |
.cfi_def_cfa_register %rbp | |
popq %rbp | |
ret | |
.cfi_endproc | |
.private_extern __ZNSt3__110__function6__baseIFiiEED0Ev | |
.globl __ZNSt3__110__function6__baseIFiiEED0Ev | |
.weak_definition __ZNSt3__110__function6__baseIFiiEED0Ev | |
.align 4, 0x90 | |
__ZNSt3__110__function6__baseIFiiEED0Ev: ## @_ZNSt3__110__function6__baseIFiiEED0Ev | |
.cfi_startproc | |
## BB#0: | |
pushq %rbp | |
Ltmp63: | |
.cfi_def_cfa_offset 16 | |
Ltmp64: | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
Ltmp65: | |
.cfi_def_cfa_register %rbp | |
popq %rbp | |
jmp __ZdlPv ## TAILCALL | |
.cfi_endproc | |
.section __DATA,__const | |
.align 4 ## @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" | |
__ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE: | |
.quad 0 | |
.quad __ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev | |
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv | |
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv | |
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi | |
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info | |
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv | |
.section __TEXT,__const | |
.align 4 ## @"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" | |
__ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE: | |
.asciz "NSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" | |
.section __TEXT,__const_coal,coalesced | |
.globl __ZTSNSt3__110__function6__baseIFiiEEE ## @_ZTSNSt3__110__function6__baseIFiiEEE | |
.weak_definition __ZTSNSt3__110__function6__baseIFiiEEE | |
.align 4 | |
__ZTSNSt3__110__function6__baseIFiiEEE: | |
.asciz "NSt3__110__function6__baseIFiiEEE" | |
.section __DATA,__datacoal_nt,coalesced | |
.globl __ZTINSt3__110__function6__baseIFiiEEE ## @_ZTINSt3__110__function6__baseIFiiEEE | |
.weak_definition __ZTINSt3__110__function6__baseIFiiEEE | |
.align 3 | |
__ZTINSt3__110__function6__baseIFiiEEE: | |
.quad __ZTVN10__cxxabiv117__class_type_infoE+16 | |
.quad __ZTSNSt3__110__function6__baseIFiiEEE | |
.section __DATA,__const | |
.align 4 ## @"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" | |
__ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE: | |
.quad __ZTVN10__cxxabiv120__si_class_type_infoE+16 | |
.quad __ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE | |
.quad __ZTINSt3__110__function6__baseIFiiEEE | |
.section __TEXT,__const | |
__ZTSZ3foovE3$_0: ## @"_ZTSZ3foovE3$_0" | |
.asciz "Z3foovE3$_0" | |
.section __DATA,__const | |
.align 3 ## @"_ZTIZ3foovE3$_0" | |
__ZTIZ3foovE3$_0: | |
.quad __ZTVN10__cxxabiv117__class_type_infoE+16 | |
.quad __ZTSZ3foovE3$_0 | |
.section __DATA,__datacoal_nt,coalesced | |
.globl __ZTVNSt3__110__function6__baseIFiiEEE ## @_ZTVNSt3__110__function6__baseIFiiEEE | |
.weak_definition __ZTVNSt3__110__function6__baseIFiiEEE | |
.align 4 | |
__ZTVNSt3__110__function6__baseIFiiEEE: | |
.quad 0 | |
.quad __ZTINSt3__110__function6__baseIFiiEEE | |
.quad __ZNSt3__110__function6__baseIFiiEED1Ev | |
.quad __ZNSt3__110__function6__baseIFiiEED0Ev | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.quad ___cxa_pure_virtual | |
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support | |
.subsections_via_symbols |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'std_func_overhead.cpp' | |
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" | |
target triple = "x86_64-apple-macosx10.8.0" | |
%"class.std::__1::function" = type { %"struct.std::__1::aligned_storage<24, 16>::type", %"class.std::__1::__function::__base"*, [8 x i8] } | |
%"struct.std::__1::aligned_storage<24, 16>::type" = type { [24 x i8], [8 x i8] } | |
%"class.std::__1::__function::__base" = type { i32 (...)** } | |
%"class.std::__1::__function::__func" = type { %"class.std::__1::__function::__base", %"class.std::__1::__compressed_pair" } | |
%"class.std::__1::__compressed_pair" = type { i8 } | |
%"class.std::type_info" = type { i32 (...)**, i8* } | |
@"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal unnamed_addr constant [11 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev" to i8*), i8* bitcast (%"class.std::__1::__function::__base"* (%"class.std::__1::__function::__func"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*, %"class.std::__1::__function::__base"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv" to i8*), i8* bitcast (i32 (%"class.std::__1::__function::__func"*, i32*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi" to i8*), i8* bitcast (i8* (%"class.std::__1::__function::__func"*, %"class.std::type_info"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info" to i8*), i8* bitcast (%"class.std::type_info"* (%"class.std::__1::__function::__func"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv" to i8*)] | |
@_ZTVN10__cxxabiv120__si_class_type_infoE = external global i8* | |
@"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal constant [64 x i8] c"NSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE\00" | |
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8* | |
@_ZTSNSt3__110__function6__baseIFiiEEE = linkonce_odr constant [34 x i8] c"NSt3__110__function6__baseIFiiEEE\00" | |
@_ZTINSt3__110__function6__baseIFiiEEE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([34 x i8]* @_ZTSNSt3__110__function6__baseIFiiEEE, i32 0, i32 0) } | |
@"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal unnamed_addr constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([64 x i8]* @"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTINSt3__110__function6__baseIFiiEEE to i8*) } | |
@"_ZTSZ3foovE3$_0" = internal constant [12 x i8] c"Z3foovE3$_0\00" | |
@"_ZTIZ3foovE3$_0" = internal unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([12 x i8]* @"_ZTSZ3foovE3$_0", i32 0, i32 0) } | |
@_ZTVNSt3__110__function6__baseIFiiEEE = linkonce_odr unnamed_addr constant [11 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTINSt3__110__function6__baseIFiiEEE to i8*), i8* bitcast (void (%"class.std::__1::__function::__base"*)* @_ZNSt3__110__function6__baseIFiiEED1Ev to i8*), i8* bitcast (void (%"class.std::__1::__function::__base"*)* @_ZNSt3__110__function6__baseIFiiEED0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] | |
define void @_Z3foov() uwtable ssp { | |
"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE.exit": | |
%0 = alloca %"class.std::__1::function", align 16 | |
%1 = getelementptr inbounds %"class.std::__1::function"* %0, i64 0, i32 1 | |
%2 = bitcast %"class.std::__1::function"* %0 to %"class.std::__1::__function::__base"* | |
store %"class.std::__1::__function::__base"* %2, %"class.std::__1::__function::__base"** %1, align 16 | |
%3 = bitcast %"class.std::__1::function"* %0 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2) to i32 (...)**), i32 (...)*** %3, align 16 | |
invoke void @_Z3runNSt3__18functionIFiiEEE(%"class.std::__1::function"* %0) | |
to label %4 unwind label %19 | |
; <label>:4 ; preds = %"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE.exit" | |
%5 = load %"class.std::__1::__function::__base"** %1, align 16 | |
%6 = icmp eq %"class.std::__1::__function::__base"* %5, %2 | |
br i1 %6, label %7, label %12 | |
; <label>:7 ; preds = %4 | |
%8 = bitcast %"class.std::__1::function"* %0 to void (%"class.std::__1::__function::__base"*)*** | |
%9 = load void (%"class.std::__1::__function::__base"*)*** %8, align 16 | |
%10 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %9, i64 4 | |
%11 = load void (%"class.std::__1::__function::__base"*)** %10, align 8 | |
call void %11(%"class.std::__1::__function::__base"* %2) nounwind | |
br label %_ZNSt3__18functionIFiiEED1Ev.exit1 | |
; <label>:12 ; preds = %4 | |
%13 = icmp eq %"class.std::__1::__function::__base"* %5, null | |
br i1 %13, label %_ZNSt3__18functionIFiiEED1Ev.exit1, label %14 | |
; <label>:14 ; preds = %12 | |
%15 = bitcast %"class.std::__1::__function::__base"* %5 to void (%"class.std::__1::__function::__base"*)*** | |
%16 = load void (%"class.std::__1::__function::__base"*)*** %15, align 8 | |
%17 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %16, i64 5 | |
%18 = load void (%"class.std::__1::__function::__base"*)** %17, align 8 | |
call void %18(%"class.std::__1::__function::__base"* %5) nounwind | |
br label %_ZNSt3__18functionIFiiEED1Ev.exit1 | |
_ZNSt3__18functionIFiiEED1Ev.exit1: ; preds = %7, %12, %14 | |
ret void | |
; <label>:19 ; preds = %"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE.exit" | |
%20 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) | |
cleanup | |
%21 = load %"class.std::__1::__function::__base"** %1, align 16 | |
%22 = icmp eq %"class.std::__1::__function::__base"* %21, %2 | |
br i1 %22, label %23, label %28 | |
; <label>:23 ; preds = %19 | |
%24 = bitcast %"class.std::__1::function"* %0 to void (%"class.std::__1::__function::__base"*)*** | |
%25 = load void (%"class.std::__1::__function::__base"*)*** %24, align 16 | |
%26 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %25, i64 4 | |
%27 = load void (%"class.std::__1::__function::__base"*)** %26, align 8 | |
call void %27(%"class.std::__1::__function::__base"* %2) nounwind | |
br label %_ZNSt3__18functionIFiiEED1Ev.exit | |
; <label>:28 ; preds = %19 | |
%29 = icmp eq %"class.std::__1::__function::__base"* %21, null | |
br i1 %29, label %_ZNSt3__18functionIFiiEED1Ev.exit, label %30 | |
; <label>:30 ; preds = %28 | |
%31 = bitcast %"class.std::__1::__function::__base"* %21 to void (%"class.std::__1::__function::__base"*)*** | |
%32 = load void (%"class.std::__1::__function::__base"*)*** %31, align 8 | |
%33 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %32, i64 5 | |
%34 = load void (%"class.std::__1::__function::__base"*)** %33, align 8 | |
call void %34(%"class.std::__1::__function::__base"* %21) nounwind | |
br label %_ZNSt3__18functionIFiiEED1Ev.exit | |
_ZNSt3__18functionIFiiEED1Ev.exit: ; preds = %23, %28, %30 | |
resume { i8*, i32 } %20 | |
} | |
declare void @_Z3runNSt3__18functionIFiiEEE(%"class.std::__1::function"*) | |
declare i32 @__gxx_personality_v0(...) | |
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev"(%"class.std::__1::__function::__func"* nocapture %this) unnamed_addr nounwind uwtable readnone inlinehint ssp align 2 { | |
ret void | |
} | |
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev"(%"class.std::__1::__function::__func"* %this) unnamed_addr nounwind uwtable inlinehint ssp align 2 { | |
%1 = bitcast %"class.std::__1::__function::__func"* %this to i8* | |
tail call void @_ZdlPv(i8* %1) nounwind | |
ret void | |
} | |
define internal %"class.std::__1::__function::__base"* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv"(%"class.std::__1::__function::__func"* nocapture %this) uwtable ssp align 2 { | |
%1 = tail call noalias i8* @_Znwm(i64 16) | |
%2 = icmp eq i8* %1, null | |
br i1 %2, label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit", label %3 | |
; <label>:3 ; preds = %0 | |
%4 = bitcast i8* %1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2) to i32 (...)**), i32 (...)*** %4, align 8 | |
br label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit" | |
"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit": ; preds = %0, %3 | |
%5 = bitcast i8* %1 to %"class.std::__1::__function::__base"* | |
ret %"class.std::__1::__function::__base"* %5 | |
} | |
define internal void @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE"(%"class.std::__1::__function::__func"* nocapture %this, %"class.std::__1::__function::__base"* %__p) nounwind uwtable ssp align 2 { | |
%1 = icmp eq %"class.std::__1::__function::__base"* %__p, null | |
br i1 %1, label %4, label %2 | |
; <label>:2 ; preds = %0 | |
%3 = getelementptr inbounds %"class.std::__1::__function::__base"* %__p, i64 0, i32 0 | |
store i32 (...)** bitcast (i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2) to i32 (...)**), i32 (...)*** %3, align 8 | |
br label %4 | |
; <label>:4 ; preds = %2, %0 | |
ret void | |
} | |
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv"(%"class.std::__1::__function::__func"* nocapture %this) nounwind uwtable readnone ssp align 2 { | |
ret void | |
} | |
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv"(%"class.std::__1::__function::__func"* %this) nounwind uwtable ssp align 2 { | |
%1 = bitcast %"class.std::__1::__function::__func"* %this to i8* | |
tail call void @_ZdlPv(i8* %1) nounwind | |
ret void | |
} | |
define internal i32 @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi"(%"class.std::__1::__function::__func"* nocapture %this, i32* nocapture %__arg) nounwind uwtable readonly ssp align 2 { | |
%1 = load i32* %__arg, align 4 | |
%2 = add nsw i32 %1, 1 | |
ret i32 %2 | |
} | |
define internal i8* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info"(%"class.std::__1::__function::__func"* %this, %"class.std::type_info"* nocapture %__ti) nounwind uwtable readonly ssp align 2 { | |
%1 = getelementptr inbounds %"class.std::type_info"* %__ti, i64 0, i32 1 | |
%2 = load i8** %1, align 8 | |
%3 = icmp eq i8* %2, getelementptr inbounds ([12 x i8]* @"_ZTSZ3foovE3$_0", i64 0, i64 0) | |
%4 = getelementptr inbounds %"class.std::__1::__function::__func"* %this, i64 0, i32 1, i32 0 | |
%. = select i1 %3, i8* %4, i8* null | |
ret i8* %. | |
} | |
define internal %"class.std::type_info"* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv"(%"class.std::__1::__function::__func"* nocapture %this) nounwind uwtable readnone ssp align 2 { | |
ret %"class.std::type_info"* bitcast ({ i8*, i8* }* @"_ZTIZ3foovE3$_0" to %"class.std::type_info"*) | |
} | |
declare void @_ZdlPv(i8*) nounwind | |
declare noalias i8* @_Znwm(i64) | |
define linkonce_odr hidden void @_ZNSt3__110__function6__baseIFiiEED1Ev(%"class.std::__1::__function::__base"* nocapture %this) unnamed_addr nounwind uwtable readnone alwaysinline ssp align 2 { | |
ret void | |
} | |
define linkonce_odr hidden void @_ZNSt3__110__function6__baseIFiiEED0Ev(%"class.std::__1::__function::__base"* %this) unnamed_addr nounwind uwtable alwaysinline ssp align 2 { | |
%1 = bitcast %"class.std::__1::__function::__base"* %this to i8* | |
tail call void @_ZdlPv(i8* %1) nounwind | |
ret void | |
} | |
declare void @__cxa_pure_virtual() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-O0, right? What's it like at -O2?