[lld] 477bc36 - [lld-macho] Change some global pointers to unique_ptr

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 10 19:39:19 PST 2022


Author: Fangrui Song
Date: 2022-01-10T19:39:14-08:00
New Revision: 477bc36d3b2a1b086a6ace385f73bae4a6d84b65

URL: https://github.com/llvm/llvm-project/commit/477bc36d3b2a1b086a6ace385f73bae4a6d84b65
DIFF: https://github.com/llvm/llvm-project/commit/477bc36d3b2a1b086a6ace385f73bae4a6d84b65.diff

LOG: [lld-macho] Change some global pointers to unique_ptr

Similar to D116143. My x86-64 `lld` is ~8KiB smaller.

Reviewed By: keith

Differential Revision: https://reviews.llvm.org/D116902

Added: 
    

Modified: 
    lld/MachO/Config.h
    lld/MachO/Driver.cpp
    lld/MachO/Driver.h
    lld/MachO/SymbolTable.cpp
    lld/MachO/SymbolTable.h

Removed: 
    


################################################################################
diff  --git a/lld/MachO/Config.h b/lld/MachO/Config.h
index 42528185e57c7..8c7f16c3d5533 100644
--- a/lld/MachO/Config.h
+++ b/lld/MachO/Config.h
@@ -207,7 +207,7 @@ enum class ForceLoad {
   No,      // Never load the archive, regardless of other flags
 };
 
-extern Configuration *config;
+extern std::unique_ptr<Configuration> config;
 
 } // namespace macho
 } // namespace lld

diff  --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp
index e9d65d3c73f2f..e1371dbd72985 100644
--- a/lld/MachO/Driver.cpp
+++ b/lld/MachO/Driver.cpp
@@ -59,8 +59,8 @@ using namespace llvm::sys;
 using namespace lld;
 using namespace lld::macho;
 
-Configuration *macho::config;
-DependencyTracker *macho::depTracker;
+std::unique_ptr<Configuration> macho::config;
+std::unique_ptr<DependencyTracker> macho::depTracker;
 
 static HeaderFileType getOutputType(const InputArgList &args) {
   // TODO: -r, -dylinker, -preload...
@@ -1136,11 +1136,11 @@ bool macho::link(ArrayRef<const char *> argsArr, bool canExitEarly,
     return true;
   }
 
-  config = make<Configuration>();
-  symtab = make<SymbolTable>();
+  config = std::make_unique<Configuration>();
+  symtab = std::make_unique<SymbolTable>();
   target = createTargetInfo(args);
-  depTracker =
-      make<DependencyTracker>(args.getLastArgValue(OPT_dependency_info));
+  depTracker = std::make_unique<DependencyTracker>(
+      args.getLastArgValue(OPT_dependency_info));
   if (errorCount())
     return false;
 

diff  --git a/lld/MachO/Driver.h b/lld/MachO/Driver.h
index 4a970ac8a0845..1bbf5ff37ade6 100644
--- a/lld/MachO/Driver.h
+++ b/lld/MachO/Driver.h
@@ -115,7 +115,7 @@ class DependencyTracker {
   std::set<std::string> notFounds;
 };
 
-extern DependencyTracker *depTracker;
+extern std::unique_ptr<DependencyTracker> depTracker;
 
 } // namespace macho
 } // namespace lld

diff  --git a/lld/MachO/SymbolTable.cpp b/lld/MachO/SymbolTable.cpp
index cec717e0cd314..794ccb91d5b63 100644
--- a/lld/MachO/SymbolTable.cpp
+++ b/lld/MachO/SymbolTable.cpp
@@ -319,4 +319,4 @@ void lld::macho::treatUndefinedSymbol(const Undefined &sym, StringRef source) {
   }
 }
 
-SymbolTable *macho::symtab;
+std::unique_ptr<SymbolTable> macho::symtab;

diff  --git a/lld/MachO/SymbolTable.h b/lld/MachO/SymbolTable.h
index 625f78aa61411..67923b07538ac 100644
--- a/lld/MachO/SymbolTable.h
+++ b/lld/MachO/SymbolTable.h
@@ -70,7 +70,7 @@ class SymbolTable {
 
 void treatUndefinedSymbol(const Undefined &, StringRef source = "");
 
-extern SymbolTable *symtab;
+extern std::unique_ptr<SymbolTable> symtab;
 
 } // namespace macho
 } // namespace lld


        


More information about the llvm-commits mailing list