LLVM: lib/CodeGen/DetectDeadLanes.cpp File Reference (original) (raw)

Analysis that tracks defined/used subregister lanes across COPY instructions and instructions that get lowered to a COPY (PHI, REG_SEQUENCE, INSERT_SUBREG, EXTRACT_SUBREG). More...

Analysis that tracks defined/used subregister lanes across COPY instructions and instructions that get lowered to a COPY (PHI, REG_SEQUENCE, INSERT_SUBREG, EXTRACT_SUBREG).

The information is used to detect dead definitions and the usage of (completely) undefined values and mark the operands as such. This pass is necessary because the dead/undef status is not obvious anymore when subregisters are involved.

Example: %0 = some definition %1 = IMPLICIT_DEF %2 = REG_SEQUENCE %0, sub0, %1, sub1 %3 = EXTRACT_SUBREG %2, sub1 = use %3 The %0 definition is dead and %3 contains an undefined value.

Definition in file DetectDeadLanes.cpp.