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