summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-rc/ResourceFileWriter.cpp
diff options
context:
space:
mode:
authorLei Huang <lei@ca.ibm.com>2017-10-11 20:20:58 +0000
committerLei Huang <lei@ca.ibm.com>2017-10-11 20:20:58 +0000
commit263dc4ef3a049caf92fb6a7f71844e5637bcc6af (patch)
tree97783dc4ee3ac27aaf535c2cd01b08bc0ac6ff21 /llvm/tools/llvm-rc/ResourceFileWriter.cpp
parentfa0ca6cbd01c6289ef4073073a84200a883eb3c5 (diff)
downloadbcm5719-llvm-263dc4ef3a049caf92fb6a7f71844e5637bcc6af.tar.gz
bcm5719-llvm-263dc4ef3a049caf92fb6a7f71844e5637bcc6af.zip
[PowerPC] Utilize DQ-Form instructions for spill/restore and fix FrameIndex elimination to only use `lis/addi` if necessary.
Currently we produce a bunch of unnecessary code when emitting the prologue/epilogue for spills/restores. Namely, if the load from stack slot/store to stack slot instruction is an X-Form instruction, we will always produce an LIS/ORI sequence for the stack offset. Furthermore, we have not exploited the P9 vector D-Form loads/stores for this purpose. This patch address both issues. Specifying the D-Form load as the instruction to use for stack spills/reloads should be safe because: 1. The stack should be aligned according to the ABI 2. If the stack isn't aligned, PPCRegisterInfo::eliminateFrameIndex() will check for the offset being a multiple of 16 and will convert it to an X-Form instruction if it isn't. Differential Revision : https://reviews.llvm.org/D38758 llvm-svn: 315500
Diffstat (limited to 'llvm/tools/llvm-rc/ResourceFileWriter.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud