LLVM 20.0.0git
|
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...
Go to the source code of this file.
Classes | |
class | llvm::DeadLaneDetector |
struct | llvm::DeadLaneDetector::VRegInfo |
Contains a bitmask of which lanes of a given virtual register are defined and which ones are actually used. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
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.h.