<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Sep 15, 2013 at 3:16 PM, Benjamin Kramer <span dir="ltr"><<a href="mailto:benny.kra@gmail.com" target="_blank">benny.kra@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Mon, Sep 16, 2013 at 12:12 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br>

><br>
><br>
><br>
> On Sun, Sep 15, 2013 at 3:04 PM, Benjamin Kramer <<a href="mailto:benny.kra@googlemail.com">benny.kra@googlemail.com</a>><br>
> wrote:<br>
>><br>
>> 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>
><br>
><br>
> would it be practical to change the return types of thees functions to<br>
> ArrayRef to reduce the chance of accidental copying?<br>
<br>
</div>ArrayRef has a conversion operator for std::vector, won't that make<br>
the copying even worse?<br></blockquote><div><br></div><div>ah, pity. Not sure it'd make it worse (yeah, maybe in 98 where moves won't kick in, etc), but certainly not better.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
- Ben<br>
<div class="HOEnZb"><div class="h5"><br>
>><br>
>><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:<br>
>> <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>
>> ==============================================================================<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<br>
>> 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:<br>
>> <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>
>> ==============================================================================<br>
>> --- llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp (original)<br>
>> +++ llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp Sun Sep 15 17:04:42<br>
>> 2013<br>
>> @@ -164,7 +164,7 @@ const BlockAddress *ARMConstantPoolConst<br>
>>  int<br>
>> ARMConstantPoolConstant::getExistingMachineCPValue(MachineConstantPool *CP,<br>
>>                                                         unsigned<br>
>> Alignment) {<br>
>>    unsigned AlignMask = Alignment - 1;<br>
>> -  const std::vector<MachineConstantPoolEntry> Constants =<br>
>> CP->getConstants();<br>
>> +  const std::vector<MachineConstantPoolEntry> &Constants =<br>
>> 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<br>
>> *CP,<br>
>>                                                       unsigned Alignment)<br>
>> {<br>
>>    unsigned AlignMask = Alignment - 1;<br>
>> -  const std::vector<MachineConstantPoolEntry> Constants =<br>
>> CP->getConstants();<br>
>> +  const std::vector<MachineConstantPoolEntry> &Constants =<br>
>> 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<br>
>> *CP,<br>
>>                                                    unsigned Alignment) {<br>
>>    unsigned AlignMask = Alignment - 1;<br>
>> -  const std::vector<MachineConstantPoolEntry> Constants =<br>
>> CP->getConstants();<br>
>> +  const std::vector<MachineConstantPoolEntry> &Constants =<br>
>> 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:<br>
>> <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>
>> ==============================================================================<br>
>> --- llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp (original)<br>
>> +++ llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp Sun Sep 15<br>
>> 17:04:42 2013<br>
>> @@ -871,7 +871,7 @@ bool HexagonHardwareLoops::isInvalidLoop<br>
>>  /// \brief - Return true if the loop contains an instruction that<br>
>> inhibits<br>
>>  /// the use of the hardware loop function.<br>
>>  bool HexagonHardwareLoops::containsInvalidInstruction(MachineLoop *L)<br>
>> 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:<br>
>> <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>
>> ==============================================================================<br>
>> --- llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp (original)<br>
>> +++ llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp Sun Sep 15<br>
>> 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 =<br>
>> CP->getConstants();<br>
>> +  const std::vector<MachineConstantPoolEntry> &Constants =<br>
>> 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:<br>
>> <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>
>> ==============================================================================<br>
>> --- llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp (original)<br>
>> +++ llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp Sun Sep 15 17:04:42<br>
>> 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:<br>
>> <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>
>> ==============================================================================<br>
>> --- llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp (original)<br>
>> +++ llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp Sun Sep 15 17:04:42<br>
>> 2013<br>
>> @@ -121,7 +121,7 @@ void RegisterInfoEmitter::runEnums(raw_o<br>
>>        OS << "}\n";<br>
>>    }<br>
>><br>
>> -  const std::vector<Record*> RegAltNameIndices =<br>
>> Target.getRegAltNameIndices();<br>
>> +  const std::vector<Record*> &RegAltNameIndices =<br>
>> 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>
><br>
><br>
</div></div></blockquote></div><br></div></div>