On Mon, Dec 12, 2011 at 05:29:09PM +0100, Michael Matz wrote:
> On Mon, 12 Dec 2011, Jakub Jelinek wrote:
> > Just I wonder:
> > 1) what if a bb contains no real insns (I know, they should be optimized
> > out, but do we assert that etc.?) - then the EXECUTE_IF_SET_IN_BITMAP
> > loop just wouldn't be done. Perhaps that is fine, it would make it
> > into the bitmap at the end of the bb and perhaps following bb would
> > do this loop.
>
> Not only perhaps. That is exactly what will happen. If some of the
> successor BBs then has real instructions _that_ one will cause creation of
> all the necessary conflicts.
Ok.
> > 2) the PHIs are then handled always with visit_op instead of visit_conflict,
> > I'd guess the needed add_stack_var_conflict calls would then happen
> > in that EXECUTE_IF_SET_IN_BITMAP loop, right?
>
> Correct. The PHIs don't need to create the conflicts, any new mention of
> a DECL name will be noted as active, and then creates a conflict at the
> next real instruction (if not cancelled by a clobber before).
Ok. So, I'm happy with your changes and rth already acked the tree-eh.c
side, so can we just get an ack on these cfgexpand.c changes? Thanks.
The testcases can perhaps follow when they are ready (and I plan to submit
at least the one checking for no __cxa_rethrow in assembly).
Jakub