diff options
-rw-r--r-- | lld/lib/Core/Resolver.cpp | 15 | ||||
-rw-r--r-- | lld/lib/Passes/GOTPass.cpp | 6 | ||||
-rw-r--r-- | lld/lib/Passes/LayoutPass.cpp | 19 |
3 files changed, 16 insertions, 24 deletions
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp index f0675681527..1a8660981cd 100644 --- a/lld/lib/Core/Resolver.cpp +++ b/lld/lib/Core/Resolver.cpp @@ -41,10 +41,9 @@ public: if (_liveAtoms.count(atom)) return false; // don't remove if marked never-dead-strip - if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom)) { + if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom)) if (defAtom->deadStrip() == DefinedAtom::deadStripNever) return false; - } // do remove this atom return true; } @@ -249,16 +248,14 @@ void Resolver::doAbsoluteAtom(const AbsoluteAtom &atom) { _atoms.push_back(&atom); // tell symbol table - if (atom.scope() != Atom::scopeTranslationUnit) { + if (atom.scope() != Atom::scopeTranslationUnit) _symbolTable.add(atom); - } } // utility to add a vector of atoms void Resolver::addAtoms(const std::vector<const DefinedAtom *> &newAtoms) { - for (const DefinedAtom *newAtom : newAtoms) { + for (const DefinedAtom *newAtom : newAtoms) this->doDefinedAtom(*newAtom); - } } // Keep adding atoms until _context.nextFile() returns an error. This function @@ -363,9 +360,8 @@ void Resolver::deadStripOptimize() { } // mark all roots as live, and recursively all atoms they reference - for (const Atom *dsrAtom : _deadStripRoots) { + for (const Atom *dsrAtom : _deadStripRoots) this->markLive(*dsrAtom); - } // now remove all non-live atoms from _atoms _atoms.erase( @@ -443,10 +439,9 @@ bool Resolver::resolve() { return false; this->updateReferences(); this->deadStripOptimize(); - if (this->checkUndefines(false)) { + if (this->checkUndefines(false)) if (!_context.allowRemainingUndefines()) return false; - } this->removeCoalescedAwayAtoms(); this->linkTimeOptimize(); this->_result->addAtoms(_atoms); diff --git a/lld/lib/Passes/GOTPass.cpp b/lld/lib/Passes/GOTPass.cpp index f29c35b0b64..9827952a295 100644 --- a/lld/lib/Passes/GOTPass.cpp +++ b/lld/lib/Passes/GOTPass.cpp @@ -100,8 +100,8 @@ void GOTPass::perform(std::unique_ptr<MutableFile> &mergedFile) { } // add all created GOT Atoms to master file - for (auto &it : targetToGOT) { + for (auto &it : targetToGOT) mergedFile->addAtom(*it.second); - } -} } + +} // end namesapce lld diff --git a/lld/lib/Passes/LayoutPass.cpp b/lld/lib/Passes/LayoutPass.cpp index 61b53932ad8..272042bdfe6 100644 --- a/lld/lib/Passes/LayoutPass.cpp +++ b/lld/lib/Passes/LayoutPass.cpp @@ -416,19 +416,17 @@ void LayoutPass::buildInGroupTable(MutableFile::DefinedAtomRange &range) { // Check if the current atom is part of the chain bool isAtomInChain = false; const DefinedAtom *lastAtom = rootAtom; - while (true) { + for (;;) { AtomToAtomT::iterator followOnAtomsIter = - _followOnNexts.find(lastAtom); + _followOnNexts.find(lastAtom); if (followOnAtomsIter != _followOnNexts.end()) { lastAtom = followOnAtomsIter->second; - if (lastAtom == ai) { - isAtomInChain = true; - break; - } + if (lastAtom != ai) + continue; + isAtomInChain = true; } - else - break; - } // findAtomInChain + break; + } if (!isAtomInChain) _followOnNexts[lastAtom] = ai; @@ -517,9 +515,8 @@ void LayoutPass::buildOrdinalOverrideMap(MutableFile::DefinedAtomRange &range) { for (const DefinedAtom *nextAtom = start->second; nextAtom != NULL; nextAtom = _followOnNexts[nextAtom]) { AtomToOrdinalT::iterator pos = _ordinalOverrideMap.find(nextAtom); - if (pos == _ordinalOverrideMap.end()) { + if (pos == _ordinalOverrideMap.end()) _ordinalOverrideMap[nextAtom] = index++; - } } } } |