> 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
> 

Reply via email to