From bfd00ae31ea25ff02884a9cbb0b64f0372817101 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Tue, 11 Jan 2022 18:31:25 -0800 Subject: [PATCH] [lld-link] Change config and driver to unique_ptr Similar to D116143. My x86-64 `lld` is ~5KiB smaller. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D116996 --- lld/COFF/Config.h | 2 +- lld/COFF/Driver.cpp | 8 ++++---- lld/COFF/Driver.h | 3 +-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/lld/COFF/Config.h b/lld/COFF/Config.h index 3917975e165d..5597389b4226 100644 --- a/lld/COFF/Config.h +++ b/lld/COFF/Config.h @@ -282,7 +282,7 @@ struct Configuration { bool stdcallFixup = false; }; -extern Configuration *config; +extern std::unique_ptr config; } // namespace coff } // namespace lld diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp index 6178d328e3f5..f8da63c5edbf 100644 --- a/lld/COFF/Driver.cpp +++ b/lld/COFF/Driver.cpp @@ -60,8 +60,8 @@ using namespace llvm::sys; namespace lld { namespace coff { -Configuration *config; -LinkerDriver *driver; +std::unique_ptr config; +std::unique_ptr driver; bool link(ArrayRef args, bool canExitEarly, raw_ostream &stdoutOS, raw_ostream &stderrOS) { @@ -80,8 +80,8 @@ bool link(ArrayRef args, bool canExitEarly, raw_ostream &stdoutOS, stderrOS.enable_colors(stderrOS.has_colors()); COFFLinkerContext ctx; - config = make(); - driver = make(ctx); + config = std::make_unique(); + driver = std::make_unique(ctx); driver->linkerMain(args); diff --git a/lld/COFF/Driver.h b/lld/COFF/Driver.h index 77e67b282665..518ec1470677 100644 --- a/lld/COFF/Driver.h +++ b/lld/COFF/Driver.h @@ -30,8 +30,7 @@ namespace lld { namespace coff { -class LinkerDriver; -extern LinkerDriver *driver; +extern std::unique_ptr driver; using llvm::COFF::MachineTypes; using llvm::COFF::WindowsSubsystem;