This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: increase call_saved_regs[] in caller-save.c


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/04/11 17:37, DJ Delorie wrote:
>> The only way I can think of to have two pseudos assigned the
>> same hard reg at the same point in the insn stream is if the two
>> pseudos are known to have the same value.
> 
> Since all we're doing is figuring out which hard regs need to be
> saved in pro/epilogue, it could be that the two pseudos are not
> live at the same time, despite being live in the same function.
?!?  caller-save emit saves/restores at call sites, not in the
prologue/epilogue.

It looks at the set of registers live, call-clobbered and not
currently saved in the stack at each call site to make this determination.

So the question I would still ask is precisely how multiple hard
registers are being stored into that array.  I don't think that's
supposed to be happening, but I could be wrong.   Knowing how this is
happening is critical to determining if the patch is correct or just
papering over a problem elsewhere.

jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOt2KPAAoJEBRtltQi2kC7PFYH/jXyJAjdc+X3slLuebXBP4ux
ENcRFeQDIZh0P1+bqysd6WZ4eD3Wu93fkJjzqSXySI8MLQ60P9TGEzfGFjL7Sc+Z
KMqytPC5dSZ8vJWXRHc7jI176gX00bc51G73CC/ETKMdJVxwv9j87Qs2V5eFahNM
WE5YDM6Ghv/0YJgBs9gqgV4dOy7hd3go/TS5KgfT8n77VxdfrXeB4kD4sGM2vLez
QRocJeOIhOx+fjwmBoNYIMnLkQuyVMNyrTXSP7T+X8ionPSGPxH/nk8tX4/2xHwp
iR1dDh1vZczfvb8nUGris6TnYE/oJq3zKoCXiZffQlcENdvARf3nNDw6oeitWfg=
=PPHL
-----END PGP SIGNATURE-----


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]