diff options
| author | Hal Finkel <hfinkel@anl.gov> | 2014-12-11 22:51:06 +0000 |
|---|---|---|
| committer | Hal Finkel <hfinkel@anl.gov> | 2014-12-11 22:51:06 +0000 |
| commit | b5e9b0426acff0a0c7abb16ab071d68026dd1bba (patch) | |
| tree | 732f822efdc0ada7bd0bc09187a88de0b836c3c3 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
| parent | 005f9f433c4d2559677152795c30090c4cd9270e (diff) | |
| download | llvm-b5e9b0426acff0a0c7abb16ab071d68026dd1bba.zip llvm-b5e9b0426acff0a0c7abb16ab071d68026dd1bba.tar.gz llvm-b5e9b0426acff0a0c7abb16ab071d68026dd1bba.tar.bz2 | |
[PowerPC] Better lowering for add/or of a FrameIndex
If we have an add (or an or that is really an add), where one operand is a
FrameIndex and the other operand is a small constant, we can combine the
lowering of the FrameIndex (which is lowered as an add of the FI and a zero
offset) with the constant operand.
Amusingly, this is an old potential improvement entry from
lib/Target/PowerPC/README.txt which had never been resolved. In short, we used
to lower:
%X = alloca { i32, i32 }
%Y = getelementptr {i32,i32}* %X, i32 0, i32 1
ret i32* %Y
as:
addi 3, 1, -8
ori 3, 3, 4
blr
and now we produce:
addi 3, 1, -4
blr
which is much more sensible.
llvm-svn: 224071
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions
