This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/84058] New: RTl partitioning fixup should drag very small blocks back to hot partition
- From: "hubicka at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 26 Jan 2018 09:15:52 +0000
- Subject: [Bug rtl-optimization/84058] New: RTl partitioning fixup should drag very small blocks back to hot partition
- Auto-submitted: auto-generated
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.