On Mon, May 31, 2010 at 12:31 PM, Vladimir Makarov <vmaka...@redhat.com> wrote: > H.J. Lu wrote: >> >> 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? >> >> > > DF_LR_IN (bb) returns bitmap of livings prseudo regnos. > DF_LIVE_IN (bb) takes availability info into account. > > Size of hard registers is defined by hard_regno_nregs. >
My impression is hard_regno_nregs tells me that number of hard registers given machine mode occupy. It doesn't tell me the live size of a hard register at the beginning of a basic block. How do I get this information? Thanks. -- H.J.