https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102783
--- Comment #7 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Richard Biener from comment #5) > Even out-of-line does not help if there are visible CSE/association > opportunities across such call. Yeah, good point. > A workaround is to make the out-of-line > function __attribute__((returns_twice)) which should insert artificial > control flow > preventing such transforms. Is there anything that guarantees that to work (other than our actual current implementation)? It is much more stringent / expensive than we would want, but if it is the best we can do...