https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100152
--- Comment #31 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Richard Biener from comment #30) > (In reply to Iain Sandoe from comment #29) > > what is also somewhat peculiar is that replacing the first function in the > > reduced test case with "extern void ___UTF_8_put(char *a, int b);" changes > > the code-gen for the second function. > > That might hint at IPA RA which you can try disabling via -fno-ipa-ra which > in turn hints at a target issue. yeah, it does switch back to using rbx, at least on the reduced test case. > Btw, the GIMPLE optimization change just exposes the issue - it can have no > influence on the used registers. indeed, it seemed more likely to be "exposed by".