1 //===-- lib/CodeGen/GlobalISel/GISelChangeObserver.cpp --------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This file constains common code to combine machine functions at generic 11 // level. 12 //===----------------------------------------------------------------------===// 13 14 #include "llvm/CodeGen/GlobalISel/GISelChangeObserver.h" 15 #include "llvm/CodeGen/MachineRegisterInfo.h" 16 17 using namespace llvm; 18 19 void GISelChangeObserver::changingAllUsesOfReg( 20 const MachineRegisterInfo &MRI, unsigned Reg) { 21 for (auto &ChangingMI : MRI.use_instructions(Reg)) { 22 changingInstr(ChangingMI); 23 ChangingAllUsesOfReg.insert(&ChangingMI); 24 } 25 } 26 27 void GISelChangeObserver::finishedChangingAllUsesOfReg() { 28 for (auto *ChangedMI : ChangingAllUsesOfReg) 29 changedInstr(*ChangedMI); 30 } 31 32