On 01/08/2013 04:26 AM, Richard Biener wrote:
The issue is VRP - when you remove unreachable blocks you lose the
conditional statement as it is no longer necessary and thus the predicate
you can derive value-ranges from.
Understood. Perhaps we could eliminate them after the first VRP pass,
but before the second. That ought to give us the majority of the
benefit of seeing the conditional and propagating based on the
conditional, but also give us the benefit of eliminating the branch
generating straight-line code.
Clearly it needs more investigation, but I think it's worth exploring.
Jeff