https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71709
--- Comment #7 from Alan Modra <amodra at gmail dot com> --- find_call_crossed_cheap_reg is certainly confusing. On looking at it again this morning, I can't see why it uses reg_overlap_mentioned_p to break out of the loop. Who cares if the reg is referenced (except autoinc)? I'm thinking now that the correct exit condition is simply reg_set_p (reg, prev).