summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp
diff options
context:
space:
mode:
authorNemanja Ivanovic <nemanja.i.ibm@gmail.com>2019-07-05 18:38:09 +0000
committerNemanja Ivanovic <nemanja.i.ibm@gmail.com>2019-07-05 18:38:09 +0000
commit6c9a392c8eb019d78cd907e0782451ea4678554f (patch)
treee8e09efb725c1c1c91258f1e1dac1913df14d567 /llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp
parent7626e1e50419be49236f84ae139b86bb7eb70e24 (diff)
downloadbcm5719-llvm-6c9a392c8eb019d78cd907e0782451ea4678554f.tar.gz
bcm5719-llvm-6c9a392c8eb019d78cd907e0782451ea4678554f.zip
[PowerPC] Move TOC save to prologue when profitable
The indirect call sequence on PPC requires that the TOC base register be saved prior to the indirect call and restored after the call since the indirect call may branch to a global entry point in another DSO which will update the TOC base. Over the last couple of years, we have improved this to: - be able to hoist TOC saves from loops (with changes to MachineLICM) - avoid multiple saves when one dominates the other[s] However, it is still possible to have multiple TOC saves dynamically in the execution path if there is no dominance relationship between them. This patch moves the TOC save to the prologue when one of the TOC saves is in a block that post-dominates entry (i.e. it cannot be avoided) or if it is in a block that is hotter than entry. Differential revision: https://reviews.llvm.org/D63803 llvm-svn: 365232
Diffstat (limited to 'llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud