[PATCH] D133003: [WIP][ELF] Parallelize relocation scanning
    Igor Kudrin via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Aug 31 11:45:40 PDT 2022
    
    
  
ikudrin added inline comments.
================
Comment at: lld/ELF/Relocations.cpp:299-300
                                uint64_t size) {
-  Symbol old = sym;
-
+  Symbol old{Symbol::PlaceholderKind, nullptr, StringRef(), 0, 0, 0};
+  memcpy(&old, &sym, sizeof(old));
   sym.replace(Defined{sym.file, StringRef(), sym.binding, sym.stOther,
----------------
Why not define a copy constructor?
================
Comment at: lld/ELF/Symbols.h:289
 
-  // True if this symbol needs a canonical PLT entry, or (during
-  // postScanRelocations) a copy relocation.
-  uint8_t needsCopy : 1;
+  uint8_t needsTlsGdToIe : 1;
 
----------------
Why is not `needsTlsGdToIe` moved under `atomic` like `needsTlsGd` and alike?
================
Comment at: lld/ELF/Symbols.h:306
 
+  void setFlag(uint8_t bit) { flags.fetch_or(bit, std::memory_order_relaxed); }
+  bool hasFlag(uint8_t bit) const {
----------------
You use it with two flags at least once, maybe call it `setFlags`?
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D133003/new/
https://reviews.llvm.org/D133003
    
    
More information about the llvm-commits
mailing list