On 12/08/2011 04:00 PM, Jakub Jelinek wrote: > On Thu, Dec 08, 2011 at 03:53:40PM -0800, Richard Henderson wrote: >> On 12/08/2011 11:57 AM, Jakub Jelinek wrote: >>> + else if (gimple_code (last) == GIMPLE_RETURN >>> + || (gimple_code (last) == GIMPLE_RESX >>> + && stmt_can_throw_external (last))) >>> + optimize_clobbers (bb); >> >> If you need to do this for returns as well as resx, then >> this is the wrong place, since we'll only get here if there >> are exception regions in the current function. > > I don't need to do it for returns, on the other side those clobbers > before return are useless and removing them perhaps might decrease > memory consumptions (after collect). > > But if you prefer to keep it just for GIMPLE_RESX, fine with me. > > It can be done anywhere else after inlining and before ehcleanup2 > too if you have suggestions where to do it instead.
*shrug* Maybe just a new pass immediately before ehcleanup2? It's just a quick pass over the basic blocks... r~