[lld] r219724 - Remove dead code.

Rui Ueyama ruiu at google.com
Tue Oct 14 14:37:33 PDT 2014


Author: ruiu
Date: Tue Oct 14 16:37:33 2014
New Revision: 219724

URL: http://llvm.org/viewvc/llvm-project?rev=219724&view=rev
Log:
Remove dead code.

Because we use cast<> at the beginning of this function, it will
abort there if a given atom is not a DefinedAtom.

In the switch statement, we checked if a given atom is a DefinedAtom
again by evaluating definition() == Atom::definitionRegular.
This was always true. So we can remove the outer switch statement.

Modified:
    lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h

Modified: lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h?rev=219724&r1=219723&r2=219724&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h Tue Oct 14 16:37:33 2014
@@ -272,7 +272,6 @@ uint64_t AtomSection<ELFT>::alignOffset(
 // the atom file offset is aligned appropriately as set by the Reader
 template <class ELFT>
 const lld::AtomLayout &AtomSection<ELFT>::appendAtom(const Atom *atom) {
-  Atom::Definition atomType = atom->definition();
   const DefinedAtom *definedAtom = cast<DefinedAtom>(atom);
 
   DefinedAtom::Alignment atomAlign = definedAtom->alignment();
@@ -282,49 +281,42 @@ const lld::AtomLayout &AtomSection<ELFT>
   // properly as the BSS symbols only occupy memory size and not file size
   uint64_t fOffset = alignOffset(this->fileSize(), atomAlign);
   uint64_t mOffset = alignOffset(this->memSize(), atomAlign);
-  switch (atomType) {
-  case Atom::definitionRegular:
-    switch(definedAtom->contentType()) {
-    case DefinedAtom::typeCode:
-    case DefinedAtom::typeConstant:
-    case DefinedAtom::typeData:
-    case DefinedAtom::typeDataFast:
-    case DefinedAtom::typeZeroFillFast:
-    case DefinedAtom::typeGOT:
-    case DefinedAtom::typeStub:
-    case DefinedAtom::typeResolver:
-    case DefinedAtom::typeThreadData:
-    case DefinedAtom::typeRONote:
-    case DefinedAtom::typeRWNote:
-      _atoms.push_back(new (_alloc) lld::AtomLayout(atom, fOffset, 0));
-      this->_fsize = fOffset + definedAtom->size();
-      this->_msize = mOffset + definedAtom->size();
-      DEBUG_WITH_TYPE("Section",
-                      llvm::dbgs() << "[" << this->name() << " " << this << "] "
-                                   << "Adding atom: " << atom->name() << "@"
-                                   << fOffset << "\n");
-      break;
-    case DefinedAtom::typeNoAlloc:
-      _atoms.push_back(new (_alloc) lld::AtomLayout(atom, fOffset, 0));
-      this->_fsize = fOffset + definedAtom->size();
-      DEBUG_WITH_TYPE("Section", llvm::dbgs() << "[" << this->name() << " "
-                                              << this << "] "
-                                              << "Adding atom: " << atom->name()
-                                              << "@" << fOffset << "\n");
-      break;
-    case DefinedAtom::typeThreadZeroFill:
-    case DefinedAtom::typeZeroFill:
-      _atoms.push_back(new (_alloc) lld::AtomLayout(atom, mOffset, 0));
-      this->_msize = mOffset + definedAtom->size();
-      break;
-    default:
-      llvm::dbgs() << definedAtom->contentType() << "\n";
-      llvm_unreachable("Uexpected content type.");
-    }
+  switch(definedAtom->contentType()) {
+  case DefinedAtom::typeCode:
+  case DefinedAtom::typeConstant:
+  case DefinedAtom::typeData:
+  case DefinedAtom::typeDataFast:
+  case DefinedAtom::typeZeroFillFast:
+  case DefinedAtom::typeGOT:
+  case DefinedAtom::typeStub:
+  case DefinedAtom::typeResolver:
+  case DefinedAtom::typeThreadData:
+  case DefinedAtom::typeRONote:
+  case DefinedAtom::typeRWNote:
+    _atoms.push_back(new (_alloc) lld::AtomLayout(atom, fOffset, 0));
+    this->_fsize = fOffset + definedAtom->size();
+    this->_msize = mOffset + definedAtom->size();
+    DEBUG_WITH_TYPE("Section",
+                    llvm::dbgs() << "[" << this->name() << " " << this << "] "
+                                 << "Adding atom: " << atom->name() << "@"
+                                 << fOffset << "\n");
     break;
-  default:
-    llvm_unreachable("Expecting only definedAtoms being passed here");
+  case DefinedAtom::typeNoAlloc:
+    _atoms.push_back(new (_alloc) lld::AtomLayout(atom, fOffset, 0));
+    this->_fsize = fOffset + definedAtom->size();
+    DEBUG_WITH_TYPE("Section", llvm::dbgs() << "[" << this->name() << " "
+                                            << this << "] "
+                                            << "Adding atom: " << atom->name()
+                                            << "@" << fOffset << "\n");
+    break;
+  case DefinedAtom::typeThreadZeroFill:
+  case DefinedAtom::typeZeroFill:
+    _atoms.push_back(new (_alloc) lld::AtomLayout(atom, mOffset, 0));
+    this->_msize = mOffset + definedAtom->size();
     break;
+  default:
+    llvm::dbgs() << definedAtom->contentType() << "\n";
+    llvm_unreachable("Uexpected content type.");
   }
   // Set the section alignment to the largest alignment
   // std::max doesn't support uint64_t





More information about the llvm-commits mailing list