[PATCH] D21560: Relax the clearance calculating for breaking partial register dependency.

Dehao Chen via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 21 13:10:50 PDT 2016


danielcdh added a comment.

In http://reviews.llvm.org/D21560#463527, @DavidKreitzer wrote:

> I think this is a good change. The cost of inserting an xor when it is not needed is very small. The cost of failing to insert an xor when it IS needed can be huge.
>
> But fixing the threshold isn't good enough for several reasons.
>  (1) It isn't always possible, because the register may hold a live value. Marina (added) is working on a patch that will fix this problem.
>  (2) If the instruction has a "real" XMM operand, it is better to choose that register for the undef operand rather than inserting an xor. (Doing so hides the false dependence behind a true dependence that is unavoidable.) This applies to instructions like vcvtsd2ss et al. Marina is planning to work on this also.
>
> -Dave


It's great that Marina is working on a better fix for this problem. When is the ETA for the fix? If it's coming pretty soon, we should abandon this change. Otherwise if the change does no harm, let's just update the magic number so that we can reclaim performance for the motivating benchmark. Thoughts?

Thanks,
Dehao


http://reviews.llvm.org/D21560





More information about the llvm-commits mailing list