This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH,x86] Fix combine for condditional instructions.


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  <ysrumyan@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]