This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/84058] New: RTl partitioning fixup should drag very small blocks back to hot partition


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84058

            Bug ID: 84058
           Summary: RTl partitioning fixup should drag very small blocks
                    back to hot partition
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hubicka at gcc dot gnu.org
  Target Milestone: ---

In LTO/FDO bootstrapped compiler we have cold functions like this:
000000000065b2e8 <_Z27is_gimple_invariant_addressPK9tree_node.cold.318>:
  65b2e8:       31 c0                   xor    %eax,%eax
  65b2ea:       c3                      retq   
  65b2eb:       eb fb                   jmp    65b2e8
<_Z27is_gimple_invariant_addressPK9tree_node.cold.318>
  65b2ed:       eb f9                   jmp    65b2e8
<_Z27is_gimple_invariant_addressPK9tree_node.cold.318>
  65b2ef:       eb f7                   jmp    65b2e8
<_Z27is_gimple_invariant_addressPK9tree_node.cold.318>
  65b2f1:       eb f5                   jmp    65b2e8
<_Z27is_gimple_invariant_addressPK9tree_node.cold.318>
  65b2f3:       eb f3                   jmp    65b2e8
<_Z27is_gimple_invariant_addressPK9tree_node.cold.318>
  65b2f5:       eb f1                   jmp    65b2e8
<_Z27is_gimple_invariant_addressPK9tree_node.cold.318>
  65b2f7:       eb ef                   jmp    65b2e8
<_Z27is_gimple_invariant_addressPK9tree_node.cold.318>
  65b2f9:       eb ed                   jmp    65b2e8
<_Z27is_gimple_invariant_addressPK9tree_node.cold.318>

Obviously there is no good to offload empty BB into cold partition. We also
have couple cases consisting only of ret or one reg-reg move and jump/ret

I suppose this is because it was not empty at the partitioning time but then we
did not bring it back.  Doing so in bb-reorder is bit late, we should do at
least one sanitization pre regalloc, so I suppose partitioning fixup is good
place.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]