Hi All,

This fix is aimed to remove performance degradation introduced by new
LRA phase that in fact is combining problem. Gcc combiner does
propagation of memory load to if-then-else gimple that was splitted
back by old reload phase. LRA does not perform such splitting. To
avoid performance slowdown on important benchmark (this is true for
all x86 targets) we decided to enhance 'ix86_legitimate_combined_insn'
with a check on such propagation and consider such conditional
instruction with memory operand as illegal one from performance point
of view.

The fix was bootstrapped and regtested for x86-64.
Is it OK for 4.8 and mainline?

ChangeLog:

2012-12-12  Yuri Rumyantsev  <ysrum...@gmail.com>

        * config/i386/i386.c (ix86_legitimate_combined_insn) : Avoid combining
        of load and if_then_else instructions.

Attachment: x86-cmove-combine-fix.diff
Description: Binary data

Reply via email to