[llvm] [AMDGPU] Fix GCNUpwardRPTracker. (WIP) (PR #71186)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 3 10:27:08 PDT 2023


jayfoad wrote:

> GCNUpwardRPTracker interface may seem a bit strange but I would like to clarify what I had in mind when created it.
> 
> The idea was to have a tracker that can work on non-implemented tentative schedules, that is:
> 
> 1. Instruction order is maintained externally, like in array.
> 2. LiveIntervals and dead/kill flags aren't updated on a tentative schedule.
> 
> For this reason it has no functions to advance to next instruction, it should not use dead/kill flags. It only uses LiveIntervals information to track usage of a register with subregs and to calculate starting live register set. The idea is that _lane bitmask of a reg's use_ should be the same for any schedule.

Thanks. That is useful information.

I can understand how the upward tracker can work like that, but how does the downward tracker work? When it sees a use operand, it does not know if it is the last use of that register.

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


More information about the llvm-commits mailing list