On 07/02/12 22:19, Ramana Radhakrishnan wrote:
I find it interesting that cond_exec's in this form survive all the
way till reload and "work".  AFAIK we could never have cond_exec's
before reload . The documentation doesn't appear to mention this,
therefore I would like to see if  the cond_exec's can be recast as
if_then_else forms from expand rather than these forms. Has this
survived bootstrap and testing ?

I've tried to do this, but it can't be done by a straight translation because we don't have the insns available to do it. As I understand it, all "predicable" instructions automatically get a cond_exec variant, but the only if_then_else I could find (it's hard to grep because if_then_else occurs many times in attributes) is in the conditional move instruction. Have I missed something?

Anyway, I've tried to redo it using conditional move, and that works, but it's not as efficient.

Hopefully Steven Bosscher is correct, and there's no problem with cond_exec on ARM.

+      /* If we're optimizing for size, we prefer the libgcc calls.  */
+      if (optimize_size)
+       FAIL;

In addition you want to replace optimize_size with
optimize_function_for_size_p in these cases.

Ok, I've fixed this. I'll post an update soon.

Unfortunately, my testing has found a problem in the native bootstrap, so I'm going to need to track that down first.

Andrew

Reply via email to