[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