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.

Reply via email to