Function: qmcplusplus::TimerType<qmcplusplus::CPUClock>::start() | Module: exec | Source: NewTimer.cpp:38-81 [...] | Coverage: 0.08% |
---|
Function: qmcplusplus::TimerType<qmcplusplus::CPUClock>::start() | Module: exec | Source: NewTimer.cpp:38-81 [...] | Coverage: 0.08% |
---|
/home/kcamus/qaas_runs/169-451-1869/intel/miniqmc/build/miniqmc/src/Utilities/NewTimer.cpp: 38 - 81 |
-------------------------------------------------------------------------------- |
38: { |
39: if (active) |
[...] |
53: for (int level = omp_get_level(); level > 0; level--) |
54: if (omp_get_ancestor_thread_num(level) != 0) |
55: is_true_master = false; |
56: if (is_true_master) |
57: { |
58: if (manager) |
59: { |
60: // compute current_stack_key |
61: TimerType* parent = manager->current_timer(); |
62: if (parent) |
63: { |
64: current_stack_key = parent->get_stack_key(); |
65: current_stack_key.add_id(timer_id); |
66: } |
67: else |
68: { |
69: current_stack_key = StackKey(); |
70: current_stack_key.add_id(timer_id); |
71: } |
72: |
73: manager->push_timer(this); |
74: } |
75: start_time = CLOCK()(); |
[...] |
81: } |
/home/kcamus/qaas_runs/169-451-1869/intel/miniqmc/build/miniqmc/src/Utilities/TimerManager.h: 92 - 93 |
-------------------------------------------------------------------------------- |
92: if (CurrentTimerStack.size() > 0) |
93: current = CurrentTimerStack.back(); |
/home/kcamus/qaas_runs/169-451-1869/intel/miniqmc/build/miniqmc/src/Utilities/NewTimer.h: 90 - 97 |
-------------------------------------------------------------------------------- |
90: short_buckets[level] = c1; |
91: if (level >= max_level - 1) |
92: { |
93: timer_max_level_exceeded = true; |
94: } |
95: else |
96: { |
97: level++; |
/home/kcamus/qaas_runs/169-451-1869/intel/miniqmc/build/miniqmc/src/Utilities/Clock.h: 33 - 33 |
-------------------------------------------------------------------------------- |
33: return omp_get_wtime(); |
/usr/lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/bits/stl_vector.h: 990 - 990 |
-------------------------------------------------------------------------------- |
990: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } |
0x45de10 PUSH %RBP |
0x45de11 MOV %RSP,%RBP |
0x45de14 PUSH %R15 |
0x45de16 PUSH %R14 |
0x45de18 PUSH %R13 |
0x45de1a PUSH %R12 |
0x45de1c PUSH %RBX |
0x45de1d SUB $0x38,%RSP |
0x45de21 CMPB $0,0x38(%RDI) |
0x45de25 JE 45e002 |
0x45de2b MOV %RDI,%R14 |
0x45de2e CALL 404600 <omp_get_level@plt> |
0x45de33 TEST %EAX,%EAX |
0x45de35 JLE 45df78 |
0x45de3b MOV %R14,-0x50(%RBP) |
0x45de3f MOV $0x1,%R12B |
0x45de42 MOV %RAX,-0x58(%RBP) |
0x45de46 CMP $0x8,%EAX |
0x45de49 JB 45df32 |
0x45de4f MOV -0x58(%RBP),%RAX |
0x45de53 MOV %EAX,%R15D |
0x45de56 SHR $0x3,%R15D |
0x45de5a LEA -0x7(%RAX),%EBX |
0x45de5d MOV $0x1,%R12B |
(1047) 0x45de60 LEA 0x7(%RBX),%EDI |
(1047) 0x45de63 LEA 0x6(%RBX),%R13D |
(1047) 0x45de67 LEA 0x5(%RBX),%R14D |
(1047) 0x45de6b LEA 0x4(%RBX),%EAX |
(1047) 0x45de6e MOV %EAX,-0x2c(%RBP) |
(1047) 0x45de71 LEA 0x3(%RBX),%EAX |
(1047) 0x45de74 MOV %EAX,-0x30(%RBP) |
(1047) 0x45de77 LEA 0x2(%RBX),%EAX |
(1047) 0x45de7a MOV %EAX,-0x38(%RBP) |
(1047) 0x45de7d LEA 0x1(%RBX),%EAX |
(1047) 0x45de80 MOV %EAX,-0x3c(%RBP) |
(1047) 0x45de83 VZEROUPPER |
(1047) 0x45de86 CALL 404220 <omp_get_ancestor_thread_num@plt> |
(1047) 0x45de8b MOV %EAX,-0x44(%RBP) |
(1047) 0x45de8e MOV %R13D,%EDI |
(1047) 0x45de91 CALL 404220 <omp_get_ancestor_thread_num@plt> |
(1047) 0x45de96 MOV %EAX,-0x40(%RBP) |
(1047) 0x45de99 MOV %R14D,%EDI |
(1047) 0x45de9c CALL 404220 <omp_get_ancestor_thread_num@plt> |
(1047) 0x45dea1 MOV %EAX,-0x34(%RBP) |
(1047) 0x45dea4 MOV -0x2c(%RBP),%EDI |
(1047) 0x45dea7 CALL 404220 <omp_get_ancestor_thread_num@plt> |
(1047) 0x45deac MOV %EAX,-0x2c(%RBP) |
(1047) 0x45deaf MOV -0x30(%RBP),%EDI |
(1047) 0x45deb2 CALL 404220 <omp_get_ancestor_thread_num@plt> |
(1047) 0x45deb7 MOV %EAX,-0x30(%RBP) |
(1047) 0x45deba MOV -0x38(%RBP),%EDI |
(1047) 0x45debd CALL 404220 <omp_get_ancestor_thread_num@plt> |
(1047) 0x45dec2 MOV %EAX,%R14D |
(1047) 0x45dec5 MOV -0x3c(%RBP),%EDI |
(1047) 0x45dec8 CALL 404220 <omp_get_ancestor_thread_num@plt> |
(1047) 0x45decd MOV %EAX,%R13D |
(1047) 0x45ded0 MOV %EBX,%EDI |
(1047) 0x45ded2 CALL 404220 <omp_get_ancestor_thread_num@plt> |
(1047) 0x45ded7 VMOVD -0x2c(%RBP),%XMM0 |
(1047) 0x45dedc VPINSRD $0x1,-0x34(%RBP),%XMM0,%XMM0 |
(1047) 0x45dee3 VPINSRD $0x2,-0x40(%RBP),%XMM0,%XMM0 |
(1047) 0x45deea VPINSRD $0x3,-0x44(%RBP),%XMM0,%XMM0 |
(1047) 0x45def1 VMOVD %R13D,%XMM1 |
(1047) 0x45def6 VPINSRD $0x1,%EAX,%XMM1,%XMM1 |
(1047) 0x45defc VPINSRD $0x2,%R14D,%XMM1,%XMM1 |
(1047) 0x45df02 VPINSRD $0x3,-0x30(%RBP),%XMM1,%XMM1 |
(1047) 0x45df09 VINSERTI128 $0x1,%XMM0,%YMM1,%YMM0 |
(1047) 0x45df0f VPTESTMD %YMM0,%YMM0,%K0 |
(1047) 0x45df15 KORTESTB %K0,%K0 |
(1047) 0x45df19 MOVZX %R12B,%R12D |
(1047) 0x45df1d MOV $0,%EAX |
(1047) 0x45df22 CMOVNE %EAX,%R12D |
(1047) 0x45df26 ADD $-0x8,%EBX |
(1047) 0x45df29 DEC %R15D |
(1047) 0x45df2c JNE 45de60 |
0x45df32 MOV -0x58(%RBP),%RBX |
0x45df36 MOV %EBX,%EAX |
0x45df38 AND $-0x8,%EAX |
0x45df3b CMP %EBX,%EAX |
0x45df3d JAE 45df6a |
0x45df3f SUB %EAX,%EBX |
0x45df41 XOR %R15D,%R15D |
0x45df44 MOV -0x50(%RBP),%R14 |
0x45df48 NOPL (%RAX,%RAX,1) |
(1046) 0x45df50 MOV %EBX,%EDI |
(1046) 0x45df52 VZEROUPPER |
(1046) 0x45df55 CALL 404220 <omp_get_ancestor_thread_num@plt> |
(1046) 0x45df5a TEST %EAX,%EAX |
(1046) 0x45df5c MOVZX %R12B,%R12D |
(1046) 0x45df60 CMOVNE %R15D,%R12D |
(1046) 0x45df64 DEC %EBX |
(1046) 0x45df66 JNE 45df50 |
0x45df68 JMP 45df6e |
0x45df6a MOV -0x50(%RBP),%R14 |
0x45df6e TEST $0x1,%R12B |
0x45df72 JE 45e002 |
0x45df78 MOV 0x48(%R14),%RAX |
0x45df7c TEST %RAX,%RAX |
0x45df7f JE 45dff5 |
0x45df81 MOV 0x48(%RAX),%RCX |
0x45df85 CMP 0x40(%RAX),%RCX |
0x45df89 JE 45dfc3 |
0x45df8b MOV -0x8(%RCX),%RAX |
0x45df8f TEST %RAX,%RAX |
0x45df92 JE 45dfc3 |
0x45df94 VMOVDQU 0x50(%RAX),%XMM0 |
0x45df99 VMOVDQU %XMM0,0x50(%R14) |
0x45df9f MOVSXD 0x60(%RAX),%RAX |
0x45dfa3 MOV %EAX,0x60(%R14) |
0x45dfa7 MOVZX 0x40(%R14),%ECX |
0x45dfac MOV %CL,0x50(%R14,%RAX,1) |
0x45dfb1 MOV 0x60(%R14),%EAX |
0x45dfb5 CMP $0xf,%EAX |
0x45dfb8 JL 45dfe0 |
0x45dfba MOVB $0x1,0x940bf(%RIP) |
0x45dfc1 JMP 45dfe6 |
0x45dfc3 VPXOR %XMM0,%XMM0,%XMM0 |
0x45dfc7 VMOVDQU %XMM0,0x50(%R14) |
0x45dfcd MOVZX 0x40(%R14),%EAX |
0x45dfd2 MOV %AL,0x50(%R14) |
0x45dfd6 MOVL $0x1,0x60(%R14) |
0x45dfde JMP 45dfe6 |
0x45dfe0 INC %EAX |
0x45dfe2 MOV %EAX,0x60(%R14) |
0x45dfe6 MOV 0x48(%R14),%RDI |
0x45dfea MOV %R14,%RSI |
0x45dfed VZEROUPPER |
0x45dff0 CALL 4631e0 <_ZN11qmcplusplus12TimerManagerINS_9TimerTypeINS_8CPUClockEEEE10push_timerEPS3_> |
0x45dff5 VZEROUPPER |
0x45dff8 CALL 4044c0 <omp_get_wtime@plt> |
0x45dffd VMOVQ %XMM0,(%R14) |
0x45e002 ADD $0x38,%RSP |
0x45e006 POP %RBX |
0x45e007 POP %R12 |
0x45e009 POP %R13 |
0x45e00b POP %R14 |
0x45e00d POP %R15 |
0x45e00f POP %RBP |
0x45e010 VZEROUPPER |
0x45e013 RET |
0x45e014 NOPW %CS:(%RAX,%RAX,1) |
0x45e01e XCHG %AX,%AX |
Coverage (%) | Name | Source Location | Module |
---|---|---|---|
►22.22+ | qmcplusplus::ParticleSet::make[...] | ParticleSet.cpp:288 | exec |
○ | main.extracted.104 | miniqmc.cpp:482 | exec |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_fork_call | libiomp5.so | |
○ | __kmpc_fork_call | libiomp5.so | |
○ | main | miniqmc.cpp:404 | exec |
○ | __libc_init_first | libc.so.6 | |
►22.22+ | main.extracted.104 | stl_vector.h:1126 | exec |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_fork_call | libiomp5.so | |
○ | __kmpc_fork_call | libiomp5.so | |
○ | main | miniqmc.cpp:404 | exec |
○ | __libc_init_first | libc.so.6 | |
►11.11+ | main.extracted.104 | miniqmc.cpp:445 | exec |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_fork_call | libiomp5.so | |
○ | __kmpc_fork_call | libiomp5.so | |
○ | main | miniqmc.cpp:404 | exec |
○ | __libc_init_first | libc.so.6 | |
►11.11+ | qmcplusplus::WaveFunction::eva[...] | stl_vector.h:1126 | exec |
○ | main.extracted.104 | stl_vector.h:1126 | exec |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_fork_call | libiomp5.so | |
○ | __kmpc_fork_call | libiomp5.so | |
○ | main | miniqmc.cpp:404 | exec |
○ | __libc_init_first | libc.so.6 | |
►11.11+ | qmcplusplus::WaveFunction::rat[...] | stl_vector.h:1126 | exec |
○ | main.extracted.104 | stl_vector.h:1126 | exec |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_fork_call | libiomp5.so | |
○ | __kmpc_fork_call | libiomp5.so | |
○ | main | miniqmc.cpp:404 | exec |
○ | __libc_init_first | libc.so.6 | |
►11.11+ | qmcplusplus::ParticleSet::make[...] | ParticleSet.cpp:288 | exec |
○ | main.extracted.104 | stl_vector.h:1126 | exec |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_fork_call | libiomp5.so | |
○ | __kmpc_fork_call | libiomp5.so | |
○ | main | miniqmc.cpp:404 | exec |
○ | __libc_init_first | libc.so.6 | |
►11.11+ | main.extracted.104 | miniqmc.cpp:484 | exec |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_fork_call | libiomp5.so | |
○ | __kmpc_fork_call | libiomp5.so | |
○ | main | miniqmc.cpp:404 | exec |
○ | __libc_init_first | libc.so.6 |
Path / |
Source file and lines | NewTimer.cpp:38-81 |
Module | exec |
nb instructions | 83 |
nb uops | 95 |
loop length | 294 |
used x86 registers | 11 |
used mmx registers | 0 |
used xmm registers | 1 |
used ymm registers | 0 |
used zmm registers | 0 |
nb stack references | 2 |
micro-operation queue | 23.75 cycles |
front end | 23.75 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | |
---|---|---|---|---|---|---|---|---|
uops | 8.50 | 8.50 | 14.17 | 13.83 | 20.00 | 8.50 | 8.50 | 14.00 |
cycles | 8.50 | 8.50 | 14.17 | 13.83 | 20.00 | 8.50 | 8.50 | 14.00 |
Cycles executing div or sqrt instructions | NA |
FE+BE cycles | 20.99 |
Stall cycles | 0.00 |
Front-end | 23.75 |
Dispatch | 20.00 |
Overall L1 | 23.75 |
all | 25% |
load | 25% |
store | 22% |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | 0% |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 25% |
all | 12% |
load | 12% |
store | 11% |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | 6% |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 12% |
Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | Latency | Recip. throughput |
---|---|---|---|---|---|---|---|---|---|---|---|
PUSH %RBP | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOV %RSP,%RBP | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
PUSH %R15 | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
PUSH %R14 | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
PUSH %R13 | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
PUSH %R12 | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
PUSH %RBX | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
SUB $0x38,%RSP | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
CMPB $0,0x38(%RDI) | 1 | 0.25 | 0.25 | 0.50 | 0.50 | 0 | 0.25 | 0.25 | 0 | 1 | 0.50 |
JE 45e002 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV %RDI,%R14 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
CALL 404600 | 2 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 1 | 0.33 | 0 | 1 |
TEST %EAX,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JLE 45df78 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV %R14,-0x50(%RBP) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOV $0x1,%R12B | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
MOV %RAX,-0x58(%RBP) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
CMP $0x8,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JB 45df32 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV -0x58(%RBP),%RAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %EAX,%R15D | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
SHR $0x3,%R15D | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 1 | 0.50 |
LEA -0x7(%RAX),%EBX | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 1 | 0.50 |
MOV $0x1,%R12B | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
MOV -0x58(%RBP),%RBX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %EBX,%EAX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
AND $-0x8,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
CMP %EBX,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JAE 45df6a | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
SUB %EAX,%EBX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
XOR %R15D,%R15D | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
MOV -0x50(%RBP),%R14 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
NOPL (%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
JMP 45df6e | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1-2 |
MOV -0x50(%RBP),%R14 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
TEST $0x1,%R12B | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JE 45e002 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV 0x48(%R14),%RAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
TEST %RAX,%RAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JE 45dff5 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV 0x48(%RAX),%RCX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
CMP 0x40(%RAX),%RCX | 1 | 0.25 | 0.25 | 0.50 | 0.50 | 0 | 0.25 | 0.25 | 0 | 1 | 0.50 |
JE 45dfc3 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV -0x8(%RCX),%RAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
TEST %RAX,%RAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JE 45dfc3 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
VMOVDQU 0x50(%RAX),%XMM0 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VMOVDQU %XMM0,0x50(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 4 | 1 |
MOVSXD 0x60(%RAX),%RAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %EAX,0x60(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOVZX 0x40(%R14),%ECX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %CL,0x50(%R14,%RAX,1) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOV 0x60(%R14),%EAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
CMP $0xf,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JL 45dfe0 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOVB $0x1,0x940bf(%RIP) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 2 | 1 |
JMP 45dfe6 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1-2 |
VPXOR %XMM0,%XMM0,%XMM0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
VMOVDQU %XMM0,0x50(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 4 | 1 |
MOVZX 0x40(%R14),%EAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %AL,0x50(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOVL $0x1,0x60(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 2 | 1 |
JMP 45dfe6 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1-2 |
INC %EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
MOV %EAX,0x60(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOV 0x48(%R14),%RDI | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %R14,%RSI | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
VZEROUPPER | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
CALL 4631e0 <_ZN11qmcplusplus12TimerManagerINS_9TimerTypeINS_8CPUClockEEEE10push_timerEPS3_> | 2 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 1 | 0.33 | 0 | 1 |
VZEROUPPER | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
CALL 4044c0 | 2 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 1 | 0.33 | 0 | 1 |
VMOVQ %XMM0,(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
ADD $0x38,%RSP | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
POP %RBX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %R12 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %R13 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %R14 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %R15 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %RBP | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
VZEROUPPER | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
RET | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 1 | 0.33 | 0 | 1 |
NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
XCHG %AX,%AX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
Source file and lines | NewTimer.cpp:38-81 |
Module | exec |
nb instructions | 83 |
nb uops | 95 |
loop length | 294 |
used x86 registers | 11 |
used mmx registers | 0 |
used xmm registers | 1 |
used ymm registers | 0 |
used zmm registers | 0 |
nb stack references | 2 |
micro-operation queue | 23.75 cycles |
front end | 23.75 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | |
---|---|---|---|---|---|---|---|---|
uops | 8.50 | 8.50 | 14.17 | 13.83 | 20.00 | 8.50 | 8.50 | 14.00 |
cycles | 8.50 | 8.50 | 14.17 | 13.83 | 20.00 | 8.50 | 8.50 | 14.00 |
Cycles executing div or sqrt instructions | NA |
FE+BE cycles | 20.99 |
Stall cycles | 0.00 |
Front-end | 23.75 |
Dispatch | 20.00 |
Overall L1 | 23.75 |
all | 25% |
load | 25% |
store | 22% |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | 0% |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 25% |
all | 12% |
load | 12% |
store | 11% |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | 6% |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 12% |
Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | Latency | Recip. throughput |
---|---|---|---|---|---|---|---|---|---|---|---|
PUSH %RBP | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOV %RSP,%RBP | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
PUSH %R15 | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
PUSH %R14 | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
PUSH %R13 | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
PUSH %R12 | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
PUSH %RBX | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
SUB $0x38,%RSP | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
CMPB $0,0x38(%RDI) | 1 | 0.25 | 0.25 | 0.50 | 0.50 | 0 | 0.25 | 0.25 | 0 | 1 | 0.50 |
JE 45e002 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV %RDI,%R14 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
CALL 404600 | 2 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 1 | 0.33 | 0 | 1 |
TEST %EAX,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JLE 45df78 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV %R14,-0x50(%RBP) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOV $0x1,%R12B | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
MOV %RAX,-0x58(%RBP) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
CMP $0x8,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JB 45df32 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV -0x58(%RBP),%RAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %EAX,%R15D | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
SHR $0x3,%R15D | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 1 | 0.50 |
LEA -0x7(%RAX),%EBX | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 1 | 0.50 |
MOV $0x1,%R12B | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
MOV -0x58(%RBP),%RBX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %EBX,%EAX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
AND $-0x8,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
CMP %EBX,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JAE 45df6a | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
SUB %EAX,%EBX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
XOR %R15D,%R15D | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
MOV -0x50(%RBP),%R14 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
NOPL (%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
JMP 45df6e | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1-2 |
MOV -0x50(%RBP),%R14 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
TEST $0x1,%R12B | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JE 45e002 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV 0x48(%R14),%RAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
TEST %RAX,%RAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JE 45dff5 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV 0x48(%RAX),%RCX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
CMP 0x40(%RAX),%RCX | 1 | 0.25 | 0.25 | 0.50 | 0.50 | 0 | 0.25 | 0.25 | 0 | 1 | 0.50 |
JE 45dfc3 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOV -0x8(%RCX),%RAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
TEST %RAX,%RAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JE 45dfc3 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
VMOVDQU 0x50(%RAX),%XMM0 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VMOVDQU %XMM0,0x50(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 4 | 1 |
MOVSXD 0x60(%RAX),%RAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %EAX,0x60(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOVZX 0x40(%R14),%ECX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %CL,0x50(%R14,%RAX,1) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOV 0x60(%R14),%EAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
CMP $0xf,%EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
JL 45dfe0 | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50-1 |
MOVB $0x1,0x940bf(%RIP) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 2 | 1 |
JMP 45dfe6 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1-2 |
VPXOR %XMM0,%XMM0,%XMM0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
VMOVDQU %XMM0,0x50(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 4 | 1 |
MOVZX 0x40(%R14),%EAX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %AL,0x50(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOVL $0x1,0x60(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 2 | 1 |
JMP 45dfe6 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1-2 |
INC %EAX | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
MOV %EAX,0x60(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
MOV 0x48(%R14),%RDI | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 4-5 | 0.50 |
MOV %R14,%RSI | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
VZEROUPPER | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
CALL 4631e0 <_ZN11qmcplusplus12TimerManagerINS_9TimerTypeINS_8CPUClockEEEE10push_timerEPS3_> | 2 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 1 | 0.33 | 0 | 1 |
VZEROUPPER | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
CALL 4044c0 | 2 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 1 | 0.33 | 0 | 1 |
VMOVQ %XMM0,(%R14) | 1 | 0 | 0 | 0.33 | 0.33 | 1 | 0 | 0 | 0.33 | 3 | 1 |
ADD $0x38,%RSP | 1 | 0.25 | 0.25 | 0 | 0 | 0 | 0.25 | 0.25 | 0 | 1 | 0.25 |
POP %RBX | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %R12 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %R13 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %R14 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %R15 | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
POP %RBP | 1 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 2 | 0.50 |
VZEROUPPER | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
RET | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 1 | 0.33 | 0 | 1 |
NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
XCHG %AX,%AX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 |
Name | Coverage (%) | Time (s) |
---|---|---|
▼qmcplusplus::TimerType | 0.08 | 0.04 |
○Loop 1046 - NewTimer.cpp:53-54 - exec | 0.01 | 0 |
○Loop 1047 - NewTimer.cpp:53-54 - exec | 0 | 0 |