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