Jakub Jelinek <ja...@redhat.com> writes: > On Thu, May 13, 2021 at 11:43:19AM +0200, Uros Bizjak wrote: >> > > Bootstrapped and regtested on X86_64-linux-gnu{-m32,} >> > > Ok for trunk? >> > >> > Some time ago a support for CLOBBER_HIGH RTX was added (and later >> > removed for some reason). Perhaps we could resurrect the patch for the >> > purpose of ferrying 128bit modes via vzeroupper RTX? >> >> https://gcc.gnu.org/legacy-ml/gcc-patches/2017-11/msg01325.html > > https://gcc.gnu.org/legacy-ml/gcc-patches/2019-09/msg01468.html > is where it got removed, CCing Richard.
Yeah. Initially clobber_high seemed like the best appraoch for handling the tlsdesc thing, but in practice it was too difficult to shoe-horn the concept in after the fact, when so much rtl infrastructure wasn't prepared to deal with it. The old support didn't handle all cases and passes correctly, and handled others suboptimally. I think it would be worth using the same approach as https://gcc.gnu.org/legacy-ml/gcc-patches/2019-09/msg01466.html for vzeroupper: represent the instructions as call_insns in which the call has a special vzeroupper ABI. I think that's likely to lead to better code than clobber_high would (or at least, it did for tlsdesc). Thanks, Richard