This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: virtual stack regs.
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Kenneth Zadeck <zadeck at naturalbridge dot com>
- Cc: ubizjak at gmail dot com, gcc at gcc dot gnu dot org
- Date: Tue, 19 Jun 2007 10:51:07 +0200
- Subject: Re: virtual stack regs.
- References: <46772329.5010500@naturalbridge.com>
> I would like to get some more information about pr32374.
>
> I do not know what virtual_stack_vars are and there is no documentation
> in the doc directory.
It is documented:
@findex VIRTUAL_STACK_VARS_REGNUM
@cindex @code{FRAME_GROWS_DOWNWARD} and virtual registers
@item VIRTUAL_STACK_VARS_REGNUM
If @code{FRAME_GROWS_DOWNWARD} is defined to a nonzero value, this
points to immediately above the first variable on the stack. Otherwise,
it points to the first variable on the stack.
>
> 1) What are these?
>
> 2) Why are they uninitialized?
>
> 3) If they really are uninitialized, why is it a problem to assign zero
> to them.
Basically like all virtual registers, those are just placeholders used
during expansion for RTL expressions that are fed into the place later.
See instantiate_virtual_regs. As such emitting a store into the
register definitly confuse the logic.
>
> 4) If they are not uninitialized, where is the initialization code? Why
> does df not see it?
>
> 5) How can I tell if a reg is a virtual_stack_reg?
By the regno. If you want to check for all those animals, you need
FIRST_VIRTUAL_REGISTER. Why do you need the dataflow so early?
Honza
>