https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103270
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Xiong Hu Luo <luo...@gcc.gnu.org>: https://gcc.gnu.org/g:46bfe1b0e11c4797c5926e0754fae2848026376c commit r12-6085-g46bfe1b0e11c4797c5926e0754fae2848026376c Author: Xionghu Luo <luo...@linux.ibm.com> Date: Mon Dec 20 21:10:09 2021 -0600 Fix incorrect loop exit edge probability [PR103270] r12-4526 cancelled jump thread path rotates loop. It exposes a issue in profile-estimate when predict_extra_loop_exits, outer loop's exit edge is marked as inner loop's extra loop exit and set with incorrect prediction, then a hot inner loop will become cold loop finally through optimizations, this patch add loop check when searching extra exit edges to avoid unexpected predict_edge from predict_paths_for_bb. Regression tested on P8LE. gcc/ChangeLog: 2021-12-21 Xionghu Luo <luo...@linux.ibm.com> PR middle-end/103270 * predict.c (predict_extra_loop_exits): Add loop parameter. (predict_loops): Call with loop argument. gcc/testsuite/ChangeLog: 2021-12-21 Xionghu Luo <luo...@linux.ibm.com> PR middle-end/103270 * gcc.dg/pr103270.c: New test.