https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64500
--- Comment #7 from Sam James <sjames at gcc dot gnu.org> --- For me, it still looks pretty brutal: + 6.47% 6.45% cc1plus cc1plus [.] push_to_top_level + 5.34% 5.33% cc1plus cc1plus [.] get_class_binding_direct 54.77 │ ┌──cmpw $0x2,%dx 0.13 │ ├──je 9bf 0.13 │ │ movzwl %dx,%esi 0.56 │ │ movq %rsi,%rax │ │ shlq $0x6, %rsi 0.13 │ │ cmpb $0x0,0xc(%rbx,%rsi) 12.94 │ │→ je push_to_top_level 3.14 │ │ movq 0x28(%r14),%r15 3.12 │ │ testq %r15,%r15 0.06 │ │↑ je 160 │1a8:│ cmpw $0x1,(%r15) 19.08 │ │→ jne push_to_top_level │ │ cmpq $0x0,0x38(%r15) 0.71 │ │ movzwl %dx,%eax then │23d:│ movq 0x30(%r13),%r13 │ ├──testq %r13,%r13 │ └──jne 136 but let's see if Andi can reproduce that.