[llvm] r190770 - Replace some unnecessary vector copies with references.

David Blaikie dblaikie at gmail.com
Sun Sep 15 15:18:01 PDT 2013


On Sun, Sep 15, 2013 at 3:16 PM, Benjamin Kramer <benny.kra at gmail.com>wrote:

> On Mon, Sep 16, 2013 at 12:12 AM, David Blaikie <dblaikie at gmail.com>
> wrote:
> >
> >
> >
> > On Sun, Sep 15, 2013 at 3:04 PM, Benjamin Kramer <
> benny.kra at googlemail.com>
> > wrote:
> >>
> >> Author: d0k
> >> Date: Sun Sep 15 17:04:42 2013
> >> New Revision: 190770
> >>
> >> URL: http://llvm.org/viewvc/llvm-project?rev=190770&view=rev
> >> Log:
> >> Replace some unnecessary vector copies with references.
> >
> >
> > would it be practical to change the return types of thees functions to
> > ArrayRef to reduce the chance of accidental copying?
>
> ArrayRef has a conversion operator for std::vector, won't that make
> the copying even worse?
>

ah, pity. Not sure it'd make it worse (yeah, maybe in 98 where moves won't
kick in, etc), but certainly not better.


>
> - Ben
>
> >>
> >>
> >> Modified:
> >>     llvm/trunk/lib/CodeGen/MachineLICM.cpp
> >>     llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp
> >>     llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp
> >>     llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp
> >>     llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp
> >>     llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp
> >>
> >> Modified: llvm/trunk/lib/CodeGen/MachineLICM.cpp
> >> URL:
> >>
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineLICM.cpp?rev=190770&r1=190769&r2=190770&view=diff
> >>
> >>
> ==============================================================================
> >> --- llvm/trunk/lib/CodeGen/MachineLICM.cpp (original)
> >> +++ llvm/trunk/lib/CodeGen/MachineLICM.cpp Sun Sep 15 17:04:42 2013
> >> @@ -502,7 +502,7 @@ void MachineLICM::HoistRegionPostRA() {
> >>
> >>    // Walk the entire region, count number of defs for each register,
> and
> >>    // collect potential LICM candidates.
> >> -  const std::vector<MachineBasicBlock*> Blocks = CurLoop->getBlocks();
> >> +  const std::vector<MachineBasicBlock *> &Blocks =
> CurLoop->getBlocks();
> >>    for (unsigned i = 0, e = Blocks.size(); i != e; ++i) {
> >>      MachineBasicBlock *BB = Blocks[i];
> >>
> >> @@ -584,7 +584,7 @@ void MachineLICM::HoistRegionPostRA() {
> >>  /// AddToLiveIns - Add register 'Reg' to the livein sets of BBs in the
> >> current
> >>  /// loop, and make sure it is not killed by any instructions in the
> loop.
> >>  void MachineLICM::AddToLiveIns(unsigned Reg) {
> >> -  const std::vector<MachineBasicBlock*> Blocks = CurLoop->getBlocks();
> >> +  const std::vector<MachineBasicBlock *> &Blocks =
> CurLoop->getBlocks();
> >>    for (unsigned i = 0, e = Blocks.size(); i != e; ++i) {
> >>      MachineBasicBlock *BB = Blocks[i];
> >>      if (!BB->isLiveIn(Reg))
> >>
> >> Modified: llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp
> >> URL:
> >>
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp?rev=190770&r1=190769&r2=190770&view=diff
> >>
> >>
> ==============================================================================
> >> --- llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp (original)
> >> +++ llvm/trunk/lib/Target/ARM/ARMConstantPoolValue.cpp Sun Sep 15
> 17:04:42
> >> 2013
> >> @@ -164,7 +164,7 @@ const BlockAddress *ARMConstantPoolConst
> >>  int
> >> ARMConstantPoolConstant::getExistingMachineCPValue(MachineConstantPool
> *CP,
> >>                                                         unsigned
> >> Alignment) {
> >>    unsigned AlignMask = Alignment - 1;
> >> -  const std::vector<MachineConstantPoolEntry> Constants =
> >> CP->getConstants();
> >> +  const std::vector<MachineConstantPoolEntry> &Constants =
> >> CP->getConstants();
> >>    for (unsigned i = 0, e = Constants.size(); i != e; ++i) {
> >>      if (Constants[i].isMachineConstantPoolEntry() &&
> >>          (Constants[i].getAlignment() & AlignMask) == 0) {
> >> @@ -217,7 +217,7 @@ ARMConstantPoolSymbol::Create(LLVMContex
> >>  int
> ARMConstantPoolSymbol::getExistingMachineCPValue(MachineConstantPool
> >> *CP,
> >>                                                       unsigned
> Alignment)
> >> {
> >>    unsigned AlignMask = Alignment - 1;
> >> -  const std::vector<MachineConstantPoolEntry> Constants =
> >> CP->getConstants();
> >> +  const std::vector<MachineConstantPoolEntry> &Constants =
> >> CP->getConstants();
> >>    for (unsigned i = 0, e = Constants.size(); i != e; ++i) {
> >>      if (Constants[i].isMachineConstantPoolEntry() &&
> >>          (Constants[i].getAlignment() & AlignMask) == 0) {
> >> @@ -272,7 +272,7 @@ ARMConstantPoolMBB *ARMConstantPoolMBB::
> >>  int ARMConstantPoolMBB::getExistingMachineCPValue(MachineConstantPool
> >> *CP,
> >>                                                    unsigned Alignment) {
> >>    unsigned AlignMask = Alignment - 1;
> >> -  const std::vector<MachineConstantPoolEntry> Constants =
> >> CP->getConstants();
> >> +  const std::vector<MachineConstantPoolEntry> &Constants =
> >> CP->getConstants();
> >>    for (unsigned i = 0, e = Constants.size(); i != e; ++i) {
> >>      if (Constants[i].isMachineConstantPoolEntry() &&
> >>          (Constants[i].getAlignment() & AlignMask) == 0) {
> >>
> >> Modified: llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp
> >> URL:
> >>
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp?rev=190770&r1=190769&r2=190770&view=diff
> >>
> >>
> ==============================================================================
> >> --- llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp (original)
> >> +++ llvm/trunk/lib/Target/Hexagon/HexagonHardwareLoops.cpp Sun Sep 15
> >> 17:04:42 2013
> >> @@ -871,7 +871,7 @@ bool HexagonHardwareLoops::isInvalidLoop
> >>  /// \brief - Return true if the loop contains an instruction that
> >> inhibits
> >>  /// the use of the hardware loop function.
> >>  bool HexagonHardwareLoops::containsInvalidInstruction(MachineLoop *L)
> >> const {
> >> -  const std::vector<MachineBasicBlock*> Blocks = L->getBlocks();
> >> +  const std::vector<MachineBasicBlock *> &Blocks = L->getBlocks();
> >>    for (unsigned i = 0, e = Blocks.size(); i != e; ++i) {
> >>      MachineBasicBlock *MBB = Blocks[i];
> >>      for (MachineBasicBlock::iterator
> >>
> >> Modified: llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp
> >> URL:
> >>
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp?rev=190770&r1=190769&r2=190770&view=diff
> >>
> >>
> ==============================================================================
> >> --- llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp
> (original)
> >> +++ llvm/trunk/lib/Target/SystemZ/SystemZConstantPoolValue.cpp Sun Sep
> 15
> >> 17:04:42 2013
> >> @@ -39,7 +39,7 @@ unsigned SystemZConstantPoolValue::getRe
> >>  int SystemZConstantPoolValue::
> >>  getExistingMachineCPValue(MachineConstantPool *CP, unsigned Alignment)
> {
> >>    unsigned AlignMask = Alignment - 1;
> >> -  const std::vector<MachineConstantPoolEntry> Constants =
> >> CP->getConstants();
> >> +  const std::vector<MachineConstantPoolEntry> &Constants =
> >> CP->getConstants();
> >>    for (unsigned I = 0, E = Constants.size(); I != E; ++I) {
> >>      if (Constants[I].isMachineConstantPoolEntry() &&
> >>          (Constants[I].getAlignment() & AlignMask) == 0) {
> >>
> >> Modified: llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp
> >> URL:
> >>
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp?rev=190770&r1=190769&r2=190770&view=diff
> >>
> >>
> ==============================================================================
> >> --- llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp (original)
> >> +++ llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp Sun Sep 15 17:04:42
> >> 2013
> >> @@ -239,8 +239,6 @@ bool llvm::UnrollLoop(Loop *L, unsigned
> >>      DEBUG(dbgs() << "!\n");
> >>    }
> >>
> >> -  std::vector<BasicBlock*> LoopBlocks = L->getBlocks();
> >> -
> >>    bool ContinueOnTrue = L->contains(BI->getSuccessor(0));
> >>    BasicBlock *LoopExit = BI->getSuccessor(ContinueOnTrue);
> >>
> >>
> >> Modified: llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp
> >> URL:
> >>
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp?rev=190770&r1=190769&r2=190770&view=diff
> >>
> >>
> ==============================================================================
> >> --- llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp (original)
> >> +++ llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp Sun Sep 15
> 17:04:42
> >> 2013
> >> @@ -121,7 +121,7 @@ void RegisterInfoEmitter::runEnums(raw_o
> >>        OS << "}\n";
> >>    }
> >>
> >> -  const std::vector<Record*> RegAltNameIndices =
> >> Target.getRegAltNameIndices();
> >> +  const std::vector<Record*> &RegAltNameIndices =
> >> Target.getRegAltNameIndices();
> >>    // If the only definition is the default NoRegAltName, we don't need
> to
> >>    // emit anything.
> >>    if (RegAltNameIndices.size() > 1) {
> >>
> >>
> >> _______________________________________________
> >> llvm-commits mailing list
> >> llvm-commits at cs.uiuc.edu
> >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130915/1d866f0d/attachment.html>


More information about the llvm-commits mailing list