[PATCH] D19900: [scan-build] fix dead store warnings emitted on LLVM Hexagon code base

Apelete Seketeli via llvm-commits llvm-commits at lists.llvm.org
Wed May 4 10:32:41 PDT 2016


apelete updated this revision to Diff 56170.
apelete added a comment.

[scan-build] fix dead store warnings emitted on LLVM Hexagon code base

Changes since last revision:

- lib/Target/Hexagon/HexagonOptAddrMode.cpp: initialize 'OpStart' with 'OpEnd' value and assert if number of operands has not been computed before changing instruction store.


http://reviews.llvm.org/D19900

Files:
  lib/Target/Hexagon/HexagonCommonGEP.cpp
  lib/Target/Hexagon/HexagonFixupHwLoops.cpp
  lib/Target/Hexagon/HexagonOptAddrMode.cpp
  lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp
  lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp

Index: lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp
===================================================================
--- lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp
+++ lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp
@@ -180,7 +180,6 @@
     if (MCS.size() == 1) {                     // case of one duplex
       // copy the created duplex in the shuffler to the bundle
       MCS.copyTo(MCB);
-      doneShuffling = true;
       return HexagonShuffler::SHUFFLE_SUCCESS;
     }
     // try shuffle with this duplex
Index: lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp
===================================================================
--- lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp
+++ lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp
@@ -79,7 +79,6 @@
   }
   if (HexagonMCInstrInfo::isOuterLoop(*MI)) {
     OS << Separator;
-    Separator = " ";
     MCInst ME;
     ME.setOpcode(Hexagon::ENDLOOP1);
     printInstruction(&ME, OS);
Index: lib/Target/Hexagon/HexagonOptAddrMode.cpp
===================================================================
--- lib/Target/Hexagon/HexagonOptAddrMode.cpp
+++ lib/Target/Hexagon/HexagonOptAddrMode.cpp
@@ -396,8 +396,8 @@
 bool HexagonOptAddrMode::changeStore(MachineInstr *OldMI, MachineOperand ImmOp,
                                      unsigned ImmOpNum) {
   bool Changed = false;
-  unsigned OpStart;
   unsigned OpEnd = OldMI->getNumOperands();
+  unsigned OpStart = OpEnd;
   MachineBasicBlock *BB = OldMI->getParent();
   auto UsePos = MachineBasicBlock::iterator(OldMI);
   MachineBasicBlock::instr_iterator InsertPt = UsePos.getInstrIterator();
@@ -438,9 +438,11 @@
     DEBUG(dbgs() << "[Changing]: " << *OldMI << "\n");
     DEBUG(dbgs() << "[TO]: " << MIB << "\n");
   }
-  if (Changed)
+  if (Changed) {
+    assert(OpStart < OpEnd && "unknown number of operands, cannot change instruction store");
     for (unsigned i = OpStart; i < OpEnd; ++i)
       MIB.addOperand(OldMI->getOperand(i));
+  }
 
   return Changed;
 }
Index: lib/Target/Hexagon/HexagonFixupHwLoops.cpp
===================================================================
--- lib/Target/Hexagon/HexagonFixupHwLoops.cpp
+++ lib/Target/Hexagon/HexagonFixupHwLoops.cpp
@@ -130,7 +130,6 @@
 
   // Second pass - check each loop instruction to see if it needs to be
   // converted.
-  InstOffset = 0;
   bool Changed = false;
   for (MachineBasicBlock &MBB : MF) {
     InstOffset = BlockToInstOffset[&MBB];
Index: lib/Target/Hexagon/HexagonCommonGEP.cpp
===================================================================
--- lib/Target/Hexagon/HexagonCommonGEP.cpp
+++ lib/Target/Hexagon/HexagonCommonGEP.cpp
@@ -212,7 +212,6 @@
       if (Comma)
         OS << ',';
       OS << "used";
-      Comma = true;
     }
     OS << "} ";
     if (GN.Flags & GepNode::Root)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19900.56170.patch
Type: text/x-patch
Size: 2848 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160504/6e86ab1f/attachment.bin>


More information about the llvm-commits mailing list