1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 02:33:06 +01:00

[MachineFunction] Make comment for TracksLiveness more clearer

As discussed in https://lists.llvm.org/pipermail/llvm-dev/2021-April/150225.html,
the current comments for TracksLiveness property and isKill flag are confusing.
This patch makes the comments more clearer.

Differential Revision: https://reviews.llvm.org/D101500
This commit is contained in:
Guozhi Wei 2021-04-30 12:10:36 -07:00
parent 956b0ff1ba
commit c7561ad6e9
2 changed files with 13 additions and 7 deletions

View File

@ -124,11 +124,14 @@ public:
// NoPHIs: The machine function does not contain any PHI instruction.
// TracksLiveness: True when tracking register liveness accurately.
// While this property is set, register liveness information in basic block
// live-in lists and machine instruction operands (e.g. kill flags, implicit
// defs) is accurate. This means it can be used to change the code in ways
// that affect the values in registers, for example by the register
// scavenger.
// When this property is clear, liveness is no longer reliable.
// live-in lists and machine instruction operands (e.g. implicit defs) is
// accurate, kill flags are conservatively accurate (kill flag correctly
// indicates the last use of a register, an operand without kill flag may or
// may not be the last use of a register). This means it can be used to
// change the code in ways that affect the values in registers, for example
// by the register scavenger.
// When this property is cleared at a very late time, liveness is no longer
// reliable.
// NoVRegs: The machine function does not use any virtual registers.
// Legalized: In GlobalISel: the MachineLegalizer ran and all pre-isel generic
// instructions have been legalized; i.e., all instructions are now one of:

View File

@ -99,8 +99,11 @@ private:
unsigned IsImp : 1;
/// IsDeadOrKill
/// For uses: IsKill - True if this instruction is the last use of the
/// register on this path through the function.
/// For uses: IsKill - Conservatively indicates the last use of a register
/// on this path through the function. A register operand with true value of
/// this flag must be the last use of the register, a register operand with
/// false value may or may not be the last use of the register. After regalloc
/// we can use recomputeLivenessFlags to get precise kill flags.
/// For defs: IsDead - True if this register is never used by a subsequent
/// instruction.
/// This is only valid on register operands.