<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Sep 15, 2013 at 3:04 PM, Benjamin Kramer <span dir="ltr"><<a href="mailto:benny.kra@googlemail.com" target="_blank">benny.kra@googlemail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: d0k<br>
Date: Sun Sep 15 17:04:42 2013<br>
New Revision: 190770<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=190770&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=190770&view=rev</a><br>
Log:<br>
Replace some unnecessary vector copies with references.<br></blockquote><div><br></div><div>would it be practical to change the return types of thees functions to ArrayRef to reduce the chance of accidental copying? </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Modified:<br>
    llvm/trunk/lib/CodeGen/MachineLICM.cpp<br>
    llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp<br>
    llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp<br>
    llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp<br>
    llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp<br>
    llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp<br>
<br>
Modified: llvm/trunk/lib/CodeGen/MachineLICM.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineLICM.cpp?rev=190770&r1=190769&r2=190770&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineLICM.cpp?rev=190770&r1=190769&r2=190770&view=diff</a><br>

==============================================================================<br>
--- llvm/trunk/lib/CodeGen/MachineLICM.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/MachineLICM.cpp Sun Sep 15 17:04:42 2013<br>
@@ -502,7 +502,7 @@ void MachineLICM::HoistRegionPostRA() {<br>
<br>
   // Walk the entire region, count number of defs for each register, and<br>
   // collect potential LICM candidates.<br>
-  const std::vector<MachineBasicBlock*> Blocks = CurLoop->getBlocks();<br>
+  const std::vector<MachineBasicBlock *> &Blocks = CurLoop->getBlocks();<br>
   for (unsigned i = 0, e = Blocks.size(); i != e; ++i) {<br>
     MachineBasicBlock *BB = Blocks[i];<br>
<br>
@@ -584,7 +584,7 @@ void MachineLICM::HoistRegionPostRA() {<br>
 /// AddToLiveIns - Add register 'Reg' to the livein sets of BBs in the current<br>
 /// loop, and make sure it is not killed by any instructions in the loop.<br>
 void MachineLICM::AddToLiveIns(unsigned Reg) {<br>
-  const std::vector<MachineBasicBlock*> Blocks = CurLoop->getBlocks();<br>
+  const std::vector<MachineBasicBlock *> &Blocks = CurLoop->getBlocks();<br>
   for (unsigned i = 0, e = Blocks.size(); i != e; ++i) {<br>
     MachineBasicBlock *BB = Blocks[i];<br>
     if (!BB->isLiveIn(Reg))<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp?rev=190770&r1=190769&r2=190770&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp?rev=190770&r1=190769&r2=190770&view=diff</a><br>

==============================================================================<br>
--- llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp Sun Sep 15 17:04:42 2013<br>
@@ -164,7 +164,7 @@ const BlockAddress *ARMConstantPoolConst<br>
 int ARMConstantPoolConstant::getExistingMachineCPValue(MachineConstantPool *CP,<br>
                                                        unsigned Alignment) {<br>
   unsigned AlignMask = Alignment - 1;<br>
-  const std::vector<MachineConstantPoolEntry> Constants = CP->getConstants();<br>
+  const std::vector<MachineConstantPoolEntry> &Constants = CP->getConstants();<br>
   for (unsigned i = 0, e = Constants.size(); i != e; ++i) {<br>
     if (Constants[i].isMachineConstantPoolEntry() &&<br>
         (Constants[i].getAlignment() & AlignMask) == 0) {<br>
@@ -217,7 +217,7 @@ ARMConstantPoolSymbol::Create(LLVMContex<br>
 int ARMConstantPoolSymbol::getExistingMachineCPValue(MachineConstantPool *CP,<br>
                                                      unsigned Alignment) {<br>
   unsigned AlignMask = Alignment - 1;<br>
-  const std::vector<MachineConstantPoolEntry> Constants = CP->getConstants();<br>
+  const std::vector<MachineConstantPoolEntry> &Constants = CP->getConstants();<br>
   for (unsigned i = 0, e = Constants.size(); i != e; ++i) {<br>
     if (Constants[i].isMachineConstantPoolEntry() &&<br>
         (Constants[i].getAlignment() & AlignMask) == 0) {<br>
@@ -272,7 +272,7 @@ ARMConstantPoolMBB *ARMConstantPoolMBB::<br>
 int ARMConstantPoolMBB::getExistingMachineCPValue(MachineConstantPool *CP,<br>
                                                   unsigned Alignment) {<br>
   unsigned AlignMask = Alignment - 1;<br>
-  const std::vector<MachineConstantPoolEntry> Constants = CP->getConstants();<br>
+  const std::vector<MachineConstantPoolEntry> &Constants = CP->getConstants();<br>
   for (unsigned i = 0, e = Constants.size(); i != e; ++i) {<br>
     if (Constants[i].isMachineConstantPoolEntry() &&<br>
         (Constants[i].getAlignment() & AlignMask) == 0) {<br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp?rev=190770&r1=190769&r2=190770&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp?rev=190770&r1=190769&r2=190770&view=diff</a><br>

==============================================================================<br>
--- llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp Sun Sep 15 17:04:42 2013<br>
@@ -871,7 +871,7 @@ bool HexagonHardwareLoops::isInvalidLoop<br>
 /// \brief - Return true if the loop contains an instruction that inhibits<br>
 /// the use of the hardware loop function.<br>
 bool HexagonHardwareLoops::containsInvalidInstruction(MachineLoop *L) const {<br>
-  const std::vector<MachineBasicBlock*> Blocks = L->getBlocks();<br>
+  const std::vector<MachineBasicBlock *> &Blocks = L->getBlocks();<br>
   for (unsigned i = 0, e = Blocks.size(); i != e; ++i) {<br>
     MachineBasicBlock *MBB = Blocks[i];<br>
     for (MachineBasicBlock::iterator<br>
<br>
Modified: llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp?rev=190770&r1=190769&r2=190770&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp?rev=190770&r1=190769&r2=190770&view=diff</a><br>

==============================================================================<br>
--- llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp (original)<br>
+++ llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp Sun Sep 15 17:04:42 2013<br>
@@ -39,7 +39,7 @@ unsigned SystemZConstantPoolValue::getRe<br>
 int SystemZConstantPoolValue::<br>
 getExistingMachineCPValue(MachineConstantPool *CP, unsigned Alignment) {<br>
   unsigned AlignMask = Alignment - 1;<br>
-  const std::vector<MachineConstantPoolEntry> Constants = CP->getConstants();<br>
+  const std::vector<MachineConstantPoolEntry> &Constants = CP->getConstants();<br>
   for (unsigned I = 0, E = Constants.size(); I != E; ++I) {<br>
     if (Constants[I].isMachineConstantPoolEntry() &&<br>
         (Constants[I].getAlignment() & AlignMask) == 0) {<br>
<br>
Modified: llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp?rev=190770&r1=190769&r2=190770&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp?rev=190770&r1=190769&r2=190770&view=diff</a><br>

==============================================================================<br>
--- llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp Sun Sep 15 17:04:42 2013<br>
@@ -239,8 +239,6 @@ bool llvm::UnrollLoop(Loop *L, unsigned<br>
     DEBUG(dbgs() << "!\n");<br>
   }<br>
<br>
-  std::vector<BasicBlock*> LoopBlocks = L->getBlocks();<br>
-<br>
   bool ContinueOnTrue = L->contains(BI->getSuccessor(0));<br>
   BasicBlock *LoopExit = BI->getSuccessor(ContinueOnTrue);<br>
<br>
<br>
Modified: llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp?rev=190770&r1=190769&r2=190770&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp?rev=190770&r1=190769&r2=190770&view=diff</a><br>

==============================================================================<br>
--- llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp (original)<br>
+++ llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp Sun Sep 15 17:04:42 2013<br>
@@ -121,7 +121,7 @@ void RegisterInfoEmitter::runEnums(raw_o<br>
       OS << "}\n";<br>
   }<br>
<br>
-  const std::vector<Record*> RegAltNameIndices = Target.getRegAltNameIndices();<br>
+  const std::vector<Record*> &RegAltNameIndices = Target.getRegAltNameIndices();<br>
   // If the only definition is the default NoRegAltName, we don't need to<br>
   // emit anything.<br>
   if (RegAltNameIndices.size() > 1) {<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>