[PATCH] [X86] Break false dependencies before partial register updates when the source operand is in memory

Simon Pilgrim llvm-dev at redking.me.uk
Sun Dec 14 05:04:23 PST 2014


In http://reviews.llvm.org/D6620#101342, @mkuper wrote:

> Regarding break-sse-dep vs. sse-domains, there are actually 3 different things going on:
>
> 1. Avoiding load-folding that creates false dependencies.
> 2. Avoiding domain crossing.
> 3. Breaking false dependencies that are already present in the code.
>
>   Before this patch, break-sse-dep.ll checked (1), and sse-domains.ll checked (2) and (3), and I've added another test checking (3) into sse-domains. Do you think it's worth moving (3) together with (1) instead?


It appears tests for (1) and (3) are the main contributions from your testcase so I think it'd be more relevant to being included in break-sse-dep.ll


================
Comment at: test/CodeGen/X86/break-sse-dep.ll:18
@@ -17,3 +17,3 @@
 ; CHECK-LABEL: t2:
 ; CHECK: cvtsd2ss ([[A0]]), %xmm0
   %0 = load double* %x, align 8
----------------
mkuper wrote:
> RKSimon wrote:
> > Should cvtsd2ss be folded?
> Yes, the optsize versions should be folded.
> (The test is equivalent to t1 except for the optsize attribute).
Ah yes - missed that bit (just thought it was the inverse of t1).

http://reviews.llvm.org/D6620

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list