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
This commit is contained in:
Chris Lattner 2006-12-10 07:40:46 +00:00
parent 4413672aa5
commit 87f28e87d7
2 changed files with 5 additions and 4 deletions

View File

@ -99,8 +99,8 @@ void TimingInfo::createTheTimeInfo() {
// Constructed the first time this is called, iff -time-passes is enabled. // Constructed the first time this is called, iff -time-passes is enabled.
// This guarantees that the object will be constructed before static globals, // This guarantees that the object will be constructed before static globals,
// thus it will be destroyed before them. // thus it will be destroyed before them.
static TimingInfo TTI; static ManagedStatic<TimingInfo> TTI;
TheTimeInfo = &TTI; TheTimeInfo = &*TTI;
} }
void PMDebug::PrintArgumentInformation(const Pass *P) { void PMDebug::PrintArgumentInformation(const Pass *P) {

View File

@ -90,9 +90,10 @@ class TimingInfo {
std::map<Pass*, Timer> TimingData; std::map<Pass*, Timer> TimingData;
TimerGroup TG; TimerGroup TG;
// Private ctor, must use 'create' member
TimingInfo() : TG("... Pass execution timing report ...") {}
public: public:
// Use 'create' member to get this.
TimingInfo() : TG("... Pass execution timing report ...") {}
// TimingDtor - Print out information about timing information // TimingDtor - Print out information about timing information
~TimingInfo() { ~TimingInfo() {
// Delete all of the timers... // Delete all of the timers...