diff options
Diffstat (limited to 'llvm/lib/Support/Timer.cpp')
-rw-r--r-- | llvm/lib/Support/Timer.cpp | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/llvm/lib/Support/Timer.cpp b/llvm/lib/Support/Timer.cpp index eca7268..4d3b4f7 100644 --- a/llvm/lib/Support/Timer.cpp +++ b/llvm/lib/Support/Timer.cpp @@ -222,16 +222,27 @@ public: StringRef GroupDescription) { sys::SmartScopedLock<true> L(timerLock()); - std::pair<TimerGroup*, Name2TimerMap> &GroupEntry = Map[GroupName]; - - if (!GroupEntry.first) - GroupEntry.first = new TimerGroup(GroupName, GroupDescription); - + std::pair<TimerGroup *, Name2TimerMap> &GroupEntry = + getGroupEntry(GroupName, GroupDescription); Timer &T = GroupEntry.second[Name]; if (!T.isInitialized()) T.init(Name, Description, *GroupEntry.first); return T; } + + TimerGroup &getTimerGroup(StringRef GroupName, StringRef GroupDescription) { + return *getGroupEntry(GroupName, GroupDescription).first; + } + +private: + std::pair<TimerGroup *, Name2TimerMap> & + getGroupEntry(StringRef GroupName, StringRef GroupDescription) { + std::pair<TimerGroup *, Name2TimerMap> &GroupEntry = Map[GroupName]; + if (!GroupEntry.first) + GroupEntry.first = new TimerGroup(GroupName, GroupDescription); + + return GroupEntry; + } }; } @@ -244,6 +255,11 @@ NamedRegionTimer::NamedRegionTimer(StringRef Name, StringRef Description, : &namedGroupedTimers().get(Name, Description, GroupName, GroupDescription)) {} +TimerGroup &NamedRegionTimer::getNamedTimerGroup(StringRef GroupName, + StringRef GroupDescription) { + return namedGroupedTimers().getTimerGroup(GroupName, GroupDescription); +} + //===----------------------------------------------------------------------===// // TimerGroup Implementation //===----------------------------------------------------------------------===// |