Just make the Dwarf timer group static inside of the getter function. No need to...
authorBill Wendling <isanbard@gmail.com>
Tue, 10 Mar 2009 22:58:53 +0000 (22:58 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 10 Mar 2009 22:58:53 +0000 (22:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66591 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfWriter.cpp

index 88c0714bfa645651d39e70159f8c2a6e10c0a04a..e9fb32c441c29033b2c3216b4cb7659bb3f59575 100644 (file)
@@ -48,10 +48,9 @@ static RegisterPass<DwarfWriter>
 X("dwarfwriter", "DWARF Information Writer");
 char DwarfWriter::ID = 0;
 
-static TimerGroup *DwarfTimerGroup = 0;
-static TimerGroup *getDwarfTimerGroup() {
-  if (DwarfTimerGroup) return DwarfTimerGroup;
-  return DwarfTimerGroup = new TimerGroup("Dwarf Exception and Debugging");
+static TimerGroup &getDwarfTimerGroup() {
+  static TimerGroup DwarfTimerGroup("Dwarf Exception and Debugging");
+  return DwarfTimerGroup;
 }
 
 namespace llvm {
@@ -3022,7 +3021,7 @@ public:
       RootDbgScope(0), DebugTimer(0) {
     if (TimePassesIsEnabled)
       DebugTimer = new Timer("Dwarf Debug Writer",
-                             *getDwarfTimerGroup());
+                             getDwarfTimerGroup());
   }
   virtual ~DwarfDebug() {
     for (unsigned j = 0, M = Values.size(); j < M; ++j)
@@ -4068,7 +4067,7 @@ public:
     ExceptionTimer(0) {
     if (TimePassesIsEnabled) 
       ExceptionTimer = new Timer("Dwarf Exception Writer",
-                                 *getDwarfTimerGroup());
+                                 getDwarfTimerGroup());
   }
 
   virtual ~DwarfException() {
@@ -4491,7 +4490,6 @@ DwarfWriter::DwarfWriter()
 DwarfWriter::~DwarfWriter() {
   delete DE;
   delete DD;
-  delete DwarfTimerGroup; DwarfTimerGroup = 0;
 }
 
 /// BeginModule - Emit all Dwarf sections that should come prior to the