diff options
author | Bill Wendling <isanbard@gmail.com> | 2010-06-23 23:00:16 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2010-06-23 23:00:16 +0000 |
commit | 4b722108e2cf8e77157e0879a23789cd44829933 (patch) | |
tree | ba80a80ba5136b9294fdf239c0cf081a4dad27ff /lib/Transforms/Utils/ValueMapper.cpp | |
parent | 8ff72b534436a1f4f221ddb21cf0d22c5b09769c (diff) |
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/ValueMapper.cpp')
0 files changed, 0 insertions, 0 deletions