mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
Implement the NamedRegionTimer class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8889 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
aacd3c8d86
commit
d5a310e4b3
@ -16,6 +16,7 @@
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
#include <fstream>
|
||||
#include <map>
|
||||
|
||||
// getLibSupportInfoOutputFilename - This ugly hack is brought to you courtesy
|
||||
// of constructor/destructor ordering being unspecified by C++. Basically the
|
||||
@ -178,6 +179,23 @@ void Timer::addPeakMemoryMeasurement() {
|
||||
(*I)->PeakMem = std::max((*I)->PeakMem, MemUsed-(*I)->PeakMemBase);
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// NamedRegionTimer Implementation
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
static Timer &getNamedRegionTimer(const std::string &Name) {
|
||||
static std::map<std::string, Timer> NamedTimers;
|
||||
|
||||
std::map<std::string, Timer>::iterator I = NamedTimers.lower_bound(Name);
|
||||
if (I != NamedTimers.end() && I->first == Name)
|
||||
return I->second;
|
||||
|
||||
return NamedTimers.insert(I, std::make_pair(Name, Timer(Name)))->second;
|
||||
}
|
||||
|
||||
NamedRegionTimer::NamedRegionTimer(const std::string &Name)
|
||||
: TimeRegion(getNamedRegionTimer(Name)) {}
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// TimerGroup Implementation
|
||||
|
Loading…
Reference in New Issue
Block a user