On 03/04/2011 02:57 PM, Tom de Vries wrote:
The MAX_EXPR however
expands into control flow, and is not hoisted out of the outer loop,
while the rest of the bound calculation is.

That looks like a pass-ordering problem too (both on the tree level, for ivopts versus invariant motion, and on the RTL level where predicated instructions are created after invariant motion).

I just noticed that ARM doesn't have named {s,u}{min,max} patterns. Perhaps adding those helps hoisting the control-flow out of the loop in your case.

Paolo

Reply via email to