From: Chris Lattner Date: Sun, 10 Dec 2006 07:40:46 +0000 (+0000) Subject: fix PR1039 by making timing info be destroyed by llvm_shutdown, not by X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=87f28e87d76dab198d1ef886075a95e207098ca7;p=oota-llvm.git fix PR1039 by making timing info be destroyed by llvm_shutdown, not by static dtors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32411 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/Pass.cpp b/lib/VMCore/Pass.cpp index c7a80c5556d..9283d4071db 100644 --- a/lib/VMCore/Pass.cpp +++ b/lib/VMCore/Pass.cpp @@ -99,8 +99,8 @@ void TimingInfo::createTheTimeInfo() { // Constructed the first time this is called, iff -time-passes is enabled. // This guarantees that the object will be constructed before static globals, // thus it will be destroyed before them. - static TimingInfo TTI; - TheTimeInfo = &TTI; + static ManagedStatic TTI; + TheTimeInfo = &*TTI; } void PMDebug::PrintArgumentInformation(const Pass *P) { diff --git a/lib/VMCore/PassManagerT.h b/lib/VMCore/PassManagerT.h index 9753596985b..62a340beb86 100644 --- a/lib/VMCore/PassManagerT.h +++ b/lib/VMCore/PassManagerT.h @@ -90,9 +90,10 @@ class TimingInfo { std::map TimingData; TimerGroup TG; - // Private ctor, must use 'create' member - TimingInfo() : TG("... Pass execution timing report ...") {} public: + // Use 'create' member to get this. + TimingInfo() : TG("... Pass execution timing report ...") {} + // TimingDtor - Print out information about timing information ~TimingInfo() { // Delete all of the timers...