[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