https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77445
--- Comment #14 from Jan Hubicka <hubicka at gcc dot gnu.org> --- With the patch we only give up on some threading in thread4: q.c.181t.thread4:FSM jump-thread path not considered: duplication of 5 insns is needed and optimizing for size. q.c.181t.thread4:FSM jump-thread path not considered: duplication of 5 insns is needed and optimizing for size. q.c.181t.thread4:FSM jump-thread path not considered: duplication of 5 insns is needed and optimizing for size. q.c.181t.thread4:FSM jump-thread path not considered: duplication of 5 insns is needed and optimizing for size. q.c.181t.thread4:FSM jump-thread path not considered: duplication of 5 insns is needed and optimizing for size. q.c.181t.thread4:FSM jump-thread path not considered: duplication of 5 insns is needed and optimizing for size. q.c.181t.thread4:FSM jump-thread path not considered: duplication of 5 insns is needed and optimizing for size. q.c.181t.thread4:FSM jump-thread path not considered: duplication of 5 insns is needed and optimizing for size. q.c.181t.thread4:FSM jump-thread path not considered: duplication of 5 insns is needed and optimizing for size. How does that affect the actual benchmark? We may experiment with jump threading whenever the destination BB is hot, not just edge itself as duplicating the path also simplifies the surrounding code.