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

H.J. Lu hjl.tools@gmail.com
Mon May 31 19:29:00 GMT 2010


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.



More information about the Gcc mailing list