aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopVersioning.cpp
diff options
context:
space:
mode:
authorEvgenii Stepanov <eugenis@google.com>2020-04-10 15:34:11 -0700
committerEvgenii Stepanov <eugenis@google.com>2020-10-15 12:50:16 -0700
commit2f63e57fa59e7fbfe5999ec1e6e60fa7a2ba70bb (patch)
tree2f06aad191c1374646e33d8e03b2c6ba94924c57 /llvm/lib/Transforms/Utils/LoopVersioning.cpp
parentd1beb95d1241ec50bdf19db351d273374a146a4a (diff)
downloadllvm-2f63e57fa59e7fbfe5999ec1e6e60fa7a2ba70bb.zip
llvm-2f63e57fa59e7fbfe5999ec1e6e60fa7a2ba70bb.tar.gz
llvm-2f63e57fa59e7fbfe5999ec1e6e60fa7a2ba70bb.tar.bz2
[MTE] Pin the tagged base pointer to one of the stack slots.
Summary: Pin the tagged base pointer to one of the stack slots, and (if necessary) rewrite tag offsets so that an object that occupies that slot has both address and tag offsets of 0. This allows ADDG instructions for that object to be eliminated and their uses replaced with the tagged base pointer itself. This optimization must be done in machine instructions and not in the IR instrumentation pass, because referring to a stack slot through an IRG pointer would confuse the stack coloring pass. The optimization makes a (pretty naive) attempt to find the slot that would benefit the most by counting the uses of stack slots in the function. Reviewers: ostannard, pcc Subscribers: merge_guards_bot, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72365
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopVersioning.cpp')
0 files changed, 0 insertions, 0 deletions