Hi, On Thu, 5 Jul 2012, Tom de Vries wrote:
> The asserts allow the return result to be optimized, but not the cfg > conditions. > > AFAIU, we can insert the asserts earlier. F.i., we can insert > aD.1711_6 = ASSERT_EXPR <aD.1711_1(D), aD.1711_1(D) > 0> > before the GIMPLE_COND in bb2. Nope. That would require some more checks, in particular that the BB containing builtin_unreachable doesn't contain any other side-effects. Given this: if (i < 0) { do_something_interesting(); __builtin_unreachable(); } moving the assert before the if would remove the if condition, hence the call to do_something_interesting. You need to retain side-effects if there are any. Ciao, Michael.