aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/SourceMgr.cpp
diff options
context:
space:
mode:
authorAmara Emerson <aemerson@apple.com>2019-06-21 00:36:19 +0000
committerAmara Emerson <aemerson@apple.com>2019-06-21 00:36:19 +0000
commitbc0d08e0eec68c6065a5836ae7bdbd2e60495e2b (patch)
tree4806d1f84b03e2eedc882e8a75de642fed42b7ab /llvm/lib/Support/SourceMgr.cpp
parentf923d9b53f2264044bc12369beaf3102d6537bd8 (diff)
downloadllvm-bc0d08e0eec68c6065a5836ae7bdbd2e60495e2b.zip
llvm-bc0d08e0eec68c6065a5836ae7bdbd2e60495e2b.tar.gz
llvm-bc0d08e0eec68c6065a5836ae7bdbd2e60495e2b.tar.bz2
[GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of instructions.
G_INTTOPTR can prevent the localizer from moving G_CONSTANTs, but since it's essentially a side effect free cast instruction we can remat both instructions. This patch changes the localizer to enable localization of the chains by iterating over the entry block instructions in reverse order. That way, uses will localized first, and then the defs are free to be localized as well. This also changes the previous SmallPtrSet of localized instructions to use a SetVector instead. We're dealing with pointers and need deterministic iteration order. Overall, this change improves ARM64 -O0 CTMark code size by around 0.7% geomean. Differential Revision: https://reviews.llvm.org/D63630 llvm-svn: 364001
Diffstat (limited to 'llvm/lib/Support/SourceMgr.cpp')
0 files changed, 0 insertions, 0 deletions