Lines Matching defs:UMI
109 const UniqueMachineInstr &UMI) const {
117 void GISelCSEInfo::invalidateUniqueMachineInstr(UniqueMachineInstr *UMI) {
118 bool Removed = CSEMap.RemoveNode(UMI);
120 assert(Removed && "Invalidation called on invalid UMI");
121 // FIXME: Should UMI be deallocated/destroyed?
140 void GISelCSEInfo::insertNode(UniqueMachineInstr *UMI, void *InsertPos) {
142 assert(UMI);
143 UniqueMachineInstr *MaybeNewNode = UMI;
145 CSEMap.InsertNode(UMI, InsertPos);
147 MaybeNewNode = CSEMap.GetOrInsertNode(UMI);
148 if (MaybeNewNode != UMI) {
152 assert(InstrMapping.count(UMI->MI) == 0 &&
154 InstrMapping[UMI->MI] = MaybeNewNode;
198 auto *UMI = InstrMapping.lookup(MI);
200 if (UMI) {
202 invalidateUniqueMachineInstr(UMI);
206 if (UMI) {
209 *UMI = UniqueMachineInstr(MI);
210 insertNode(UMI, nullptr);
219 if (auto *UMI = InstrMapping.lookup(MI)) {
220 invalidateUniqueMachineInstr(UMI);
289 // For each instruction in map from MI -> UMI,
290 // Profile(MI) and make sure UMI is found for that profile.
306 for (const UniqueMachineInstr &UMI : CSEMap) {
307 if (!InstrMapping.count(UMI.MI))
310 stringify(UMI.MI, S1));
312 if (InstrMapping[UMI.MI] != &UMI)
315 stringify(InstrMapping[UMI.MI]->MI, S1),
316 stringify(UMI.MI, S2));