]> granicus.if.org Git - llvm/commitdiff
Add iterator range MachineRegisterInfo::liveins(), adopt users, NFC
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>
Mon, 16 Oct 2017 19:08:41 +0000 (19:08 +0000)
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>
Mon, 16 Oct 2017 19:08:41 +0000 (19:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315927 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/MachineRegisterInfo.h
lib/CodeGen/MIRPrinter.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/Target/AMDGPU/R600InstrInfo.cpp
lib/Target/Hexagon/HexagonBitTracker.cpp
lib/Target/Hexagon/RDFGraph.cpp
lib/Target/PowerPC/PPCFrameLowering.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86VZeroUpper.cpp

index 74fd81c14395026a731f20a9243f2f342b13940b..3f8dcfe76ccb91c9ca79b84ea3f9161a0d93e859 100644 (file)
@@ -841,6 +841,9 @@ public:
   livein_iterator livein_begin() const { return LiveIns.begin(); }
   livein_iterator livein_end()   const { return LiveIns.end(); }
   bool            livein_empty() const { return LiveIns.empty(); }
+  iterator_range<livein_iterator> liveins() const {
+    return make_range(livein_begin(), livein_end());
+  }
 
   bool isLiveIn(unsigned Reg) const;
 
index ae1bb36c6aac7089b831c8d6a3324ed292649dd3..528140234ee1b5b85a36fcf50f81c5e6e49baaa3 100644 (file)
@@ -297,11 +297,11 @@ void MIRPrinter::convert(yaml::MachineFunction &MF,
   }
 
   // Print the live ins.
-  for (auto I = RegInfo.livein_begin(), E = RegInfo.livein_end(); I != E; ++I) {
+  for (std::pair<unsigned, unsigned> LI : RegInfo.liveins()) {
     yaml::MachineFunctionLiveIn LiveIn;
-    printReg(I->first, LiveIn.Register, TRI);
-    if (I->second)
-      printReg(I->second, LiveIn.VirtualRegister, TRI);
+    printReg(LI.first, LiveIn.Register, TRI);
+    if (LI.second)
+      printReg(LI.second, LiveIn.VirtualRegister, TRI);
     MF.LiveIns.push_back(LiveIn);
   }
 
index 1f3023b307c9215d71f1e3d769148befdf1ccefe..5311ef437e9254698f99b40c9cecc4f0f0f57ebe 100644 (file)
@@ -494,10 +494,9 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {
 
   DenseMap<unsigned, unsigned> LiveInMap;
   if (!FuncInfo->ArgDbgValues.empty())
-    for (MachineRegisterInfo::livein_iterator LI = RegInfo->livein_begin(),
-           E = RegInfo->livein_end(); LI != E; ++LI)
-      if (LI->second)
-        LiveInMap.insert(std::make_pair(LI->first, LI->second));
+    for (std::pair<unsigned, unsigned> LI : RegInfo->liveins())
+      if (LI.second)
+        LiveInMap.insert(LI);
 
   // Insert DBG_VALUE instructions for function arguments to the entry block.
   for (unsigned i = 0, e = FuncInfo->ArgDbgValues.size(); i != e; ++i) {
index c5da5e4042004179385400de50e2af421ab690ca..15dcf650d9afe1aa6ccf8bafcb8f92246d3146b8 100644 (file)
@@ -1186,10 +1186,8 @@ int R600InstrInfo::getIndirectIndexBegin(const MachineFunction &MF) const {
   }
 
   const TargetRegisterClass *IndirectRC = getIndirectAddrRegClass();
-  for (MachineRegisterInfo::livein_iterator LI = MRI.livein_begin(),
-                                            LE = MRI.livein_end();
-                                            LI != LE; ++LI) {
-    unsigned Reg = LI->first;
+  for (std::pair<unsigned, unsigned> LI : MRI.liveins()) {
+    unsigned Reg = LI.first;
     if (TargetRegisterInfo::isVirtualRegister(Reg) ||
         !IndirectRC->contains(Reg))
       continue;
index e62e006e40cbf5bdf9f001498a290ab87af9c3d5..c8927ec713a59451be9070a713359cd0baeaa0c0 100644 (file)
@@ -1248,11 +1248,8 @@ unsigned HexagonEvaluator::getNextPhysReg(unsigned PReg, unsigned Width) const {
 }
 
 unsigned HexagonEvaluator::getVirtRegFor(unsigned PReg) const {
-  using iterator = MachineRegisterInfo::livein_iterator;
-
-  for (iterator I = MRI.livein_begin(), E = MRI.livein_end(); I != E; ++I) {
-    if (I->first == PReg)
-      return I->second;
-  }
+  for (std::pair<unsigned,unsigned> P : MRI.liveins())
+    if (P.first == PReg)
+      return P.second;
   return 0;
 }
index ea47b01fcc4be957bbc280d89a76c0878ddb9cbd..de58ddff3397c06cce1fc4f1ae34fb2bc31dc89e 100644 (file)
@@ -913,8 +913,8 @@ void DataFlowGraph::build(unsigned Options) {
   MachineRegisterInfo &MRI = MF.getRegInfo();
   MachineBasicBlock &EntryB = *EA.Addr->getCode();
   assert(EntryB.pred_empty() && "Function entry block has predecessors");
-  for (auto I = MRI.livein_begin(), E = MRI.livein_end(); I != E; ++I)
-    LiveIns.insert(RegisterRef(I->first));
+  for (std::pair<unsigned,unsigned> P : MRI.liveins())
+    LiveIns.insert(RegisterRef(P.first));
   if (MRI.tracksLiveness()) {
     for (auto I : EntryB.liveins())
       LiveIns.insert(RegisterRef(I.PhysReg, I.LaneMask));
index 756e35a6e6c60cb64790671c0de5bc11fce6276d..0a01fdf9e6764c05b914415b425ea78feb221dbc 100644 (file)
@@ -312,11 +312,9 @@ static void HandleVRSaveUpdate(MachineInstr &MI, const TargetInstrInfo &TII) {
 
   // Live in and live out values already must be in the mask, so don't bother
   // marking them.
-  for (MachineRegisterInfo::livein_iterator
-       I = MF->getRegInfo().livein_begin(),
-       E = MF->getRegInfo().livein_end(); I != E; ++I) {
-    unsigned RegNo = TRI->getEncodingValue(I->first);
-    if (VRRegNo[RegNo] == I->first)        // If this really is a vector reg.
+  for (std::pair<unsigned, unsigned> LI : MF->getRegInfo().liveins()) {
+    unsigned RegNo = TRI->getEncodingValue(LI.first);
+    if (VRRegNo[RegNo] == LI.first)        // If this really is a vector reg.
       UsedRegMask &= ~(1 << (31-RegNo));   // Doesn't need to be marked.
   }
 
index 6baef0428725b5a779c7f7aeac6154dbc914b5b3..a8900b04f06d55e759b8291135145d302aa11f20 100644 (file)
@@ -3235,9 +3235,9 @@ SDValue X86TargetLowering::LowerFormalArguments(
 
   if (CallConv == CallingConv::X86_RegCall ||
       Fn->hasFnAttribute("no_caller_saved_registers")) {
-    const MachineRegisterInfo &MRI = MF.getRegInfo();
-    for (const auto &Pair : make_range(MRI.livein_begin(), MRI.livein_end()))
-      MF.getRegInfo().disableCalleeSavedRegister(Pair.first);
+    MachineRegisterInfo &MRI = MF.getRegInfo();
+    for (std::pair<unsigned, unsigned> Pair : MRI.liveins())
+      MRI.disableCalleeSavedRegister(Pair.first);
   }
 
   return Chain;
index 0ea787ee6f548728cedeb37d3afb9a656be86025..fb8c2a71c9ab2cbdea251b45becd51918745b66b 100644 (file)
@@ -132,9 +132,8 @@ static bool isYmmOrZmmReg(unsigned Reg) {
 }
 
 static bool checkFnHasLiveInYmmOrZmm(MachineRegisterInfo &MRI) {
-  for (MachineRegisterInfo::livein_iterator I = MRI.livein_begin(),
-       E = MRI.livein_end(); I != E; ++I)
-    if (isYmmOrZmmReg(I->first))
+  for (std::pair<unsigned, unsigned> LI : MRI.liveins())
+    if (isYmmOrZmmReg(LI.first))
       return true;
 
   return false;