aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms/Utils/LoopUnroll.cpp
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-06-23 23:00:16 +0000
committerBill Wendling <isanbard@gmail.com>2010-06-23 23:00:16 +0000
commit3d03781d96a1076d8f5dfd3910702a5dd8671499 (patch)
treeba80a80ba5136b9294fdf239c0cf081a4dad27ff /lib/Transforms/Utils/LoopUnroll.cpp
parent90653a0f337f3177628b4dfd6e8e3dd84dbb06ed (diff)
downloadexternal_llvm-3d03781d96a1076d8f5dfd3910702a5dd8671499.zip
external_llvm-3d03781d96a1076d8f5dfd3910702a5dd8671499.tar.gz
external_llvm-3d03781d96a1076d8f5dfd3910702a5dd8671499.tar.bz2
We are missing opportunites to use ldm. Take code like this:
void t(int *cp0, int *cp1, int *dp, int fmd) { int c0, c1, d0, d1, d2, d3; c0 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000); c1 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000); /* ... */ } It code gens into something pretty bad. But with this change (analogous to the X86 back-end), it will use ldm and generate few instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106693 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/LoopUnroll.cpp')
0 files changed, 0 insertions, 0 deletions