Skip to content

Commit

Permalink
[ELF] Optimize two vector. NFC
Browse files Browse the repository at this point in the history
  • Loading branch information
MaskRay committed Jan 27, 2022
1 parent afeb4a6 commit 1372d53
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 6 deletions.
6 changes: 3 additions & 3 deletions lld/ELF/MapFile.cpp
Expand Up @@ -91,9 +91,9 @@ static SymbolMapTy getSectionSyms(ArrayRef<Defined *> syms) {
// we do that in batch using parallel-for.
static DenseMap<Symbol *, std::string>
getSymbolStrings(ArrayRef<Defined *> syms) {
std::vector<std::string> str(syms.size());
auto strs = std::make_unique<std::string[]>(syms.size());
parallelForEachN(0, syms.size(), [&](size_t i) {
raw_string_ostream os(str[i]);
raw_string_ostream os(strs[i]);
OutputSection *osec = syms[i]->getOutputSection();
uint64_t vma = syms[i]->getVA();
uint64_t lma = osec ? osec->getLMA() + vma - osec->getVA(0) : 0;
Expand All @@ -103,7 +103,7 @@ getSymbolStrings(ArrayRef<Defined *> syms) {

DenseMap<Symbol *, std::string> ret;
for (size_t i = 0, e = syms.size(); i < e; ++i)
ret[syms[i]] = std::move(str[i]);
ret[syms[i]] = std::move(strs[i]);
return ret;
}

Expand Down
5 changes: 2 additions & 3 deletions lld/ELF/Writer.cpp
Expand Up @@ -1750,16 +1750,15 @@ template <class ELFT> void Writer<ELFT>::optimizeBasicBlockJumps() {
if (!(osec->flags & SHF_EXECINSTR))
continue;
SmallVector<InputSection *, 0> sections = getInputSections(*osec);
std::vector<unsigned> result(sections.size());
size_t numDeleted = 0;
// Delete all fall through jump instructions. Also, check if two
// consecutive jump instructions can be flipped so that a fall
// through jmp instruction can be deleted.
for (size_t i = 0, e = sections.size(); i != e; ++i) {
InputSection *next = i + 1 < sections.size() ? sections[i + 1] : nullptr;
InputSection &sec = *sections[i];
result[i] = target->deleteFallThruJmpInsn(sec, sec.file, next) ? 1 : 0;
numDeleted += target->deleteFallThruJmpInsn(sec, sec.file, next);
}
size_t numDeleted = std::count(result.begin(), result.end(), 1);
if (numDeleted > 0) {
script->assignAddresses();
LLVM_DEBUG(llvm::dbgs()
Expand Down

0 comments on commit 1372d53

Please sign in to comment.