Skip to content

Instantly share code, notes, and snippets.

@lambday
Last active April 1, 2016 14:57
Show Gist options
  • Select an option

  • Save lambday/d31506225ce78759e1b5e5945f770bc8 to your computer and use it in GitHub Desktop.

Select an option

Save lambday/d31506225ce78759e1b5e5945f770bc8 to your computer and use it in GitHub Desktop.
#include <DynamicInterface.hpp>
#include <CRTPInterface.hpp>
#include <hayai/hayai.hpp>
#include <memory>
unsigned long N = 1000;
auto dynobj = std::make_unique<DynamicImplementation>();
auto crtpobj = std::make_unique<CRTPImplementation>();
void run_dynamic(DynamicInterface* obj) {
for (unsigned long i = 0; i < N; ++i) {
for (unsigned long j = 0; j < i; ++j) {
obj->tick(j);
}
}
}
template <typename Implementation>
void run_crtp(CRTPInterface<Implementation>* obj) {
for (unsigned long i = 0; i < N; ++i) {
for (unsigned long j = 0; j < i; ++j) {
obj->tick(j);
}
}
}
BENCHMARK(DynamicInterface, run_dynamic, 100, 1000)
{
run_dynamic(dynobj.get());
}
BENCHMARK(CRTPInterface, run_crtp, 100, 1000)
{
run_crtp(crtpobj.get());
}
.file "benchmark.cpp"
.section .text.unlikely._ZN21DynamicImplementation4tickEm,"axG",@progbits,_ZN21DynamicImplementation4tickEm,comdat
.align 2
.LCOLDB0:
.section .text._ZN21DynamicImplementation4tickEm,"axG",@progbits,_ZN21DynamicImplementation4tickEm,comdat
.LHOTB0:
.align 2
.p2align 4,,15
.weak _ZN21DynamicImplementation4tickEm
.type _ZN21DynamicImplementation4tickEm, @function
_ZN21DynamicImplementation4tickEm:
.LFB6:
.cfi_startproc
addq %rsi, 8(%rdi)
ret
.cfi_endproc
.LFE6:
.size _ZN21DynamicImplementation4tickEm, .-_ZN21DynamicImplementation4tickEm
.section .text.unlikely._ZN21DynamicImplementation4tickEm,"axG",@progbits,_ZN21DynamicImplementation4tickEm,comdat
.LCOLDE0:
.section .text._ZN21DynamicImplementation4tickEm,"axG",@progbits,_ZN21DynamicImplementation4tickEm,comdat
.LHOTE0:
.section .text.unlikely._ZN21DynamicImplementation8getvalueEv,"axG",@progbits,_ZN21DynamicImplementation8getvalueEv,comdat
.align 2
.LCOLDB1:
.section .text._ZN21DynamicImplementation8getvalueEv,"axG",@progbits,_ZN21DynamicImplementation8getvalueEv,comdat
.LHOTB1:
.align 2
.p2align 4,,15
.weak _ZN21DynamicImplementation8getvalueEv
.type _ZN21DynamicImplementation8getvalueEv, @function
_ZN21DynamicImplementation8getvalueEv:
.LFB7:
.cfi_startproc
movq 8(%rdi), %rax
ret
.cfi_endproc
.LFE7:
.size _ZN21DynamicImplementation8getvalueEv, .-_ZN21DynamicImplementation8getvalueEv
.section .text.unlikely._ZN21DynamicImplementation8getvalueEv,"axG",@progbits,_ZN21DynamicImplementation8getvalueEv,comdat
.LCOLDE1:
.section .text._ZN21DynamicImplementation8getvalueEv,"axG",@progbits,_ZN21DynamicImplementation8getvalueEv,comdat
.LHOTE1:
.section .text.unlikely._ZN5hayai4Test5SetUpEv,"axG",@progbits,_ZN5hayai4Test5SetUpEv,comdat
.align 2
.LCOLDB2:
.section .text._ZN5hayai4Test5SetUpEv,"axG",@progbits,_ZN5hayai4Test5SetUpEv,comdat
.LHOTB2:
.align 2
.p2align 4,,15
.weak _ZN5hayai4Test5SetUpEv
.type _ZN5hayai4Test5SetUpEv, @function
_ZN5hayai4Test5SetUpEv:
.LFB2596:
.cfi_startproc
rep ret
.cfi_endproc
.LFE2596:
.size _ZN5hayai4Test5SetUpEv, .-_ZN5hayai4Test5SetUpEv
.section .text.unlikely._ZN5hayai4Test5SetUpEv,"axG",@progbits,_ZN5hayai4Test5SetUpEv,comdat
.LCOLDE2:
.section .text._ZN5hayai4Test5SetUpEv,"axG",@progbits,_ZN5hayai4Test5SetUpEv,comdat
.LHOTE2:
.section .text.unlikely._ZN5hayai4Test8TearDownEv,"axG",@progbits,_ZN5hayai4Test8TearDownEv,comdat
.align 2
.LCOLDB3:
.section .text._ZN5hayai4Test8TearDownEv,"axG",@progbits,_ZN5hayai4Test8TearDownEv,comdat
.LHOTB3:
.align 2
.p2align 4,,15
.weak _ZN5hayai4Test8TearDownEv
.type _ZN5hayai4Test8TearDownEv, @function
_ZN5hayai4Test8TearDownEv:
.LFB2597:
.cfi_startproc
rep ret
.cfi_endproc
.LFE2597:
.size _ZN5hayai4Test8TearDownEv, .-_ZN5hayai4Test8TearDownEv
.section .text.unlikely._ZN5hayai4Test8TearDownEv,"axG",@progbits,_ZN5hayai4Test8TearDownEv,comdat
.LCOLDE3:
.section .text._ZN5hayai4Test8TearDownEv,"axG",@progbits,_ZN5hayai4Test8TearDownEv,comdat
.LHOTE3:
.section .text.unlikely._ZN5hayai4TestD2Ev,"axG",@progbits,_ZN5hayai4TestD5Ev,comdat
.align 2
.LCOLDB4:
.section .text._ZN5hayai4TestD2Ev,"axG",@progbits,_ZN5hayai4TestD5Ev,comdat
.LHOTB4:
.align 2
.p2align 4,,15
.weak _ZN5hayai4TestD2Ev
.type _ZN5hayai4TestD2Ev, @function
_ZN5hayai4TestD2Ev:
.LFB2600:
.cfi_startproc
rep ret
.cfi_endproc
.LFE2600:
.size _ZN5hayai4TestD2Ev, .-_ZN5hayai4TestD2Ev
.section .text.unlikely._ZN5hayai4TestD2Ev,"axG",@progbits,_ZN5hayai4TestD5Ev,comdat
.LCOLDE4:
.section .text._ZN5hayai4TestD2Ev,"axG",@progbits,_ZN5hayai4TestD5Ev,comdat
.LHOTE4:
.weak _ZN5hayai4TestD1Ev
.set _ZN5hayai4TestD1Ev,_ZN5hayai4TestD2Ev
.section .text.unlikely._ZN5hayai4Test8TestBodyEv,"axG",@progbits,_ZN5hayai4Test8TestBodyEv,comdat
.align 2
.LCOLDB5:
.section .text._ZN5hayai4Test8TestBodyEv,"axG",@progbits,_ZN5hayai4Test8TestBodyEv,comdat
.LHOTB5:
.align 2
.p2align 4,,15
.weak _ZN5hayai4Test8TestBodyEv
.type _ZN5hayai4Test8TestBodyEv, @function
_ZN5hayai4Test8TestBodyEv:
.LFB2603:
.cfi_startproc
rep ret
.cfi_endproc
.LFE2603:
.size _ZN5hayai4Test8TestBodyEv, .-_ZN5hayai4Test8TestBodyEv
.section .text.unlikely._ZN5hayai4Test8TestBodyEv,"axG",@progbits,_ZN5hayai4Test8TestBodyEv,comdat
.LCOLDE5:
.section .text._ZN5hayai4Test8TestBodyEv,"axG",@progbits,_ZN5hayai4Test8TestBodyEv,comdat
.LHOTE5:
.section .text.unlikely,"ax",@progbits
.align 2
.LCOLDB8:
.text
.LHOTB8:
.align 2
.p2align 4,,15
.globl _ZN32CRTPInterface_run_crtp_Benchmark8TestBodyEv
.type _ZN32CRTPInterface_run_crtp_Benchmark8TestBodyEv, @function
_ZN32CRTPInterface_run_crtp_Benchmark8TestBodyEv:
.LFB3281:
.cfi_startproc
movq N(%rip), %rax
movq crtpobj(%rip), %r8
testq %rax, %rax
je .L7
xorl %esi, %esi
movdqa .LC6(%rip), %xmm3
leaq 1(%rsi), %rcx
movdqa .LC7(%rip), %xmm2
cmpq %rax, %rcx
jnb .L7
.p2align 4,,10
.p2align 3
.L25:
testq %rcx, %rcx
je .L10
leaq -1(%rsi), %rdi
movq (%r8), %rax
shrq %rdi
addq $1, %rdi
cmpq $14, %rsi
leaq (%rdi,%rdi), %rdx
jbe .L18
pxor %xmm1, %xmm1
movdqa %xmm3, %xmm0
xorl %esi, %esi
.p2align 4,,10
.p2align 3
.L13:
addq $1, %rsi
paddq %xmm0, %xmm1
paddq %xmm2, %xmm0
cmpq %rsi, %rdi
ja .L13
movdqa %xmm1, %xmm0
psrldq $8, %xmm0
paddq %xmm0, %xmm1
movq %xmm1, %rsi
addq %rsi, %rax
cmpq %rdx, %rcx
je .L15
.L11:
leaq 1(%rdx), %rsi
addq %rdx, %rax
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 2(%rdx), %rsi
cmpq %rcx, %rsi
jnb .L15
addq %rsi, %rax
leaq 3(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 4(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 5(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 6(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 7(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 8(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 9(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 10(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 11(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 12(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
leaq 13(%rdx), %rsi
cmpq %rsi, %rcx
jbe .L15
addq %rsi, %rax
addq $14, %rdx
leaq (%rax,%rdx), %rsi
cmpq %rdx, %rcx
cmova %rsi, %rax
.p2align 4,,10
.p2align 3
.L15:
movq %rax, (%r8)
movq N(%rip), %rax
.L10:
movq %rcx, %rsi
leaq 1(%rsi), %rcx
cmpq %rax, %rcx
jb .L25
.L7:
rep ret
.p2align 4,,10
.p2align 3
.L18:
xorl %edx, %edx
jmp .L11
.cfi_endproc
.LFE3281:
.size _ZN32CRTPInterface_run_crtp_Benchmark8TestBodyEv, .-_ZN32CRTPInterface_run_crtp_Benchmark8TestBodyEv
.section .text.unlikely
.LCOLDE8:
.text
.LHOTE8:
.section .text.unlikely._ZN32CRTPInterface_run_crtp_BenchmarkD2Ev,"axG",@progbits,_ZN32CRTPInterface_run_crtp_BenchmarkD5Ev,comdat
.align 2
.LCOLDB9:
.section .text._ZN32CRTPInterface_run_crtp_BenchmarkD2Ev,"axG",@progbits,_ZN32CRTPInterface_run_crtp_BenchmarkD5Ev,comdat
.LHOTB9:
.align 2
.p2align 4,,15
.weak _ZN32CRTPInterface_run_crtp_BenchmarkD2Ev
.type _ZN32CRTPInterface_run_crtp_BenchmarkD2Ev, @function
_ZN32CRTPInterface_run_crtp_BenchmarkD2Ev:
.LFB3994:
.cfi_startproc
rep ret
.cfi_endproc
.LFE3994:
.size _ZN32CRTPInterface_run_crtp_BenchmarkD2Ev, .-_ZN32CRTPInterface_run_crtp_BenchmarkD2Ev
.section .text.unlikely._ZN32CRTPInterface_run_crtp_BenchmarkD2Ev,"axG",@progbits,_ZN32CRTPInterface_run_crtp_BenchmarkD5Ev,comdat
.LCOLDE9:
.section .text._ZN32CRTPInterface_run_crtp_BenchmarkD2Ev,"axG",@progbits,_ZN32CRTPInterface_run_crtp_BenchmarkD5Ev,comdat
.LHOTE9:
.weak _ZN32CRTPInterface_run_crtp_BenchmarkD1Ev
.set _ZN32CRTPInterface_run_crtp_BenchmarkD1Ev,_ZN32CRTPInterface_run_crtp_BenchmarkD2Ev
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED5Ev,comdat
.align 2
.LCOLDB10:
.section .text._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED5Ev,comdat
.LHOTB10:
.align 2
.p2align 4,,15
.weak _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev
.type _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev, @function
_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev:
.LFB3998:
.cfi_startproc
rep ret
.cfi_endproc
.LFE3998:
.size _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev, .-_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED5Ev,comdat
.LCOLDE10:
.section .text._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED5Ev,comdat
.LHOTE10:
.weak _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED1Ev
.set _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED1Ev,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED2Ev
.section .text.unlikely._ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev,"axG",@progbits,_ZN38DynamicInterface_run_dynamic_BenchmarkD5Ev,comdat
.align 2
.LCOLDB11:
.section .text._ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev,"axG",@progbits,_ZN38DynamicInterface_run_dynamic_BenchmarkD5Ev,comdat
.LHOTB11:
.align 2
.p2align 4,,15
.weak _ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev
.type _ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev, @function
_ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev:
.LFB4002:
.cfi_startproc
rep ret
.cfi_endproc
.LFE4002:
.size _ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev, .-_ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev
.section .text.unlikely._ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev,"axG",@progbits,_ZN38DynamicInterface_run_dynamic_BenchmarkD5Ev,comdat
.LCOLDE11:
.section .text._ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev,"axG",@progbits,_ZN38DynamicInterface_run_dynamic_BenchmarkD5Ev,comdat
.LHOTE11:
.weak _ZN38DynamicInterface_run_dynamic_BenchmarkD1Ev
.set _ZN38DynamicInterface_run_dynamic_BenchmarkD1Ev,_ZN38DynamicInterface_run_dynamic_BenchmarkD2Ev
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED5Ev,comdat
.align 2
.LCOLDB12:
.section .text._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED5Ev,comdat
.LHOTB12:
.align 2
.p2align 4,,15
.weak _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev
.type _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev, @function
_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev:
.LFB4006:
.cfi_startproc
rep ret
.cfi_endproc
.LFE4006:
.size _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev, .-_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED5Ev,comdat
.LCOLDE12:
.section .text._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED5Ev,comdat
.LHOTE12:
.weak _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED1Ev
.set _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED1Ev,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED2Ev
.section .text.unlikely._ZN32CRTPInterface_run_crtp_BenchmarkD0Ev,"axG",@progbits,_ZN32CRTPInterface_run_crtp_BenchmarkD5Ev,comdat
.align 2
.LCOLDB13:
.section .text._ZN32CRTPInterface_run_crtp_BenchmarkD0Ev,"axG",@progbits,_ZN32CRTPInterface_run_crtp_BenchmarkD5Ev,comdat
.LHOTB13:
.align 2
.p2align 4,,15
.weak _ZN32CRTPInterface_run_crtp_BenchmarkD0Ev
.type _ZN32CRTPInterface_run_crtp_BenchmarkD0Ev, @function
_ZN32CRTPInterface_run_crtp_BenchmarkD0Ev:
.LFB3996:
.cfi_startproc
movl $8, %esi
jmp _ZdlPvm
.cfi_endproc
.LFE3996:
.size _ZN32CRTPInterface_run_crtp_BenchmarkD0Ev, .-_ZN32CRTPInterface_run_crtp_BenchmarkD0Ev
.section .text.unlikely._ZN32CRTPInterface_run_crtp_BenchmarkD0Ev,"axG",@progbits,_ZN32CRTPInterface_run_crtp_BenchmarkD5Ev,comdat
.LCOLDE13:
.section .text._ZN32CRTPInterface_run_crtp_BenchmarkD0Ev,"axG",@progbits,_ZN32CRTPInterface_run_crtp_BenchmarkD5Ev,comdat
.LHOTE13:
.section .text.unlikely._ZN5hayai4TestD0Ev,"axG",@progbits,_ZN5hayai4TestD5Ev,comdat
.align 2
.LCOLDB14:
.section .text._ZN5hayai4TestD0Ev,"axG",@progbits,_ZN5hayai4TestD5Ev,comdat
.LHOTB14:
.align 2
.p2align 4,,15
.weak _ZN5hayai4TestD0Ev
.type _ZN5hayai4TestD0Ev, @function
_ZN5hayai4TestD0Ev:
.LFB2602:
.cfi_startproc
movl $8, %esi
jmp _ZdlPvm
.cfi_endproc
.LFE2602:
.size _ZN5hayai4TestD0Ev, .-_ZN5hayai4TestD0Ev
.section .text.unlikely._ZN5hayai4TestD0Ev,"axG",@progbits,_ZN5hayai4TestD5Ev,comdat
.LCOLDE14:
.section .text._ZN5hayai4TestD0Ev,"axG",@progbits,_ZN5hayai4TestD5Ev,comdat
.LHOTE14:
.section .text.unlikely._ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev,"axG",@progbits,_ZN38DynamicInterface_run_dynamic_BenchmarkD5Ev,comdat
.align 2
.LCOLDB15:
.section .text._ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev,"axG",@progbits,_ZN38DynamicInterface_run_dynamic_BenchmarkD5Ev,comdat
.LHOTB15:
.align 2
.p2align 4,,15
.weak _ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev
.type _ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev, @function
_ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev:
.LFB4004:
.cfi_startproc
movl $8, %esi
jmp _ZdlPvm
.cfi_endproc
.LFE4004:
.size _ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev, .-_ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev
.section .text.unlikely._ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev,"axG",@progbits,_ZN38DynamicInterface_run_dynamic_BenchmarkD5Ev,comdat
.LCOLDE15:
.section .text._ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev,"axG",@progbits,_ZN38DynamicInterface_run_dynamic_BenchmarkD5Ev,comdat
.LHOTE15:
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED5Ev,comdat
.align 2
.LCOLDB16:
.section .text._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED5Ev,comdat
.LHOTB16:
.align 2
.p2align 4,,15
.weak _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev
.type _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev, @function
_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev:
.LFB4008:
.cfi_startproc
movl $8, %esi
jmp _ZdlPvm
.cfi_endproc
.LFE4008:
.size _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev, .-_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED5Ev,comdat
.LCOLDE16:
.section .text._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED5Ev,comdat
.LHOTE16:
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED5Ev,comdat
.align 2
.LCOLDB17:
.section .text._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED5Ev,comdat
.LHOTB17:
.align 2
.p2align 4,,15
.weak _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev
.type _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev, @function
_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev:
.LFB4000:
.cfi_startproc
movl $8, %esi
jmp _ZdlPvm
.cfi_endproc
.LFE4000:
.size _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev, .-_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED5Ev,comdat
.LCOLDE17:
.section .text._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED5Ev,comdat
.LHOTE17:
.section .text.unlikely._ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED5Ev,comdat
.align 2
.LCOLDB18:
.section .text._ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED5Ev,comdat
.LHOTB18:
.align 2
.p2align 4,,15
.weak _ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev
.type _ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev, @function
_ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev:
.LFB3480:
.cfi_startproc
movq (%rdi), %rdi
testq %rdi, %rdi
je .L36
movl $16, %esi
jmp _ZdlPvm
.p2align 4,,10
.p2align 3
.L36:
rep ret
.cfi_endproc
.LFE3480:
.size _ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev, .-_ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev
.section .text.unlikely._ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED5Ev,comdat
.LCOLDE18:
.section .text._ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED5Ev,comdat
.LHOTE18:
.weak _ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED1Ev
.set _ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED1Ev,_ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED2Ev
.section .text.unlikely._ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED5Ev,comdat
.align 2
.LCOLDB19:
.section .text._ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED5Ev,comdat
.LHOTB19:
.align 2
.p2align 4,,15
.weak _ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev
.type _ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev, @function
_ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev:
.LFB3508:
.cfi_startproc
movq (%rdi), %rdi
testq %rdi, %rdi
je .L38
movl $8, %esi
jmp _ZdlPvm
.p2align 4,,10
.p2align 3
.L38:
rep ret
.cfi_endproc
.LFE3508:
.size _ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev, .-_ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev
.section .text.unlikely._ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED5Ev,comdat
.LCOLDE19:
.section .text._ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED5Ev,comdat
.LHOTE19:
.weak _ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED1Ev
.set _ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED1Ev,_ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED2Ev
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv,comdat
.align 2
.LCOLDB20:
.section .text._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv,comdat
.LHOTB20:
.align 2
.p2align 4,,15
.weak _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv
.type _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv, @function
_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv:
.LFB4027:
.cfi_startproc
subq $8, %rsp
.cfi_def_cfa_offset 16
movl $8, %edi
call _Znwm
movq $_ZTV38DynamicInterface_run_dynamic_Benchmark+16, (%rax)
addq $8, %rsp
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE4027:
.size _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv, .-_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv,comdat
.LCOLDE20:
.section .text._ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv,comdat
.LHOTE20:
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv,comdat
.align 2
.LCOLDB21:
.section .text._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv,comdat
.LHOTB21:
.align 2
.p2align 4,,15
.weak _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv
.type _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv, @function
_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv:
.LFB4026:
.cfi_startproc
subq $8, %rsp
.cfi_def_cfa_offset 16
movl $8, %edi
call _Znwm
movq $_ZTV32CRTPInterface_run_crtp_Benchmark+16, (%rax)
addq $8, %rsp
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE4026:
.size _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv, .-_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv
.section .text.unlikely._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv,comdat
.LCOLDE21:
.section .text._ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv,"axG",@progbits,_ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv,comdat
.LHOTE21:
.section .text.unlikely
.align 2
.LCOLDB22:
.text
.LHOTB22:
.align 2
.p2align 4,,15
.type _ZNSs4_Rep10_M_disposeERKSaIcE.part.0, @function
_ZNSs4_Rep10_M_disposeERKSaIcE.part.0:
.LFB4029:
.cfi_startproc
movl $_ZL28__gthrw___pthread_key_createPjPFvPvE, %eax
testq %rax, %rax
je .L45
movl $-1, %eax
lock xaddl %eax, 16(%rdi)
testl %eax, %eax
jle .L48
.L44:
rep ret
.p2align 4,,10
.p2align 3
.L45:
movl 16(%rdi), %eax
leal -1(%rax), %edx
testl %eax, %eax
movl %edx, 16(%rdi)
jg .L44
.L48:
jmp _ZNSs4_Rep10_M_destroyERKSaIcE
.cfi_endproc
.LFE4029:
.size _ZNSs4_Rep10_M_disposeERKSaIcE.part.0, .-_ZNSs4_Rep10_M_disposeERKSaIcE.part.0
.section .text.unlikely
.LCOLDE22:
.text
.LHOTE22:
.section .text.unlikely
.align 2
.LCOLDB23:
.text
.LHOTB23:
.align 2
.p2align 4,,15
.globl _ZN38DynamicInterface_run_dynamic_Benchmark8TestBodyEv
.type _ZN38DynamicInterface_run_dynamic_Benchmark8TestBodyEv, @function
_ZN38DynamicInterface_run_dynamic_Benchmark8TestBodyEv:
.LFB3274:
.cfi_startproc
movq N(%rip), %rax
pushq %r12
.cfi_def_cfa_offset 16
.cfi_offset 12, -16
pushq %rbp
.cfi_def_cfa_offset 24
.cfi_offset 6, -24
movq dynobj(%rip), %rbp
pushq %rbx
.cfi_def_cfa_offset 32
.cfi_offset 3, -32
testq %rax, %rax
je .L49
xorl %r12d, %r12d
.L51:
addq $1, %r12
cmpq %rax, %r12
jnb .L49
.p2align 4,,10
.p2align 3
.L64:
testq %r12, %r12
je .L51
xorl %ebx, %ebx
jmp .L55
.p2align 4,,10
.p2align 3
.L67:
addq %rbx, 8(%rbp)
addq $1, %rbx
cmpq %r12, %rbx
je .L66
.L55:
movq 0(%rbp), %rax
movq (%rax), %rax
cmpq $_ZN21DynamicImplementation4tickEm, %rax
je .L67
movq %rbx, %rsi
addq $1, %rbx
movq %rbp, %rdi
call *%rax
cmpq %r12, %rbx
jne .L55
.L66:
movq N(%rip), %rax
addq $1, %r12
cmpq %rax, %r12
jb .L64
.L49:
popq %rbx
.cfi_def_cfa_offset 24
popq %rbp
.cfi_def_cfa_offset 16
popq %r12
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE3274:
.size _ZN38DynamicInterface_run_dynamic_Benchmark8TestBodyEv, .-_ZN38DynamicInterface_run_dynamic_Benchmark8TestBodyEv
.section .text.unlikely
.LCOLDE23:
.text
.LHOTE23:
.section .text.unlikely._ZN5hayai11BenchmarkerD2Ev,"axG",@progbits,_ZN5hayai11BenchmarkerD5Ev,comdat
.align 2
.LCOLDB24:
.section .text._ZN5hayai11BenchmarkerD2Ev,"axG",@progbits,_ZN5hayai11BenchmarkerD5Ev,comdat
.LHOTB24:
.align 2
.p2align 4,,15
.weak _ZN5hayai11BenchmarkerD2Ev
.type _ZN5hayai11BenchmarkerD2Ev, @function
_ZN5hayai11BenchmarkerD2Ev:
.LFB2634:
.cfi_startproc
pushq %r14
.cfi_def_cfa_offset 16
.cfi_offset 14, -16
pushq %r13
.cfi_def_cfa_offset 24
.cfi_offset 13, -24
movq %rdi, %r14
pushq %r12
.cfi_def_cfa_offset 32
.cfi_offset 12, -32
pushq %rbp
.cfi_def_cfa_offset 40
.cfi_offset 6, -40
xorl %r12d, %r12d
pushq %rbx
.cfi_def_cfa_offset 48
.cfi_offset 3, -48
subq $16, %rsp
.cfi_def_cfa_offset 64
movq 32(%rdi), %rbp
subq 24(%rdi), %rbp
movq %rbp, %r13
subq $8, %rbp
sarq $3, %r13
jmp .L69
.p2align 4,,10
.p2align 3
.L125:
movq 24(%r14), %rax
movq (%rax,%rbp), %rbx
testq %rbx, %rbx
je .L71
movq 32(%rbx), %rdi
testq %rdi, %rdi
je .L72
movq (%rdi), %rax
call *8(%rax)
.L72:
movq 40(%rbx), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
jne .L122
.L74:
movq 8(%rbx), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
jne .L123
.L79:
movq (%rbx), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
jne .L124
.L84:
movl $56, %esi
movq %rbx, %rdi
call _ZdlPvm
.L71:
addq $1, %r12
subq $8, %rbp
.L69:
cmpq %r12, %r13
jne .L125
movq 56(%r14), %rbp
movq 48(%r14), %rbx
cmpq %rbx, %rbp
je .L88
movl $_ZL28__gthrw___pthread_key_createPjPFvPvE, %eax
testq %rax, %rax
jne .L113
jmp .L95
.p2align 4,,10
.p2align 3
.L97:
addq $8, %rbx
cmpq %rbx, %rbp
je .L94
.L113:
movq (%rbx), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
je .L97
movl $-1, %edx
lock xaddl %edx, -8(%rax)
testl %edx, %edx
jg .L97
leaq 15(%rsp), %rsi
addq $8, %rbx
call _ZNSs4_Rep10_M_destroyERKSaIcE
cmpq %rbx, %rbp
jne .L113
.p2align 4,,10
.p2align 3
.L94:
movq 48(%r14), %rbp
.L88:
testq %rbp, %rbp
je .L100
movq %rbp, %rdi
call _ZdlPv
.L100:
movq 24(%r14), %rdi
testq %rdi, %rdi
je .L101
call _ZdlPv
.L101:
movq (%r14), %rdi
testq %rdi, %rdi
je .L68
call _ZdlPv
.L68:
addq $16, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 48
popq %rbx
.cfi_def_cfa_offset 40
popq %rbp
.cfi_def_cfa_offset 32
popq %r12
.cfi_def_cfa_offset 24
popq %r13
.cfi_def_cfa_offset 16
popq %r14
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L126:
.cfi_restore_state
movl -8(%rax), %edx
leal -1(%rdx), %ecx
testl %edx, %edx
movl %ecx, -8(%rax)
jg .L91
leaq 15(%rsp), %rsi
call _ZNSs4_Rep10_M_destroyERKSaIcE
.p2align 4,,10
.p2align 3
.L91:
addq $8, %rbx
cmpq %rbx, %rbp
je .L94
.L95:
movq (%rbx), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
je .L91
jmp .L126
.p2align 4,,10
.p2align 3
.L124:
movl $_ZL28__gthrw___pthread_key_createPjPFvPvE, %edx
testq %rdx, %rdx
je .L85
movl $-1, %edx
lock xaddl %edx, -8(%rax)
movl %edx, %eax
.L86:
testl %eax, %eax
jg .L84
leaq 15(%rsp), %rsi
call _ZNSs4_Rep10_M_destroyERKSaIcE
jmp .L84
.p2align 4,,10
.p2align 3
.L123:
movl $_ZL28__gthrw___pthread_key_createPjPFvPvE, %edx
testq %rdx, %rdx
je .L80
movl $-1, %edx
lock xaddl %edx, -8(%rax)
movl %edx, %eax
.L81:
testl %eax, %eax
jg .L79
leaq 15(%rsp), %rsi
call _ZNSs4_Rep10_M_destroyERKSaIcE
jmp .L79
.p2align 4,,10
.p2align 3
.L122:
movl $_ZL28__gthrw___pthread_key_createPjPFvPvE, %edx
testq %rdx, %rdx
je .L75
movl $-1, %edx
lock xaddl %edx, -8(%rax)
movl %edx, %eax
.L76:
testl %eax, %eax
jg .L74
leaq 15(%rsp), %rsi
call _ZNSs4_Rep10_M_destroyERKSaIcE
jmp .L74
.p2align 4,,10
.p2align 3
.L75:
movl -8(%rax), %edx
leal -1(%rdx), %ecx
movl %ecx, -8(%rax)
movl %edx, %eax
jmp .L76
.p2align 4,,10
.p2align 3
.L80:
movl -8(%rax), %edx
leal -1(%rdx), %ecx
movl %ecx, -8(%rax)
movl %edx, %eax
jmp .L81
.p2align 4,,10
.p2align 3
.L85:
movl -8(%rax), %edx
leal -1(%rdx), %ecx
movl %ecx, -8(%rax)
movl %edx, %eax
jmp .L86
.cfi_endproc
.LFE2634:
.size _ZN5hayai11BenchmarkerD2Ev, .-_ZN5hayai11BenchmarkerD2Ev
.section .text.unlikely._ZN5hayai11BenchmarkerD2Ev,"axG",@progbits,_ZN5hayai11BenchmarkerD5Ev,comdat
.LCOLDE24:
.section .text._ZN5hayai11BenchmarkerD2Ev,"axG",@progbits,_ZN5hayai11BenchmarkerD5Ev,comdat
.LHOTE24:
.weak _ZN5hayai11BenchmarkerD1Ev
.set _ZN5hayai11BenchmarkerD1Ev,_ZN5hayai11BenchmarkerD2Ev
.section .text.unlikely._ZN5hayai11Benchmarker8InstanceEv,"axG",@progbits,_ZN5hayai11Benchmarker8InstanceEv,comdat
.LCOLDB25:
.section .text._ZN5hayai11Benchmarker8InstanceEv,"axG",@progbits,_ZN5hayai11Benchmarker8InstanceEv,comdat
.LHOTB25:
.p2align 4,,15
.weak _ZN5hayai11Benchmarker8InstanceEv
.type _ZN5hayai11Benchmarker8InstanceEv, @function
_ZN5hayai11Benchmarker8InstanceEv:
.LFB2625:
.cfi_startproc
cmpb $0, _ZGVZN5hayai11Benchmarker8InstanceEvE9singleton(%rip)
je .L136
movl $_ZZN5hayai11Benchmarker8InstanceEvE9singleton, %eax
ret
.p2align 4,,10
.p2align 3
.L136:
subq $8, %rsp
.cfi_def_cfa_offset 16
movl $_ZGVZN5hayai11Benchmarker8InstanceEvE9singleton, %edi
call __cxa_guard_acquire
testl %eax, %eax
je .L129
movl $_ZGVZN5hayai11Benchmarker8InstanceEvE9singleton, %edi
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+8(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+16(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+24(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+32(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+40(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+48(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+56(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+64(%rip)
call __cxa_guard_release
movl $__dso_handle, %edx
movl $_ZZN5hayai11Benchmarker8InstanceEvE9singleton, %esi
movl $_ZN5hayai11BenchmarkerD1Ev, %edi
call __cxa_atexit
.L129:
movl $_ZZN5hayai11Benchmarker8InstanceEvE9singleton, %eax
addq $8, %rsp
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE2625:
.size _ZN5hayai11Benchmarker8InstanceEv, .-_ZN5hayai11Benchmarker8InstanceEv
.section .text.unlikely._ZN5hayai11Benchmarker8InstanceEv,"axG",@progbits,_ZN5hayai11Benchmarker8InstanceEv,comdat
.LCOLDE25:
.section .text._ZN5hayai11Benchmarker8InstanceEv,"axG",@progbits,_ZN5hayai11Benchmarker8InstanceEv,comdat
.LHOTE25:
.section .text.unlikely
.LCOLDB26:
.text
.LHOTB26:
.p2align 4,,15
.globl _Z11run_dynamicP16DynamicInterface
.type _Z11run_dynamicP16DynamicInterface, @function
_Z11run_dynamicP16DynamicInterface:
.LFB3260:
.cfi_startproc
movq N(%rip), %rax
testq %rax, %rax
je .L155
pushq %r12
.cfi_def_cfa_offset 16
.cfi_offset 12, -16
pushq %rbp
.cfi_def_cfa_offset 24
.cfi_offset 6, -24
xorl %r12d, %r12d
pushq %rbx
.cfi_def_cfa_offset 32
.cfi_offset 3, -32
movq %rdi, %rbp
.L139:
addq $1, %r12
cmpq %rax, %r12
jnb .L156
.p2align 4,,10
.p2align 3
.L152:
testq %r12, %r12
je .L139
xorl %ebx, %ebx
jmp .L143
.p2align 4,,10
.p2align 3
.L158:
addq %rbx, 8(%rbp)
addq $1, %rbx
cmpq %r12, %rbx
je .L157
.L143:
movq 0(%rbp), %rax
movq (%rax), %rax
cmpq $_ZN21DynamicImplementation4tickEm, %rax
je .L158
movq %rbx, %rsi
addq $1, %rbx
movq %rbp, %rdi
call *%rax
cmpq %r12, %rbx
jne .L143
.L157:
movq N(%rip), %rax
addq $1, %r12
cmpq %rax, %r12
jb .L152
.L156:
popq %rbx
.cfi_restore 3
.cfi_def_cfa_offset 24
popq %rbp
.cfi_restore 6
.cfi_def_cfa_offset 16
popq %r12
.cfi_restore 12
.cfi_def_cfa_offset 8
.L155:
rep ret
.cfi_endproc
.LFE3260:
.size _Z11run_dynamicP16DynamicInterface, .-_Z11run_dynamicP16DynamicInterface
.section .text.unlikely
.LCOLDE26:
.text
.LHOTE26:
.section .text.unlikely._ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_,"axG",@progbits,_ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_,comdat
.align 2
.LCOLDB27:
.section .text._ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_,"axG",@progbits,_ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_,comdat
.LHOTB27:
.align 2
.p2align 4,,15
.weak _ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_
.type _ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_, @function
_ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_:
.LFB3631:
.cfi_startproc
pushq %r15
.cfi_def_cfa_offset 16
.cfi_offset 15, -16
pushq %r14
.cfi_def_cfa_offset 24
.cfi_offset 14, -24
movq %rdi, %r15
pushq %r13
.cfi_def_cfa_offset 32
.cfi_offset 13, -32
pushq %r12
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
movq %rsi, %r13
pushq %rbp
.cfi_def_cfa_offset 48
.cfi_offset 6, -48
pushq %rbx
.cfi_def_cfa_offset 56
.cfi_offset 3, -56
subq $8, %rsp
.cfi_def_cfa_offset 64
movq 8(%rdi), %rax
subq (%rdi), %rax
sarq $3, %rax
testq %rax, %rax
je .L167
leaq (%rax,%rax), %rdx
cmpq %rdx, %rax
jbe .L179
.L168:
movq $-8, %r14
jmp .L160
.p2align 4,,10
.p2align 3
.L167:
movl $8, %r14d
.L160:
movq %r14, %rdi
call _Znwm
movq %rax, %rbx
.L166:
movq (%r15), %r12
movq 8(%r15), %rbp
movq %rbx, %rax
movq 0(%r13), %rdx
subq %r12, %rbp
addq %rbp, %rax
je .L162
movq %rdx, (%rax)
.L162:
movq %rbp, %rax
sarq $3, %rax
testq %rax, %rax
jne .L180
testq %r12, %r12
leaq 8(%rbx,%rbp), %rbp
je .L165
.L164:
movq %r12, %rdi
call _ZdlPv
.L165:
movq %rbx, (%r15)
addq %r14, %rbx
movq %rbp, 8(%r15)
movq %rbx, 16(%r15)
addq $8, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 56
popq %rbx
.cfi_def_cfa_offset 48
popq %rbp
.cfi_def_cfa_offset 40
popq %r12
.cfi_def_cfa_offset 32
popq %r13
.cfi_def_cfa_offset 24
popq %r14
.cfi_def_cfa_offset 16
popq %r15
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L180:
.cfi_restore_state
movq %rbp, %rdx
movq %r12, %rsi
movq %rbx, %rdi
call memmove
leaq 8(%rbx,%rbp), %rbp
jmp .L164
.L179:
movabsq $2305843009213693951, %rcx
cmpq %rcx, %rdx
ja .L168
xorl %r14d, %r14d
xorl %ebx, %ebx
testq %rdx, %rdx
je .L166
salq $4, %rax
movq %rax, %r14
jmp .L160
.cfi_endproc
.LFE3631:
.size _ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_, .-_ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_
.section .text.unlikely._ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_,"axG",@progbits,_ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_,comdat
.LCOLDE27:
.section .text._ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_,"axG",@progbits,_ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_,comdat
.LHOTE27:
.weak _ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIIRKS2_EEEvDpOT_
.set _ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIIRKS2_EEEvDpOT_,_ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_
.section .text.unlikely._ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,"axG",@progbits,_ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,comdat
.LCOLDB28:
.section .text._ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,"axG",@progbits,_ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,comdat
.LHOTB28:
.p2align 4,,15
.weak _ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs
.type _ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs, @function
_ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs:
.LFB2626:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA2626
pushq %r15
.cfi_def_cfa_offset 16
.cfi_offset 15, -16
pushq %r14
.cfi_def_cfa_offset 24
.cfi_offset 14, -24
movq %r8, %r15
pushq %r13
.cfi_def_cfa_offset 32
.cfi_offset 13, -32
pushq %r12
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
movq %rdx, %r13
pushq %rbp
.cfi_def_cfa_offset 48
.cfi_offset 6, -48
pushq %rbx
.cfi_def_cfa_offset 56
.cfi_offset 3, -56
movq %rsi, %rbp
movq %rcx, %r14
movq %r9, %rbx
xorl %r12d, %r12d
subq $56, %rsp
.cfi_def_cfa_offset 112
movq %rdi, 8(%rsp)
movq %rsi, %rdi
call strlen
cmpq $8, %rax
jbe .L182
movq _ZZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESsE14disabledPrefix(%rip), %rsi
movl $9, %edx
movq %rbp, %rdi
call memcmp
testl %eax, %eax
je .L183
.L182:
leaq 32(%rsp), %rdi
movq %rbx, %rsi
.LEHB0:
call _ZNSsC1ERKSs
.LEHE0:
movl $56, %edi
.LEHB1:
call _Znwm
.LEHE1:
movq 8(%rsp), %rsi
leaq 40(%rsp), %rdx
movq %rax, %rdi
movq %rax, %rbx
.LEHB2:
call _ZNSsC1EPKcRKSaIcE
.LEHE2:
leaq 8(%rbx), %rdi
leaq 40(%rsp), %rdx
movq %rbp, %rsi
.LEHB3:
call _ZNSsC1EPKcRKSaIcE
.LEHE3:
leaq 40(%rbx), %rdi
leaq 32(%rsp), %rsi
movq %r13, 16(%rbx)
movq %r14, 24(%rbx)
movq %r15, 32(%rbx)
.LEHB4:
call _ZNSsC1ERKSs
.LEHE4:
movq 32(%rsp), %rax
movb %r12b, 48(%rbx)
movq %rbx, 40(%rsp)
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
jne .L225
.L185:
cmpb $0, _ZGVZN5hayai11Benchmarker8InstanceEvE9singleton(%rip)
je .L226
.L195:
movq _ZZN5hayai11Benchmarker8InstanceEvE9singleton+32(%rip), %rdx
cmpq _ZZN5hayai11Benchmarker8InstanceEvE9singleton+40(%rip), %rdx
je .L197
testq %rdx, %rdx
movq 40(%rsp), %rax
je .L198
movq %rax, (%rdx)
movq _ZZN5hayai11Benchmarker8InstanceEvE9singleton+32(%rip), %rdx
movq 40(%rsp), %rax
.L198:
addq $8, %rdx
movq %rdx, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+32(%rip)
.L222:
addq $56, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 56
popq %rbx
.cfi_def_cfa_offset 48
popq %rbp
.cfi_def_cfa_offset 40
popq %r12
.cfi_def_cfa_offset 32
popq %r13
.cfi_def_cfa_offset 24
popq %r14
.cfi_def_cfa_offset 16
popq %r15
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L183:
.cfi_restore_state
addq $9, %rbp
movl $1, %r12d
jmp .L182
.p2align 4,,10
.p2align 3
.L226:
movl $_ZGVZN5hayai11Benchmarker8InstanceEvE9singleton, %edi
call __cxa_guard_acquire
testl %eax, %eax
je .L195
movl $_ZGVZN5hayai11Benchmarker8InstanceEvE9singleton, %edi
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+8(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+16(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+24(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+32(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+40(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+48(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+56(%rip)
movq $0, _ZZN5hayai11Benchmarker8InstanceEvE9singleton+64(%rip)
call __cxa_guard_release
movl $__dso_handle, %edx
movl $_ZZN5hayai11Benchmarker8InstanceEvE9singleton, %esi
movl $_ZN5hayai11BenchmarkerD1Ev, %edi
call __cxa_atexit
jmp .L195
.p2align 4,,10
.p2align 3
.L225:
movl $_ZL28__gthrw___pthread_key_createPjPFvPvE, %edx
testq %rdx, %rdx
je .L191
movl $-1, %edx
lock xaddl %edx, -8(%rax)
movl %edx, %eax
.L192:
testl %eax, %eax
jg .L185
leaq 31(%rsp), %rsi
call _ZNSs4_Rep10_M_destroyERKSaIcE
jmp .L185
.p2align 4,,10
.p2align 3
.L197:
leaq 40(%rsp), %rsi
movl $_ZZN5hayai11Benchmarker8InstanceEvE9singleton+24, %edi
.LEHB5:
call _ZNSt6vectorIPN5hayai14TestDescriptorESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_
movq 40(%rsp), %rax
jmp .L222
.p2align 4,,10
.p2align 3
.L191:
movl -8(%rax), %edx
leal -1(%rdx), %ecx
movl %ecx, -8(%rax)
movl %edx, %eax
jmp .L192
.L206:
movq %rax, %rbp
jmp .L186
.L203:
movq %rax, %rbx
jmp .L200
.L186:
movq 8(%rbx), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
je .L188
leaq 40(%rsp), %rsi
call _ZNSs4_Rep10_M_disposeERKSaIcE.part.0
.L188:
movq (%rbx), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
je .L190
leaq 40(%rsp), %rsi
call _ZNSs4_Rep10_M_disposeERKSaIcE.part.0
.L190:
movq %rbx, %rdi
movl $56, %esi
movq %rbp, %rbx
call _ZdlPvm
.L200:
movq 32(%rsp), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
je .L201
leaq 31(%rsp), %rsi
call _ZNSs4_Rep10_M_disposeERKSaIcE.part.0
.L201:
movq %rbx, %rdi
call _Unwind_Resume
.LEHE5:
.L205:
movq %rax, %rbp
jmp .L188
.L204:
movq %rax, %rbp
jmp .L190
.cfi_endproc
.LFE2626:
.globl __gxx_personality_v0
.section .gcc_except_table._ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,"aG",@progbits,_ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,comdat
.LLSDA2626:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE2626-.LLSDACSB2626
.LLSDACSB2626:
.uleb128 .LEHB0-.LFB2626
.uleb128 .LEHE0-.LEHB0
.uleb128 0
.uleb128 0
.uleb128 .LEHB1-.LFB2626
.uleb128 .LEHE1-.LEHB1
.uleb128 .L203-.LFB2626
.uleb128 0
.uleb128 .LEHB2-.LFB2626
.uleb128 .LEHE2-.LEHB2
.uleb128 .L204-.LFB2626
.uleb128 0
.uleb128 .LEHB3-.LFB2626
.uleb128 .LEHE3-.LEHB3
.uleb128 .L205-.LFB2626
.uleb128 0
.uleb128 .LEHB4-.LFB2626
.uleb128 .LEHE4-.LEHB4
.uleb128 .L206-.LFB2626
.uleb128 0
.uleb128 .LEHB5-.LFB2626
.uleb128 .LEHE5-.LEHB5
.uleb128 0
.uleb128 0
.LLSDACSE2626:
.section .text._ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,"axG",@progbits,_ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,comdat
.size _ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs, .-_ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs
.section .text.unlikely._ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,"axG",@progbits,_ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,comdat
.LCOLDE28:
.section .text._ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,"axG",@progbits,_ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs,comdat
.LHOTE28:
.section .rodata.str1.1,"aMS",@progbits,1
.LC29:
.string ""
.LC30:
.string "run_dynamic"
.LC31:
.string "DynamicInterface"
.LC32:
.string "run_crtp"
.LC33:
.string "CRTPInterface"
.section .text.unlikely
.LCOLDB34:
.section .text.startup,"ax",@progbits
.LHOTB34:
.p2align 4,,15
.type _GLOBAL__sub_I_N, @function
_GLOBAL__sub_I_N:
.LFB4028:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA4028
pushq %rbx
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
movl $_ZStL8__ioinit, %edi
subq $32, %rsp
.cfi_def_cfa_offset 48
.LEHB6:
call _ZNSt8ios_base4InitC1Ev
movl $__dso_handle, %edx
movl $_ZStL8__ioinit, %esi
movl $_ZNSt8ios_base4InitD1Ev, %edi
call __cxa_atexit
movl $16, %edi
call _Znwm
movl $__dso_handle, %edx
movl $dynobj, %esi
movl $_ZNSt10unique_ptrI21DynamicImplementationSt14default_deleteIS0_EED1Ev, %edi
movq $_ZTV21DynamicImplementation+16, (%rax)
movq $0, 8(%rax)
movq %rax, dynobj(%rip)
call __cxa_atexit
movl $8, %edi
call _Znwm
movl $__dso_handle, %edx
movl $crtpobj, %esi
movl $_ZNSt10unique_ptrI18CRTPImplementationSt14default_deleteIS0_EED1Ev, %edi
movq $0, (%rax)
movq %rax, crtpobj(%rip)
call __cxa_atexit
call _ZN5hayai11Benchmarker8InstanceEv
leaq 16(%rsp), %rdi
leaq 14(%rsp), %rdx
movl $.LC29, %esi
call _ZNSsC1EPKcRKSaIcE
.LEHE6:
movl $8, %edi
.LEHB7:
call _Znwm
leaq 16(%rsp), %r9
movq %rax, %r8
movq $_ZTVN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE+16, (%rax)
movl $1000, %ecx
movl $100, %edx
movl $.LC30, %esi
movl $.LC31, %edi
call _ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs
.LEHE7:
movq %rax, _ZN38DynamicInterface_run_dynamic_Benchmark11_descriptorE(%rip)
movq 16(%rsp), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
jne .L252
.L228:
call _ZN5hayai11Benchmarker8InstanceEv
leaq 16(%rsp), %rdi
leaq 14(%rsp), %rdx
movl $.LC29, %esi
.LEHB8:
call _ZNSsC1EPKcRKSaIcE
.LEHE8:
movl $8, %edi
.LEHB9:
call _Znwm
leaq 16(%rsp), %r9
movq %rax, %r8
movq $_ZTVN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE+16, (%rax)
movl $1000, %ecx
movl $100, %edx
movl $.LC32, %esi
movl $.LC33, %edi
call _ZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESs
.LEHE9:
movq %rax, _ZN32CRTPInterface_run_crtp_Benchmark11_descriptorE(%rip)
movq 16(%rsp), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
jne .L253
.L227:
addq $32, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 16
popq %rbx
.cfi_def_cfa_offset 8
ret
.L252:
.cfi_restore_state
leaq 15(%rsp), %rsi
call _ZNSs4_Rep10_M_disposeERKSaIcE.part.0
jmp .L228
.L253:
leaq 15(%rsp), %rsi
call _ZNSs4_Rep10_M_disposeERKSaIcE.part.0
jmp .L227
.L235:
.L251:
movq %rax, %rbx
movq 16(%rsp), %rax
leaq -24(%rax), %rdi
cmpq $_ZNSs4_Rep20_S_empty_rep_storageE, %rdi
je .L233
leaq 15(%rsp), %rsi
call _ZNSs4_Rep10_M_disposeERKSaIcE.part.0
.L233:
movq %rbx, %rdi
.LEHB10:
call _Unwind_Resume
.LEHE10:
.L234:
jmp .L251
.cfi_endproc
.LFE4028:
.section .gcc_except_table,"a",@progbits
.LLSDA4028:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE4028-.LLSDACSB4028
.LLSDACSB4028:
.uleb128 .LEHB6-.LFB4028
.uleb128 .LEHE6-.LEHB6
.uleb128 0
.uleb128 0
.uleb128 .LEHB7-.LFB4028
.uleb128 .LEHE7-.LEHB7
.uleb128 .L234-.LFB4028
.uleb128 0
.uleb128 .LEHB8-.LFB4028
.uleb128 .LEHE8-.LEHB8
.uleb128 0
.uleb128 0
.uleb128 .LEHB9-.LFB4028
.uleb128 .LEHE9-.LEHB9
.uleb128 .L235-.LFB4028
.uleb128 0
.uleb128 .LEHB10-.LFB4028
.uleb128 .LEHE10-.LEHB10
.uleb128 0
.uleb128 0
.LLSDACSE4028:
.section .text.startup
.size _GLOBAL__sub_I_N, .-_GLOBAL__sub_I_N
.section .text.unlikely
.LCOLDE34:
.section .text.startup
.LHOTE34:
.section .init_array,"aw"
.align 8
.quad _GLOBAL__sub_I_N
.weak _ZTS16DynamicInterface
.section .rodata._ZTS16DynamicInterface,"aG",@progbits,_ZTS16DynamicInterface,comdat
.align 16
.type _ZTS16DynamicInterface, @object
.size _ZTS16DynamicInterface, 19
_ZTS16DynamicInterface:
.string "16DynamicInterface"
.weak _ZTI16DynamicInterface
.section .rodata._ZTI16DynamicInterface,"aG",@progbits,_ZTI16DynamicInterface,comdat
.align 8
.type _ZTI16DynamicInterface, @object
.size _ZTI16DynamicInterface, 16
_ZTI16DynamicInterface:
.quad _ZTVN10__cxxabiv117__class_type_infoE+16
.quad _ZTS16DynamicInterface
.weak _ZTS21DynamicImplementation
.section .rodata._ZTS21DynamicImplementation,"aG",@progbits,_ZTS21DynamicImplementation,comdat
.align 16
.type _ZTS21DynamicImplementation, @object
.size _ZTS21DynamicImplementation, 24
_ZTS21DynamicImplementation:
.string "21DynamicImplementation"
.weak _ZTI21DynamicImplementation
.section .rodata._ZTI21DynamicImplementation,"aG",@progbits,_ZTI21DynamicImplementation,comdat
.align 8
.type _ZTI21DynamicImplementation, @object
.size _ZTI21DynamicImplementation, 24
_ZTI21DynamicImplementation:
.quad _ZTVN10__cxxabiv120__si_class_type_infoE+16
.quad _ZTS21DynamicImplementation
.quad _ZTI16DynamicInterface
.weak _ZTSN5hayai4TestE
.section .rodata._ZTSN5hayai4TestE,"aG",@progbits,_ZTSN5hayai4TestE,comdat
.align 8
.type _ZTSN5hayai4TestE, @object
.size _ZTSN5hayai4TestE, 14
_ZTSN5hayai4TestE:
.string "N5hayai4TestE"
.weak _ZTIN5hayai4TestE
.section .rodata._ZTIN5hayai4TestE,"aG",@progbits,_ZTIN5hayai4TestE,comdat
.align 8
.type _ZTIN5hayai4TestE, @object
.size _ZTIN5hayai4TestE, 16
_ZTIN5hayai4TestE:
.quad _ZTVN10__cxxabiv117__class_type_infoE+16
.quad _ZTSN5hayai4TestE
.weak _ZTSN5hayai11TestFactoryE
.section .rodata._ZTSN5hayai11TestFactoryE,"aG",@progbits,_ZTSN5hayai11TestFactoryE,comdat
.align 16
.type _ZTSN5hayai11TestFactoryE, @object
.size _ZTSN5hayai11TestFactoryE, 22
_ZTSN5hayai11TestFactoryE:
.string "N5hayai11TestFactoryE"
.weak _ZTIN5hayai11TestFactoryE
.section .rodata._ZTIN5hayai11TestFactoryE,"aG",@progbits,_ZTIN5hayai11TestFactoryE,comdat
.align 8
.type _ZTIN5hayai11TestFactoryE, @object
.size _ZTIN5hayai11TestFactoryE, 16
_ZTIN5hayai11TestFactoryE:
.quad _ZTVN10__cxxabiv117__class_type_infoE+16
.quad _ZTSN5hayai11TestFactoryE
.weak _ZTS38DynamicInterface_run_dynamic_Benchmark
.section .rodata._ZTS38DynamicInterface_run_dynamic_Benchmark,"aG",@progbits,_ZTS38DynamicInterface_run_dynamic_Benchmark,comdat
.align 32
.type _ZTS38DynamicInterface_run_dynamic_Benchmark, @object
.size _ZTS38DynamicInterface_run_dynamic_Benchmark, 41
_ZTS38DynamicInterface_run_dynamic_Benchmark:
.string "38DynamicInterface_run_dynamic_Benchmark"
.weak _ZTI38DynamicInterface_run_dynamic_Benchmark
.section .rodata._ZTI38DynamicInterface_run_dynamic_Benchmark,"aG",@progbits,_ZTI38DynamicInterface_run_dynamic_Benchmark,comdat
.align 8
.type _ZTI38DynamicInterface_run_dynamic_Benchmark, @object
.size _ZTI38DynamicInterface_run_dynamic_Benchmark, 24
_ZTI38DynamicInterface_run_dynamic_Benchmark:
.quad _ZTVN10__cxxabiv120__si_class_type_infoE+16
.quad _ZTS38DynamicInterface_run_dynamic_Benchmark
.quad _ZTIN5hayai4TestE
.weak _ZTSN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE
.section .rodata._ZTSN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE,"aG",@progbits,_ZTSN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE,comdat
.align 32
.type _ZTSN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE, @object
.size _ZTSN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE, 71
_ZTSN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE:
.string "N5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE"
.weak _ZTIN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE
.section .rodata._ZTIN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE,"aG",@progbits,_ZTIN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE,comdat
.align 8
.type _ZTIN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE, @object
.size _ZTIN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE, 24
_ZTIN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE:
.quad _ZTVN10__cxxabiv120__si_class_type_infoE+16
.quad _ZTSN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE
.quad _ZTIN5hayai11TestFactoryE
.weak _ZTS32CRTPInterface_run_crtp_Benchmark
.section .rodata._ZTS32CRTPInterface_run_crtp_Benchmark,"aG",@progbits,_ZTS32CRTPInterface_run_crtp_Benchmark,comdat
.align 32
.type _ZTS32CRTPInterface_run_crtp_Benchmark, @object
.size _ZTS32CRTPInterface_run_crtp_Benchmark, 35
_ZTS32CRTPInterface_run_crtp_Benchmark:
.string "32CRTPInterface_run_crtp_Benchmark"
.weak _ZTI32CRTPInterface_run_crtp_Benchmark
.section .rodata._ZTI32CRTPInterface_run_crtp_Benchmark,"aG",@progbits,_ZTI32CRTPInterface_run_crtp_Benchmark,comdat
.align 8
.type _ZTI32CRTPInterface_run_crtp_Benchmark, @object
.size _ZTI32CRTPInterface_run_crtp_Benchmark, 24
_ZTI32CRTPInterface_run_crtp_Benchmark:
.quad _ZTVN10__cxxabiv120__si_class_type_infoE+16
.quad _ZTS32CRTPInterface_run_crtp_Benchmark
.quad _ZTIN5hayai4TestE
.weak _ZTSN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE
.section .rodata._ZTSN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE,"aG",@progbits,_ZTSN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE,comdat
.align 32
.type _ZTSN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE, @object
.size _ZTSN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE, 65
_ZTSN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE:
.string "N5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE"
.weak _ZTIN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE
.section .rodata._ZTIN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE,"aG",@progbits,_ZTIN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE,comdat
.align 8
.type _ZTIN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE, @object
.size _ZTIN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE, 24
_ZTIN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE:
.quad _ZTVN10__cxxabiv120__si_class_type_infoE+16
.quad _ZTSN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE
.quad _ZTIN5hayai11TestFactoryE
.weak _ZTV21DynamicImplementation
.section .rodata._ZTV21DynamicImplementation,"aG",@progbits,_ZTV21DynamicImplementation,comdat
.align 8
.type _ZTV21DynamicImplementation, @object
.size _ZTV21DynamicImplementation, 32
_ZTV21DynamicImplementation:
.quad 0
.quad _ZTI21DynamicImplementation
.quad _ZN21DynamicImplementation4tickEm
.quad _ZN21DynamicImplementation8getvalueEv
.weak _ZTVN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE
.section .rodata._ZTVN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE,"aG",@progbits,_ZTVN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE,comdat
.align 8
.type _ZTVN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE, @object
.size _ZTVN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE, 40
_ZTVN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE:
.quad 0
.quad _ZTIN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkEE
.quad _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED1Ev
.quad _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkED0Ev
.quad _ZN5hayai18TestFactoryDefaultI38DynamicInterface_run_dynamic_BenchmarkE10CreateTestEv
.weak _ZTV38DynamicInterface_run_dynamic_Benchmark
.section .rodata._ZTV38DynamicInterface_run_dynamic_Benchmark,"aG",@progbits,_ZTV38DynamicInterface_run_dynamic_Benchmark,comdat
.align 8
.type _ZTV38DynamicInterface_run_dynamic_Benchmark, @object
.size _ZTV38DynamicInterface_run_dynamic_Benchmark, 56
_ZTV38DynamicInterface_run_dynamic_Benchmark:
.quad 0
.quad _ZTI38DynamicInterface_run_dynamic_Benchmark
.quad _ZN5hayai4Test5SetUpEv
.quad _ZN5hayai4Test8TearDownEv
.quad _ZN38DynamicInterface_run_dynamic_BenchmarkD1Ev
.quad _ZN38DynamicInterface_run_dynamic_BenchmarkD0Ev
.quad _ZN38DynamicInterface_run_dynamic_Benchmark8TestBodyEv
.weak _ZTVN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE
.section .rodata._ZTVN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE,"aG",@progbits,_ZTVN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE,comdat
.align 8
.type _ZTVN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE, @object
.size _ZTVN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE, 40
_ZTVN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE:
.quad 0
.quad _ZTIN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkEE
.quad _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED1Ev
.quad _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkED0Ev
.quad _ZN5hayai18TestFactoryDefaultI32CRTPInterface_run_crtp_BenchmarkE10CreateTestEv
.weak _ZTV32CRTPInterface_run_crtp_Benchmark
.section .rodata._ZTV32CRTPInterface_run_crtp_Benchmark,"aG",@progbits,_ZTV32CRTPInterface_run_crtp_Benchmark,comdat
.align 8
.type _ZTV32CRTPInterface_run_crtp_Benchmark, @object
.size _ZTV32CRTPInterface_run_crtp_Benchmark, 56
_ZTV32CRTPInterface_run_crtp_Benchmark:
.quad 0
.quad _ZTI32CRTPInterface_run_crtp_Benchmark
.quad _ZN5hayai4Test5SetUpEv
.quad _ZN5hayai4Test8TearDownEv
.quad _ZN32CRTPInterface_run_crtp_BenchmarkD1Ev
.quad _ZN32CRTPInterface_run_crtp_BenchmarkD0Ev
.quad _ZN32CRTPInterface_run_crtp_Benchmark8TestBodyEv
.globl _ZN32CRTPInterface_run_crtp_Benchmark11_descriptorE
.bss
.align 8
.type _ZN32CRTPInterface_run_crtp_Benchmark11_descriptorE, @object
.size _ZN32CRTPInterface_run_crtp_Benchmark11_descriptorE, 8
_ZN32CRTPInterface_run_crtp_Benchmark11_descriptorE:
.zero 8
.globl _ZN38DynamicInterface_run_dynamic_Benchmark11_descriptorE
.align 8
.type _ZN38DynamicInterface_run_dynamic_Benchmark11_descriptorE, @object
.size _ZN38DynamicInterface_run_dynamic_Benchmark11_descriptorE, 8
_ZN38DynamicInterface_run_dynamic_Benchmark11_descriptorE:
.zero 8
.globl crtpobj
.align 8
.type crtpobj, @object
.size crtpobj, 8
crtpobj:
.zero 8
.globl dynobj
.align 8
.type dynobj, @object
.size dynobj, 8
dynobj:
.zero 8
.globl N
.data
.align 8
.type N, @object
.size N, 8
N:
.quad 1000
.weak _ZZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESsE14disabledPrefix
.section .rodata.str1.1
.LC35:
.string "DISABLED_"
.section .data._ZZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESsE14disabledPrefix,"awG",@progbits,_ZZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESsE14disabledPrefix,comdat
.align 8
.type _ZZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESsE14disabledPrefix, @gnu_unique_object
.size _ZZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESsE14disabledPrefix, 8
_ZZN5hayai11Benchmarker12RegisterTestEPKcS2_mmPNS_11TestFactoryESsE14disabledPrefix:
.quad .LC35
.weak _ZGVZN5hayai11Benchmarker8InstanceEvE9singleton
.section .bss._ZGVZN5hayai11Benchmarker8InstanceEvE9singleton,"awG",@nobits,_ZGVZN5hayai11Benchmarker8InstanceEvE9singleton,comdat
.align 8
.type _ZGVZN5hayai11Benchmarker8InstanceEvE9singleton, @gnu_unique_object
.size _ZGVZN5hayai11Benchmarker8InstanceEvE9singleton, 8
_ZGVZN5hayai11Benchmarker8InstanceEvE9singleton:
.zero 8
.weak _ZZN5hayai11Benchmarker8InstanceEvE9singleton
.section .bss._ZZN5hayai11Benchmarker8InstanceEvE9singleton,"awG",@nobits,_ZZN5hayai11Benchmarker8InstanceEvE9singleton,comdat
.align 32
.type _ZZN5hayai11Benchmarker8InstanceEvE9singleton, @gnu_unique_object
.size _ZZN5hayai11Benchmarker8InstanceEvE9singleton, 72
_ZZN5hayai11Benchmarker8InstanceEvE9singleton:
.zero 72
.local _ZStL8__ioinit
.comm _ZStL8__ioinit,1,1
.weakref _ZL28__gthrw___pthread_key_createPjPFvPvE,__pthread_key_create
.section .rodata.cst16,"aM",@progbits,16
.align 16
.LC6:
.quad 0
.quad 1
.align 16
.LC7:
.quad 2
.quad 2
.hidden __dso_handle
.ident "GCC: (GNU) 5.3.1 20151207 (Red Hat 5.3.1-2)"
.section .note.GNU-stack,"",@progbits
#ifndef CRTP_INTERFACE_HPP__
#define CRTP_INTERFACE_HPP__
template <typename Implementation>
class CRTPInterface {
public:
void tick(unsigned long n) {
impl().tick(n);
}
unsigned long getvalue() {
return impl().getvalue();
}
private:
Implementation& impl() {
return *static_cast<Implementation*>(this);
}
};
class CRTPImplementation : public CRTPInterface<CRTPImplementation> {
unsigned long counter;
public:
CRTPImplementation()
: counter(0) {
}
void tick(unsigned long n) {
counter += n;
}
unsigned long getvalue() {
return counter;
}
};
#endif // CRTP_INTERFACE_HPP__
#ifndef DYNAMIC_INTERFACE_HPP__
#define DYNAMIC_INTERFACE_HPP__
class DynamicInterface {
public:
virtual void tick(unsigned long n) = 0;
virtual unsigned long getvalue() = 0;
};
class DynamicImplementation : public DynamicInterface {
unsigned long counter;
public:
DynamicImplementation()
: counter(0) {
}
virtual void tick(unsigned long n) {
counter += n;
}
virtual unsigned long getvalue() {
return counter;
}
};
#endif // DYNAMIC_INTERFACE_HPP__
[[email protected] benchmark]$ gcc --version
gcc (GCC) 5.3.1 20151207 (Red Hat 5.3.1-2)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
lambday.iitb.ac.in
description: Notebook
product: 2349O92 (LENOVO_MT_2349)
vendor: LENOVO
version: ThinkPad T430
serial: PGP7460
width: 64 bits
capabilities: smbios-2.7 dmi-2.7 vsyscall32
configuration: administrator_password=disabled chassis=notebook family=ThinkPad T430 power-on_password=disabled sku=LENOVO_MT_2349 uuid=01024F1B-3852-CB11-937D-888EF08CBAC7
*-core
description: Motherboard
product: 2349O92
vendor: LENOVO
physical id: 0
version: Not Defined
serial: 1ZSLY34S2I2
slot: Not Available
*-cpu
description: CPU
product: Core i5 (None)
vendor: Intel Corp.
physical id: 1
bus info: cpu@0
version: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
serial: None
slot: CPU Socket - U3E1
size: 3132MHz
capacity: 3200MHz
width: 64 bits
clock: 100MHz
capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt cpufreq
configuration: cores=2 enabledcores=2 threads=4
*-cache:0
description: L1 cache
physical id: 3
slot: L1-Cache
size: 32KiB
capacity: 32KiB
capabilities: internal write-through instruction
*-cache:1
description: L2 cache
physical id: 4
slot: L2-Cache
size: 256KiB
capacity: 256KiB
capabilities: internal write-through unified
*-cache:2
description: L3 cache
physical id: 5
slot: L3-Cache
size: 3MiB
capacity: 3MiB
capabilities: internal write-back unified
*-cache
description: L1 cache
physical id: 2
slot: L1-Cache
size: 32KiB
capacity: 32KiB
capabilities: internal write-through data
*-memory
description: System Memory
physical id: 7
slot: System board or motherboard
size: 8GiB
*-bank:0
description: SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
product: M471B5173BH0-CK0
vendor: Samsung
physical id: 0
serial: 12F110C3
slot: ChannelA-DIMM0
size: 4GiB
width: 64 bits
clock: 1600MHz (0.6ns)
*-bank:1
description: SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
product: CMSO4GX3M1B1600C11
vendor: AMI
physical id: 1
serial: 00000000
slot: ChannelB-DIMM0
size: 4GiB
width: 64 bits
clock: 1600MHz (0.6ns)
*-firmware
description: BIOS
vendor: LENOVO
physical id: c
version: G1ET93WW (2.53 )
date: 03/08/2013
size: 128KiB
capacity: 11MiB
capabilities: pci pnp upgrade shadowing cdboot bootselect edd int13floppy720 int5printscreen int9keyboard int14serial int17printer int10video acpi usb biosbootspecification uefi
*-pci
description: Host bridge
product: 3rd Gen Core processor DRAM Controller
vendor: Intel Corporation
physical id: 100
bus info: pci@0000:00:00.0
version: 09
width: 32 bits
clock: 33MHz
configuration: driver=ivb_uncore
resources: irq:0
*-display
description: VGA compatible controller
product: 3rd Gen Core processor Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 09
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:27 memory:f0000000-f03fffff memory:e0000000-efffffff ioport:5000(size=64)
*-usb:0
description: USB controller
product: 7 Series/C210 Series Chipset Family USB xHCI Host Controller
vendor: Intel Corporation
physical id: 14
bus info: pci@0000:00:14.0
version: 04
width: 64 bits
clock: 33MHz
capabilities: pm msi xhci bus_master cap_list
configuration: driver=xhci_hcd latency=0
resources: irq:25 memory:f2520000-f252ffff
*-usbhost:0
product: xHCI Host Controller
vendor: Linux 4.4.5-200.fc22.x86_64 xhci-hcd
physical id: 0
bus info: usb@4
logical name: usb4
version: 4.04
capabilities: usb-3.00
configuration: driver=hub slots=4 speed=5000Mbit/s
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 4.4.5-200.fc22.x86_64 xhci-hcd
physical id: 1
bus info: usb@3
logical name: usb3
version: 4.04
capabilities: usb-2.00
configuration: driver=hub slots=4 speed=480Mbit/s
*-communication
description: Communication controller
product: 7 Series/C210 Series Chipset Family MEI Controller #1
vendor: Intel Corporation
physical id: 16
bus info: pci@0000:00:16.0
version: 04
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: driver=mei_me latency=0
resources: irq:26 memory:f2535000-f253500f
*-network
description: Ethernet interface
product: 82579LM Gigabit Network Connection
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
logical name: em1
version: 04
serial: 28:d2:44:0b:fe:ae
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k firmware=0.13-3 latency=0 link=no multicast=yes port=twisted pair
resources: irq:29 memory:f2500000-f251ffff memory:f253b000-f253bfff ioport:5080(size=32)
*-usb:1
description: USB controller
product: 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2
vendor: Intel Corporation
physical id: 1a
bus info: pci@0000:00:1a.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pm debug ehci bus_master cap_list
configuration: driver=ehci-pci latency=0
resources: irq:16 memory:f253a000-f253a3ff
*-usbhost
product: EHCI Host Controller
vendor: Linux 4.4.5-200.fc22.x86_64 ehci_hcd
physical id: 1
bus info: usb@1
logical name: usb1
version: 4.04
capabilities: usb-2.00
configuration: driver=hub slots=3 speed=480Mbit/s
*-usb
description: USB hub
product: Integrated Rate Matching Hub
vendor: Intel Corp.
physical id: 1
bus info: usb@1:1
version: 0.00
capabilities: usb-2.00
configuration: driver=hub slots=6 speed=480Mbit/s
*-usb:0 UNCLAIMED
description: Generic USB device
product: Biometric Coprocessor
vendor: Auth
physical id: 3
bus info: usb@1:1.3
version: 0.01
capabilities: usb-1.10
configuration: maxpower=100mA speed=12Mbit/s
*-usb:1
description: Generic USB device
product: BCM20702A0
vendor: Broadcom Corp
physical id: 4
bus info: usb@1:1.4
version: 1.12
serial: 2CD05A7F8C31
capabilities: usb-2.00
configuration: driver=btusb speed=12Mbit/s
*-usb:2
description: Video
product: Integrated Camera
vendor: Chicony Electronics Co., Ltd.
physical id: 6
bus info: usb@1:1.6
version: 5.64
capabilities: usb-2.00
configuration: driver=uvcvideo maxpower=200mA speed=480Mbit/s
*-multimedia
description: Audio device
product: 7 Series/C210 Series Chipset Family High Definition Audio Controller
vendor: Intel Corporation
physical id: 1b
bus info: pci@0000:00:1b.0
version: 04
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: driver=snd_hda_intel latency=0
resources: irq:28 memory:f2530000-f2533fff
*-pci:0
description: PCI bridge
product: 7 Series/C210 Series Chipset Family PCI Express Root Port 1
vendor: Intel Corporation
physical id: 1c
bus info: pci@0000:00:1c.0
version: c4
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:16 ioport:4000(size=4096) memory:f1d00000-f24fffff ioport:f0400000(size=8388608)
*-generic
description: System peripheral
product: MMC/SD Host Controller
vendor: Ricoh Co Ltd
physical id: 0
bus info: pci@0000:02:00.0
version: 07
width: 32 bits
clock: 33MHz
capabilities: msi pm pciexpress bus_master cap_list
configuration: driver=sdhci-pci latency=0
resources: irq:16 memory:f1d00000-f1d000ff
*-pci:1
description: PCI bridge
product: 7 Series/C210 Series Chipset Family PCI Express Root Port 2
vendor: Intel Corporation
physical id: 1c.1
bus info: pci@0000:00:1c.1
version: c4
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:17 memory:f1c00000-f1cfffff
*-network
description: Wireless interface
product: Centrino Advanced-N 6205 [Taylor Peak]
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlp3s0
version: 34
serial: 6c:88:14:82:3c:54
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=4.4.5-200.fc22.x86_64 firmware=18.168.6.1 ip=192.168.1.135 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn
resources: irq:30 memory:f1c00000-f1c01fff
*-pci:2
description: PCI bridge
product: 7 Series/C210 Series Chipset Family PCI Express Root Port 3
vendor: Intel Corporation
physical id: 1c.2
bus info: pci@0000:00:1c.2
version: c4
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:18 ioport:3000(size=4096) memory:f1400000-f1bfffff ioport:f0c00000(size=8388608)
*-usb:2
description: USB controller
product: 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1
vendor: Intel Corporation
physical id: 1d
bus info: pci@0000:00:1d.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pm debug ehci bus_master cap_list
configuration: driver=ehci-pci latency=0
resources: irq:23 memory:f2539000-f25393ff
*-usbhost
product: EHCI Host Controller
vendor: Linux 4.4.5-200.fc22.x86_64 ehci_hcd
physical id: 1
bus info: usb@2
logical name: usb2
version: 4.04
capabilities: usb-2.00
configuration: driver=hub slots=3 speed=480Mbit/s
*-usb
description: USB hub
product: Integrated Rate Matching Hub
vendor: Intel Corp.
physical id: 1
bus info: usb@2:1
version: 0.00
capabilities: usb-2.00
configuration: driver=hub slots=8 speed=480Mbit/s
*-isa
description: ISA bridge
product: QM77 Express Chipset LPC Controller
vendor: Intel Corporation
physical id: 1f
bus info: pci@0000:00:1f.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: isa bus_master cap_list
configuration: driver=lpc_ich latency=0
resources: irq:0
*-storage
description: SATA controller
product: 7 Series Chipset Family 6-port SATA Controller [AHCI mode]
vendor: Intel Corporation
physical id: 1f.2
bus info: pci@0000:00:1f.2
version: 04
width: 32 bits
clock: 66MHz
capabilities: storage msi pm ahci_1.0 bus_master cap_list
configuration: driver=ahci latency=0
resources: irq:24 ioport:50a8(size=8) ioport:50b4(size=4) ioport:50a0(size=8) ioport:50b0(size=4) ioport:5060(size=32) memory:f2538000-f25387ff
*-serial
description: SMBus
product: 7 Series/C210 Series Chipset Family SMBus Controller
vendor: Intel Corporation
physical id: 1f.3
bus info: pci@0000:00:1f.3
version: 04
width: 64 bits
clock: 33MHz
configuration: driver=i801_smbus latency=0
resources: irq:18 memory:f2534000-f25340ff ioport:efa0(size=32)
*-scsi:0
physical id: 0
logical name: scsi0
capabilities: emulated
*-disk
description: ATA Disk
product: HGST HTS725050A7
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: B550
serial: TF655AY90H1Y2J
size: 465GiB (500GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=98113c2f
*-volume:0
description: Windows NTFS volume
physical id: 1
bus info: scsi@0:0.0.0,1
logical name: /dev/sda1
version: 3.1
serial: b8dd-2d24
size: 1498MiB
capacity: 1500MiB
capabilities: primary bootable ntfs initialized
configuration: clustersize=4096 created=2013-06-23 19:58:00 filesystem=ntfs label=SYSTEM_DRV modified_by_chkdsk=true mounted_on_nt4=true resize_log_file=true state=dirty upgrade_on_mount=true
*-volume:1
description: Windows NTFS volume
physical id: 2
bus info: scsi@0:0.0.0,2
logical name: /dev/sda2
version: 3.1
serial: 7a12e3e6-e8a2-e34b-8a71-d1265bd6b502
size: 69GiB
capacity: 70GiB
capabilities: primary ntfs initialized
configuration: clustersize=4096 created=2013-06-23 19:58:04 filesystem=ntfs label=Windows7_OS state=clean
*-volume:2
description: Extended partition
physical id: 3
bus info: scsi@0:0.0.0,3
logical name: /dev/sda3
size: 380GiB
capacity: 380GiB
capabilities: primary extended partitioned partitioned:extended
*-logicalvolume:0
description: HPFS/NTFS partition
physical id: 5
logical name: /dev/sda5
logical name: /run/media/lambday/misc
capacity: 300GiB
configuration: mount.fstype=fuseblk mount.options=rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 state=mounted
*-logicalvolume:1
description: Linux filesystem partition
physical id: 6
logical name: /dev/sda6
capacity: 2MiB
*-logicalvolume:2
description: Linux filesystem partition
physical id: 7
logical name: /dev/sda7
logical name: /boot
capacity: 1000MiB
configuration: mount.fstype=ext4 mount.options=rw,seclabel,relatime,data=ordered state=mounted
*-logicalvolume:3
description: PPC PReP Boot partition
physical id: 8
logical name: /dev/sda8
capacity: 4MiB
capabilities: boot
*-logicalvolume:4
description: Linux LVM Physical Volume partition
physical id: 9
logical name: /dev/sda9
serial: 9yVmn2-5pFt-WCHM-Ah8I-SIiM-g3xj-3U48aW
size: 79GiB
capacity: 79GiB
capabilities: multi lvm2
*-volume:3
description: Windows NTFS volume
physical id: 4
bus info: scsi@0:0.0.0,4
logical name: /dev/sda4
version: 3.1
serial: 340fc12a-058a-8342-9cc7-e4ff9723cd72
size: 13GiB
capacity: 13GiB
capabilities: primary ntfs initialized
configuration: clustersize=4096 created=2013-06-23 19:57:55 filesystem=ntfs label=Lenovo_Recovery modified_by_chkdsk=true mounted_on_nt4=true resize_log_file=true state=dirty upgrade_on_mount=true
*-scsi:1
physical id: 3
logical name: scsi1
capabilities: emulated
*-cdrom
description: DVD-RAM writer
product: DVD-RW DS8A8SH
vendor: PLDS
physical id: 0.0.0
bus info: scsi@1:0.0.0
logical name: /dev/cdrom
logical name: /dev/sr0
version: KU54
capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
configuration: ansiversion=5 status=nodisc
*-battery
product: 45N1105
vendor: SANYO
physical id: 1
slot: Rear
capacity: 38880mWh
configuration: voltage=10.8V
*-network DISABLED
description: Ethernet interface
physical id: 2
logical name: virbr0-nic
serial: 52:54:00:4a:65:86
size: 10Mbit/s
capabilities: ethernet physical
configuration: autonegotiation=off broadcast=yes driver=tun driverversion=1.6 duplex=full link=no multicast=yes port=twisted pair speed=10Mbit/s
[[email protected] benchmark]$ g++ -O3 -std=c++14 benchmark.cpp -lhayai_main -I.
[[email protected] benchmark]$ ./a.out
[==========] Running 2 benchmarks.
[ RUN ] DynamicInterface.run_dynamic (100 runs, 1000 iterations per run)
[ DONE ] DynamicInterface.run_dynamic (102781.785000 ms)
[ RUNS ] Average time: 1027817.850 us
Fastest: 1018282.000 us (-9535.850 us / -0.928 %)
Slowest: 1058785.000 us (+30967.150 us / +3.013 %)
Average performance: 0.97294 runs/s
Best performance: 0.98205 runs/s (+0.00911 runs/s / +0.93646 %)
Worst performance: 0.94448 runs/s (-0.02846 runs/s / -2.92478 %)
[ITERATIONS] Average time: 1027.818 us
Fastest: 1018.282 us (-9.536 us / -0.928 %)
Slowest: 1058.785 us (+30.967 us / +3.013 %)
Average performance: 972.93504 iterations/s
Best performance: 982.04623 iterations/s (+9.11119 iterations/s / +0.93646 %)
Worst performance: 944.47881 iterations/s (-28.45623 iterations/s / -2.92478 %)
[ RUN ] CRTPInterface.run_crtp (100 runs, 1000 iterations per run)
[ DONE ] CRTPInterface.run_crtp (15121.703000 ms)
[ RUNS ] Average time: 151217.030 us
Fastest: 147873.000 us (-3344.030 us / -2.211 %)
Slowest: 186590.000 us (+35372.970 us / +23.392 %)
Average performance: 6.61301 runs/s
Best performance: 6.76256 runs/s (+0.14955 runs/s / +2.26142 %)
Worst performance: 5.35934 runs/s (-1.25367 runs/s / -18.95759 %)
[ITERATIONS] Average time: 151.217 us
Fastest: 147.873 us (-3.344 us / -2.211 %)
Slowest: 186.590 us (+35.373 us / +23.392 %)
Average performance: 6613.01178 iterations/s
Best performance: 6762.55976 iterations/s (+149.54799 iterations/s / +2.26142 %)
Worst performance: 5359.34402 iterations/s (-1253.66776 iterations/s / -18.95759 %)
[==========] Ran 2 benchmarks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment