summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2018-03-30 21:36:54 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2018-03-30 21:36:54 +0000
commit5ea6d50af113043da8a82215bb23f98c620e0112 (patch)
tree42a27442303220e8762b5d28ad733b0ff158596c /llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
parent0b01dfbba69d634c0fde133b5098d73a6f92ffea (diff)
downloadbcm5719-llvm-5ea6d50af113043da8a82215bb23f98c620e0112.tar.gz
bcm5719-llvm-5ea6d50af113043da8a82215bb23f98c620e0112.zip
ELF: Place ordered sections in the middle of the unordered section list on targets with limited-range branches.
It generally does not matter much where we place sections ordered by --symbol-ordering-file relative to other sections. But if the ordered sections are hot (which is the case already for some users of --symbol-ordering-file, and is increasingly more likely to be the case once profile-guided section layout lands) and the target has limited-range branches, it is beneficial to place the ordered sections in the middle of the output section in order to decrease the likelihood that a range extension thunk will be required to call a hot function from a cold function or vice versa. That is what this patch does. After D44966 it reduces the size of Chromium for Android's .text section by 60KB. Differential Revision: https://reviews.llvm.org/D44969 llvm-svn: 328905
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud