Lines Matching defs:Def
110 static bool isNopCopy(MachineInstr *CopyMI, unsigned Def, unsigned Src,
113 if (Def == SrcSrc)
115 if (TRI->isSubRegister(SrcSrc, Def)) {
117 unsigned SubIdx = TRI->getSubRegIndex(SrcSrc, Def);
128 DenseMap<unsigned, MachineInstr*> AvailCopyMap; // Def -> available copies map
129 DenseMap<unsigned, MachineInstr*> CopyMap; // Def -> copies map
130 SourceMap SrcMap; // Src -> Def map
138 unsigned Def = MI->getOperand(0).getReg();
141 if (TargetRegisterInfo::isVirtualRegister(Def) ||
149 if (!ReservedRegs.test(Def) &&
151 isNopCopy(CopyMI, Def, Src, TRI)) {
166 // Clear any kills of Def between CopyMI and MI. This extends the
169 I->clearRegisterKills(Def, TRI);
195 SourceNoLongerAvailable(Def, SrcMap, AvailCopyMap);
197 // Remember Def is defined by the copy.
199 for (MCRegAliasIterator AI(Def, TRI, false); AI.isValid(); ++AI) {
203 CopyMap[Def] = MI;
204 AvailCopyMap[Def] = MI;
205 for (MCSubRegIterator SR(Def, TRI); SR.isValid(); ++SR) {
210 // Remember source that's copied to Def. Once it's clobbered, then
212 if (std::find(SrcMap[Src].begin(), SrcMap[Src].end(), Def) ==
214 SrcMap[Src].push_back(Def);