How to find out register information at the beginning of a basic block?

H.J. Lu
Mon May 31 19:29:00 GMT 2010


I am working on generating vzeroupper to avoid AVX->SSE transition

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.



More information about the Gcc mailing list