diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-12-18 07:40:29 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-12-18 07:40:29 +0000 |
commit | 4cf30b72bf0de8b6f138ad617b8e1c26abde3cc0 (patch) | |
tree | 7d17b86f61ce9bec97ab3646f1df79e9a4e2f354 /clang/test/SemaCXX/nested-name-spec.cpp | |
parent | a7d0231b66f16e65c17f5a37a7140bca11d45c2d (diff) | |
download | bcm5719-llvm-4cf30b72bf0de8b6f138ad617b8e1c26abde3cc0.tar.gz bcm5719-llvm-4cf30b72bf0de8b6f138ad617b8e1c26abde3cc0.zip |
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.
movss (%rdi), %xmm0
cvtss2sd %xmm0, %xmm0
instead of
cvtss2sd (%rdi), %xmm0
An alternative method to break dependency is to clear the register first. e.g.
xorps %xmm0, %xmm0
cvtss2sd (%rdi), %xmm0
llvm-svn: 91672
Diffstat (limited to 'clang/test/SemaCXX/nested-name-spec.cpp')
0 files changed, 0 insertions, 0 deletions