From f5b6dcd3929fe04c81aca1d69f69bbc530de148f Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Mon, 12 Nov 2012 22:22:20 +0000 Subject: [PATCH] Add an option to enable prototype "fission" capabilities and debug changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167765 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 14 ++++++++++++++ lib/CodeGen/AsmPrinter/DwarfDebug.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 367b5230792..742a779b6fe 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -78,6 +78,15 @@ static cl::opt DarwinGDBCompat("darwin-gdb-compat", cl::Hidden, clEnumValEnd), cl::init(Default)); +static cl::opt DwarfFission("dwarf-fission", cl::Hidden, + cl::desc("Output prototype dwarf fission."), + cl::values( + clEnumVal(Default, "Default for platform"), + clEnumVal(Enable, "Enabled"), + clEnumVal(Disable, "Disabled"), + clEnumValEnd), + cl::init(Default)); + namespace { const char *DWARFGroupName = "DWARF Emission"; const char *DbgTimerName = "DWARF Debug Writer"; @@ -174,6 +183,11 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M) } else hasDwarfAccelTables = DwarfAccelTables == Enable ? true : false; + if (DwarfFission == Default) + hasDwarfFission = false; + else + hasDwarfFission = DwarfFission == Enable ? true : false; + { NamedRegionTimer T(DbgTimerName, DWARFGroupName, TimePassesIsEnabled); beginModule(M); diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h index 61d9a51a527..1188ffa73ca 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -319,6 +319,7 @@ class DwarfDebug { // A holder for the DarwinGDBCompat flag so that the compile unit can use it. bool isDarwinGDBCompat; bool hasDwarfAccelTables; + bool hasDwarfFission; private: /// assignAbbrevNumber - Define a unique number for the abbreviation. @@ -537,6 +538,7 @@ public: /// output to the limitations of darwin gdb. bool useDarwinGDBCompat() { return isDarwinGDBCompat; } bool useDwarfAccelTables() { return hasDwarfAccelTables; } + bool useDwarfFission() { return hasDwarfFission; } }; } // End of namespace llvm -- 2.34.1