diff options
author | Evandro Menezes <e.menezes@samsung.com> | 2019-08-05 18:09:14 +0000 |
---|---|---|
committer | Evandro Menezes <e.menezes@samsung.com> | 2019-08-05 18:09:14 +0000 |
commit | a005c1ac4f3bdadf8643888c2168ebe432649e2e (patch) | |
tree | c34dec57e8f0bb76137a16a70e9b9057de1ecbac /clang/lib/CodeGen/ModuleBuilder.cpp | |
parent | 76b772f9ce98f98be94a035bebe3c20605dc3d1c (diff) | |
download | llvm-a005c1ac4f3bdadf8643888c2168ebe432649e2e.zip llvm-a005c1ac4f3bdadf8643888c2168ebe432649e2e.tar.gz llvm-a005c1ac4f3bdadf8643888c2168ebe432649e2e.tar.bz2 |
[AArch64] Expand bcmp() for small block lengths
Patch D56593 by @courbet results in calls to `bcmp()` in some cases, should
the target support the it. Unless `TTI::MemCmpExpansionOptions()`
is overridden by the target.
In a proprietary benchmark we see a performance drop of about 12% on PNG
compression before this patch, though it passes all tests.
This patch mirrors X86 for AArch64 and initializes
`TTI::MemCmpExpansionOptions()` to then expand calls to `bcmp()` when
appropriate. No tuning of the parameters was performed, but, at this point,
it's enough to recover the performance drop above.
This problem also exists on ARM. Once a consensus is reached for AArch64, we
can work to fix ARM as well.
Authors:
- Evandro Menezes (@evandro) <e.menezes@samsung.com>
- Brian Rzycki (@brzycki) <b.rzycki@samsung.com>
Differential revision: https://reviews.llvm.org/D64805
llvm-svn: 367898
Diffstat (limited to 'clang/lib/CodeGen/ModuleBuilder.cpp')
0 files changed, 0 insertions, 0 deletions