[llvm] [AMDGPU] Add and optionally use GCNIterativeRPTrackers (PR #88797)

Valery Pykhtin via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 19 09:07:20 PDT 2024


vpykhtin wrote:

Ok, thanks. Just on a historical note upward and downward trackers were introduced for different purposes. Upward tracker was designed with two ideas in mind:

1. To be able tracking unimplemented schedule, that is the order if instruction is maintained externally, for example in array.
2. The LIS isn't updated for the unimplemented schedule.

In this sense it is iterative because it was supposed to use on iterations over different schedules.

Currently I have the need to be able to collect live registers at the point of maximum pressure over an instruction. It seems that it's not the same set that would be collected iterating over slot index R because an instruction define and use registers at R slot index and we would consider 'dest' and 'source' registers as live at COPY instruction, the mistake that upward tracker had previously.

For that reason I would add some interface to be able to collect live registers at different stages of instruction execution.

https://github.com/llvm/llvm-project/pull/88797


More information about the llvm-commits mailing list