compnerd created this revision.
compnerd added reviewers: labath, xiaobai, clayborg.
Herald added a subscriber: mgorny.
Herald added a project: LLDB.
The debug server does not need to use the instruction emulation. This helps
reduce the size of the final lldb-server binary by another ~100K (~1% savings).
Repository:
rLLDB LLDB
https://reviews.llvm.org/D61543
Files:
source/API/SystemInitializerFull.cpp
source/Initialization/CMakeLists.txt
source/Initialization/SystemInitializerCommon.cpp
tools/lldb-server/CMakeLists.txt
tools/lldb-server/SystemInitializerLLGS.cpp
Index: tools/lldb-server/SystemInitializerLLGS.cpp
===================================================================
--- tools/lldb-server/SystemInitializerLLGS.cpp
+++ tools/lldb-server/SystemInitializerLLGS.cpp
@@ -19,6 +19,23 @@
using HostObjectFile = ObjectFileELF;
#endif
+#if defined(__arm__) || defined(__arm) || defined(_ARM) || defined(_M_ARM)
+#define _M_ARM
+#include "Plugins/Instruction/ARM/EmulateInstructionARM.h"
+#endif
+
+#if defined(__mips__) || defined(mips) || defined(__mips) || \
+ defined(__MIPS__) || defined(_M_MIPS)
+#define _M_MIPS
+#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h"
+#endif
+
+#if defined(__mips64__) || defined(mips64) || defined(__mips64) || \
+ defined(__MIPS64__) || defined(_M_MIPS64)
+#define _M_MIPS64
+#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h"
+#endif
+
using namespace lldb_private;
llvm::Error SystemInitializerLLGS::Initialize() {
@@ -27,10 +44,31 @@
HostObjectFile::Initialize();
+#if defined(_M_ARM)
+ EmulateInstructionARM::Initialize();
+#endif
+#if defined(_M_MIPS)
+ EmulateInstructionMIPS::Initialize();
+#endif
+#if defined(_M_MIPS64)
+ EmulateInstructionMIPS64::Initialize();
+#endif
+
return llvm::Error::success();
}
void SystemInitializerLLGS::Terminate() {
HostObjectFile::Terminate();
+
+#if defined(_M_ARM)
+ EmulateInstructionARM::Terminate();
+#endif
+#if defined(_M_MIPS)
+ EmulateInstructionMIPS::Terminate();
+#endif
+#if defined(_M_MIPS64)
+ EmulateInstructionMIPS64::Terminate();
+#endif
+
SystemInitializerCommon::Terminate();
}
Index: tools/lldb-server/CMakeLists.txt
===================================================================
--- tools/lldb-server/CMakeLists.txt
+++ tools/lldb-server/CMakeLists.txt
@@ -67,6 +67,9 @@
lldbHost
lldbInitialization
${LLDB_PLUGINS}
+ lldbPluginInstructionARM
+ lldbPluginInstructionMIPS
+ lldbPluginInstructionMIPS64
${LLDB_SYSTEM_LIBS}
LINK_COMPONENTS
Index: source/Initialization/SystemInitializerCommon.cpp
===================================================================
--- source/Initialization/SystemInitializerCommon.cpp
+++ source/Initialization/SystemInitializerCommon.cpp
@@ -8,9 +8,6 @@
#include "lldb/Initialization/SystemInitializerCommon.h"
-#include "Plugins/Instruction/ARM/EmulateInstructionARM.h"
-#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h"
-#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h"
#include "Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Host/Host.h"
@@ -99,10 +96,6 @@
process_gdb_remote::ProcessGDBRemoteLog::Initialize();
- EmulateInstructionARM::Initialize();
- EmulateInstructionMIPS::Initialize();
- EmulateInstructionMIPS64::Initialize();
-
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
ProcessPOSIXLog::Initialize();
#endif
@@ -117,10 +110,6 @@
static Timer::Category func_cat(LLVM_PRETTY_FUNCTION);
Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION);
- EmulateInstructionARM::Terminate();
- EmulateInstructionMIPS::Terminate();
- EmulateInstructionMIPS64::Terminate();
-
#if defined(_WIN32)
ProcessWindowsLog::Terminate();
#endif
Index: source/Initialization/CMakeLists.txt
===================================================================
--- source/Initialization/CMakeLists.txt
+++ source/Initialization/CMakeLists.txt
@@ -14,9 +14,6 @@
LINK_LIBS
lldbCore
lldbHost
- lldbPluginInstructionARM
- lldbPluginInstructionMIPS
- lldbPluginInstructionMIPS64
lldbPluginProcessGDBRemote
${EXTRA_PLUGINS}
${LLDB_SYSTEM_LIBS}
Index: source/API/SystemInitializerFull.cpp
===================================================================
--- source/API/SystemInitializerFull.cpp
+++ source/API/SystemInitializerFull.cpp
@@ -43,7 +43,10 @@
#include "Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h"
#include "Plugins/DynamicLoader/Static/DynamicLoaderStatic.h"
#include "Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h"
+#include "Plugins/Instruction/ARM/EmulateInstructionARM.h"
#include "Plugins/Instruction/ARM64/EmulateInstructionARM64.h"
+#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h"
+#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h"
#include "Plugins/Instruction/PPC64/EmulateInstructionPPC64.h"
#include "Plugins/InstrumentationRuntime/ASan/ASanRuntime.h"
#include "Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h"
@@ -207,8 +210,13 @@
SymbolFileSymtab::Initialize();
UnwindAssemblyInstEmulation::Initialize();
UnwindAssembly_x86::Initialize();
+
+ EmulateInstructionARM::Initialize();
EmulateInstructionARM64::Initialize();
+ EmulateInstructionMIPS::Initialize();
+ EmulateInstructionMIPS64::Initialize();
EmulateInstructionPPC64::Initialize();
+
SymbolFileDWARFDebugMap::Initialize();
ItaniumABILanguageRuntime::Initialize();
AppleObjCRuntimeV2::Initialize();
@@ -309,8 +317,13 @@
SymbolFileSymtab::Terminate();
UnwindAssembly_x86::Terminate();
UnwindAssemblyInstEmulation::Terminate();
+
+ EmulateInstructionARM::Terminate();
EmulateInstructionARM64::Terminate();
+ EmulateInstructionMIPS::Terminate();
+ EmulateInstructionMIPS64::Terminate();
EmulateInstructionPPC64::Terminate();
+
SymbolFileDWARFDebugMap::Terminate();
ItaniumABILanguageRuntime::Terminate();
AppleObjCRuntimeV2::Terminate();
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits