aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorSean Fertile <sfertile@ca.ibm.com>2018-09-20 00:26:44 +0000
committerSean Fertile <sfertile@ca.ibm.com>2018-09-20 00:26:44 +0000
commit7f3f05e0b78f00ad8df0f0222b4b1589dea85610 (patch)
tree49d59dc6bb5bc64fb0caf2fb3ef7498426643bf7 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent04d38c5f527d06e43aad5bba55d2eb2f8131e0f5 (diff)
downloadllvm-7f3f05e0b78f00ad8df0f0222b4b1589dea85610.zip
llvm-7f3f05e0b78f00ad8df0f0222b4b1589dea85610.tar.gz
llvm-7f3f05e0b78f00ad8df0f0222b4b1589dea85610.tar.bz2
[PPC64] Optimize redundant instructions in global access sequences.
The access sequence for global variables in the medium and large code models use 2 instructions to add an offset to the toc-pointer. If the offset fits whithin 16-bits then the instruction that sets the high 16 bits is redundant. This patch adds the --toc-optimize option, (on by default) and enables rewriting of 2 instruction global variable accesses into 1 when the offset from the TOC-pointer to the variable (or .got entry) fits in 16 signed bits. eg addis %r3, %r2, 0 --> nop addi %r3, %r3, -0x8000 --> addi %r3, %r2, -0x8000 This rewriting can be disabled with the --no-toc-optimize flag Differential Revision: https://reviews.llvm.org/D49237 llvm-svn: 342602
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions