Lines Matching defs:UMI
99 const UniqueMachineInstr &UMI) const {
107 void GISelCSEInfo::invalidateUniqueMachineInstr(UniqueMachineInstr *UMI) {
108 bool Removed = CSEMap.RemoveNode(UMI);
110 assert(Removed && "Invalidation called on invalid UMI");
111 // FIXME: Should UMI be deallocated/destroyed?
130 void GISelCSEInfo::insertNode(UniqueMachineInstr *UMI, void *InsertPos) {
132 assert(UMI);
133 UniqueMachineInstr *MaybeNewNode = UMI;
135 CSEMap.InsertNode(UMI, InsertPos);
137 MaybeNewNode = CSEMap.GetOrInsertNode(UMI);
138 if (MaybeNewNode != UMI) {
142 assert(InstrMapping.count(UMI->MI) == 0 &&
144 InstrMapping[UMI->MI] = MaybeNewNode;
191 auto *UMI = InstrMapping.lookup(MI);
193 if (UMI) {
195 invalidateUniqueMachineInstr(UMI);
199 if (UMI) {
202 *UMI = UniqueMachineInstr(MI);
203 insertNode(UMI, nullptr);
212 if (auto *UMI = InstrMapping.lookup(MI)) {
213 invalidateUniqueMachineInstr(UMI);
282 // For each instruction in map from MI -> UMI,
283 // Profile(MI) and make sure UMI is found for that profile.
299 for (const UniqueMachineInstr &UMI : CSEMap) {
300 if (!InstrMapping.count(UMI.MI))
303 stringify(UMI.MI, S1));
305 if (InstrMapping[UMI.MI] != &UMI)
308 stringify(InstrMapping[UMI.MI]->MI, S1),
309 stringify(UMI.MI, S2));