Experimental post-reload life analysis

Bernd Schmidt crux@pool.informatik.rwth-aachen.de
Fri Oct 9 04:41:00 GMT 1998


> 
>   > > Also, the patch I sent is a quite a bit more efficient: instead of calling
>   > > a function like propagate_block which has to walk a whole list of insns,
>   > > it implements the propagation of life info through the function with some
>   > > simple operations on HARD_REG_SETs.
>   > 
>   > Indeed, I'd like to see flow do the same thing with regsets.
> And there's nothing that says we couldn't do the same in flow. 

That's not quite as easy as it sounds, because the sets of set/used registers
for a given basic block do not stay constant in flow.c.  propagate_block
also uses them to determine which instructions are dead (those which only
set registers which are not live afterwards), and it does not merge the
registers used by such a dead instruction into the live set.  Of course,
while life information converges, some instructions which flow previously
considered dead may turn out to be live, and that in turn may influence the
liveness of registers at the start of the basic block.

We can ignore the problem post reload because no instructions ought to be
dead there.

Bernd




More information about the Gcc-patches mailing list