summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/PPMacroExpansion.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2014-12-11 22:51:06 +0000
committerHal Finkel <hfinkel@anl.gov>2014-12-11 22:51:06 +0000
commitb5e9b0426acff0a0c7abb16ab071d68026dd1bba (patch)
tree732f822efdc0ada7bd0bc09187a88de0b836c3c3 /clang/lib/Lex/PPMacroExpansion.cpp
parent005f9f433c4d2559677152795c30090c4cd9270e (diff)
downloadbcm5719-llvm-b5e9b0426acff0a0c7abb16ab071d68026dd1bba.tar.gz
bcm5719-llvm-b5e9b0426acff0a0c7abb16ab071d68026dd1bba.zip
[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 'clang/lib/Lex/PPMacroExpansion.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud