Hi, I am working on generating vzeroupper to avoid AVX->SSE transition penalty.
I have generated vzeroupper on function return as well as function call. I am working on a backend pass to eliminate those vzeroupper instructions when I can prove that the upper 128bits of AVX registers are dead at the point where vzeroupper is added. To do that, I need to find out if a register is live at the beginning of a basic block as well as its size. I thought dataflow might give me such info. But I couldn't find a way to access such information. Does anyone have any pointers? BTW, I have a PDF file to describe how vzeroupper is added. But the PDF attachment was rejected by the gcc mailing list. Please send me an email if you want it. Thanks. -- H.J.