Lines Matching defs:MachineVerifier
92 struct MachineVerifier { struct
93 MachineVerifier(Pass *pass, const char *b) : PASS(pass), Banner(b) {} in MachineVerifier() function
95 MachineVerifier(const char *b, LiveVariables *LiveVars, in MachineVerifier() argument
103 Pass *const PASS = nullptr;
104 const char *Banner;
105 const MachineFunction *MF = nullptr;
106 const TargetMachine *TM = nullptr;
107 const TargetInstrInfo *TII = nullptr;
108 const TargetRegisterInfo *TRI = nullptr;
109 const MachineRegisterInfo *MRI = nullptr;
110 const RegisterBankInfo *RBI = nullptr;
112 unsigned foundErrors = 0;
115 bool isFunctionRegBankSelected = false;
116 bool isFunctionSelected = false;
117 bool isFunctionTracksDebugUserValues = false;
119 using RegVector = SmallVector<Register, 16>;
120 using RegMaskVector = SmallVector<const uint32_t *, 4>;
121 using RegSet = DenseSet<Register>;
122 using RegMap = DenseMap<Register, const MachineInstr *>;
123 using BlockSet = SmallPtrSet<const MachineBasicBlock *, 8>;
125 const MachineInstr *FirstNonPHI = nullptr;
126 const MachineInstr *FirstTerminator = nullptr;
127 BlockSet FunctionBlocks;
129 BitVector regsReserved;
130 RegSet regsLive;
131 RegVector regsDefined, regsDead, regsKilled;
132 RegMaskVector regMasks;
134 SlotIndex lastIndex;
137 void addRegWithSubRegs(RegVector &RV, Register Reg) { in addRegWithSubRegs()
143 struct BBInfo {
206 DenseMap<const MachineBasicBlock*, BBInfo> MBBInfoMap;
208 bool isReserved(Register Reg) { in isReserved()
212 bool isAllocatable(Register Reg) const { in isAllocatable()
218 LiveVariables *LiveVars = nullptr;
219 LiveIntervals *LiveInts = nullptr;
220 LiveStacks *LiveStks = nullptr;
221 SlotIndexes *Indexes = nullptr;