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.