28#ifndef LLVM_CODEGEN_DETECTDEADLANES_H
29#define LLVM_CODEGEN_DETECTDEADLANES_H
39class MachineRegisterInfo;
40class TargetRegisterInfo;
58 return VRegInfos[RegIdx];
62 return DefinedByCopy.
test(RegIdx);
101 void PutInWorklist(
unsigned RegIdx) {
102 if (WorklistMembers.
test(RegIdx))
104 WorklistMembers.
set(RegIdx);
105 Worklist.push_back(RegIdx);
108 std::unique_ptr<VRegInfo[]> VRegInfos;
110 std::deque<unsigned> Worklist;
111 BitVector WorklistMembers;
114 BitVector DefinedByCopy;
This file implements the BitVector class.
A common definition of LaneBitmask for use in TableGen and CodeGen.
bool test(unsigned Idx) const
LaneBitmask transferUsedLanes(const MachineInstr &MI, LaneBitmask UsedLanes, const MachineOperand &MO) const
Given a mask UsedLanes used from the output of instruction MI determine which lanes are used from ope...
void computeSubRegisterLaneBitInfo()
Update the DefinedLanes and the UsedLanes for all virtual registers.
bool isDefinedByCopy(unsigned RegIdx) const
LaneBitmask transferDefinedLanes(const MachineOperand &Def, unsigned OpNum, LaneBitmask DefinedLanes) const
Given a mask DefinedLanes of lanes defined at operand OpNum of COPY-like instruction,...
const VRegInfo & getVRegInfo(unsigned RegIdx) const
Representation of each machine instruction.
MachineOperand class - Representation of each machine instruction operand.
MachineRegisterInfo - Keep track of information for virtual and physical registers,...
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
A Use represents the edge between a Value definition and its users.
This is an optimization pass for GlobalISel generic memory operations.
Contains a bitmask of which lanes of a given virtual register are defined and which ones are actually...