HomePhabricator

[MTE] Pin the tagged base pointer to one of the stack slots.

Authored by eugenis on Apr 10 2020, 3:34 PM.

Description

[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

Details

Committed
eugenisOct 15 2020, 12:50 PM
Differential Revision
D72365: [MTE] Pin the tagged base pointer to one of the stack slots.
Parents
rGd1beb95d1241: [AMDGPU] gfx1032 target
Branches
Unknown
Tags
Unknown