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

David Blaikie dblaikie at gmail.com
Sun Sep 15 15:12:02 PDT 2013


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?

>
> 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/8aac3d11/attachment.html>


More information about the llvm-commits mailing list