virtual stack regs.
Jan Hubicka
hubicka@ucw.cz
Tue Jun 19 09:11:00 GMT 2007
> 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
>
More information about the Gcc
mailing list