When LivePhysRegs adds live-in registers, it recognizes ~0 as a special lane mask indicating the entire register. If the lane mask is not ~0, it will only add the subregisters that overlap the specified lane mask. The problem is that if a live-in register does not have subregisters, and the lane mask is not ~0, it will not be added to the live set. (The given lane mask may simply be the lane mask of its register class.)
If a register does not have subregisters, add it to the live set if the lane mask is non-zero.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
LGTM.
lib/CodeGen/LivePhysRegs.cpp | ||
---|---|---|
151–154 ↗ | (On Diff #76234) | change this to a for ( ; S.isValid(); ++S) { ... } loop? |