[llvm-commits] [llvm] r91672 - in /llvm/trunk: lib/Target/X86/X86.td lib/Target/X86/X86InstrInfo.cpp lib/Target/X86/X86InstrInfo.td lib/Target/X86/X86InstrSSE.td lib/Target/X86/X86Subtarget.cpp lib/Target/X86/X86Subtarget.h test/CodeGen/X86/break-sse-dep.ll
Chris Lattner
clattner at apple.com
Sun Dec 20 23:54:26 PST 2009
On Dec 17, 2009, at 11:40 PM, Evan Cheng wrote:
> Author: evancheng
> Date: Fri Dec 18 01:40:29 2009
> New Revision: 91672
>
> URL: http://llvm.org/viewvc/llvm-project?rev=91672&view=rev
> Log:
> On recent Intel u-arch's, folding loads into some unary SSE instructions can
> be non-optimal. To be precise, we should avoid folding loads if the instructions
> only update part of the destination register, and the non-updated part is not
> needed. e.g. cvtss2sd, sqrtss. Unfolding the load from these instructions breaks
> the partial register dependency and it can improve performance. e.g.
Very nice Evan,
> +def FeatureBreakSSEDep : SubtargetFeature<"break-sse-dep", "BreakSSEDep","true",
> + "Should break SSE partial update dep with load / xorps">;
Do we really need a feature for this? Is this actually good for any SSE chip?
-Chris
More information about the llvm-commits
mailing list