Hi, reading profile/instrumenting breaks basic blocks and introduces fake edges. The broken basic blocks are not re-merged until after LTO streaming that is wasteful. Fixed thus.
Profiledbotostrapped/regtsted ppc64-linux, comitted. Index: tree-profile.c =================================================================== --- tree-profile.c (revision 202185) +++ tree-profile.c (working copy) @@ -598,6 +598,8 @@ tree_profiling (void) } } + /* re-merge split blocks. */ + cleanup_tree_cfg (); update_ssa (TODO_update_ssa); rebuild_cgraph_edges ();