projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
va_start, va_end, va_copy: InstrinsicInst subclasses and InstVisitor support.
[oota-llvm.git]
/
include
/
llvm
/
Support
/
Timer.h
diff --git
a/include/llvm/Support/Timer.h
b/include/llvm/Support/Timer.h
index 2997a8744cc05945abe162eb9bd3b28a02140c36..a7418827ca3239cfe2564188c090b1bb3637c84e 100644
(file)
--- a/
include/llvm/Support/Timer.h
+++ b/
include/llvm/Support/Timer.h
@@
-15,7
+15,9
@@
#ifndef LLVM_SUPPORT_TIMER_H
#define LLVM_SUPPORT_TIMER_H
#ifndef LLVM_SUPPORT_TIMER_H
#define LLVM_SUPPORT_TIMER_H
-#include "llvm/System/DataTypes.h"
+#include "llvm/Support/Compiler.h"
+#include "llvm/Support/DataTypes.h"
+#include "llvm/ADT/StringRef.h"
#include <cassert>
#include <string>
#include <vector>
#include <cassert>
#include <string>
#include <vector>
@@
-88,8
+90,8
@@
class Timer {
Timer **Prev, *Next; // Doubly linked list of timers in the group.
public:
Timer **Prev, *Next; // Doubly linked list of timers in the group.
public:
- explicit Timer(
const std::string &
N) : TG(0) { init(N); }
- Timer(
const std::string &
N, TimerGroup &tg) : TG(0) { init(N, tg); }
+ explicit Timer(
StringRef
N) : TG(0) { init(N); }
+ Timer(
StringRef
N, TimerGroup &tg) : TG(0) { init(N, tg); }
Timer(const Timer &RHS) : TG(0) {
assert(RHS.TG == 0 && "Can only copy uninitialized timers");
}
Timer(const Timer &RHS) : TG(0) {
assert(RHS.TG == 0 && "Can only copy uninitialized timers");
}
@@
-101,8
+103,8
@@
public:
// Create an uninitialized timer, client must use 'init'.
explicit Timer() : TG(0) {}
// Create an uninitialized timer, client must use 'init'.
explicit Timer() : TG(0) {}
- void init(
const std::string &
N);
- void init(
const std::string &
N, TimerGroup &tg);
+ void init(
StringRef
N);
+ void init(
StringRef
N, TimerGroup &tg);
const std::string &getName() const { return Name; }
bool isInitialized() const { return TG != 0; }
const std::string &getName() const { return Name; }
bool isInitialized() const { return TG != 0; }
@@
-129,7
+131,7
@@
private:
///
class TimeRegion {
Timer *T;
///
class TimeRegion {
Timer *T;
- TimeRegion(const TimeRegion &)
; // DO NOT IMPLEMENT
+ TimeRegion(const TimeRegion &)
LLVM_DELETED_FUNCTION;
public:
explicit TimeRegion(Timer &t) : T(&t) {
T->startTimer();
public:
explicit TimeRegion(Timer &t) : T(&t) {
T->startTimer();
@@
-149,9
+151,10
@@
public:
/// is primarily used for debugging and for hunting performance problems.
///
struct NamedRegionTimer : public TimeRegion {
/// is primarily used for debugging and for hunting performance problems.
///
struct NamedRegionTimer : public TimeRegion {
- explicit NamedRegionTimer(const std::string &Name);
- explicit NamedRegionTimer(const std::string &Name,
- const std::string &GroupName);
+ explicit NamedRegionTimer(StringRef Name,
+ bool Enabled = true);
+ explicit NamedRegionTimer(StringRef Name, StringRef GroupName,
+ bool Enabled = true);
};
};
@@
-164,30
+167,27
@@
class TimerGroup {
std::string Name;
Timer *FirstTimer; // First timer in the group.
std::vector<std::pair<TimeRecord, std::string> > TimersToPrint;
std::string Name;
Timer *FirstTimer; // First timer in the group.
std::vector<std::pair<TimeRecord, std::string> > TimersToPrint;
+
+ TimerGroup **Prev, *Next; // Doubly linked list of TimerGroup's.
+ TimerGroup(const TimerGroup &TG) LLVM_DELETED_FUNCTION;
+ void operator=(const TimerGroup &TG) LLVM_DELETED_FUNCTION;
public:
public:
- explicit TimerGroup(const std::string &name) : Name(name), FirstTimer(0) {}
- explicit TimerGroup() : FirstTimer(0) {}
-
- explicit TimerGroup(const TimerGroup &TG) : FirstTimer(0) {
- operator=(TG);
- }
+ explicit TimerGroup(StringRef name);
~TimerGroup();
~TimerGroup();
- void operator=(const TimerGroup &TG) {
- assert(TG.FirstTimer == 0 && FirstTimer == 0 &&
- "Cannot assign group with timers");
- Name = TG.Name;
- }
+ void setName(StringRef name) { Name.assign(name.begin(), name.end()); }
+ /// print - Print any started timers in this group and zero them.
+ void print(raw_ostream &OS);
- void setName(const std::string &name) { Name = name; }
-
- void PrintQueuedTimers(raw_ostream &OS);
+ /// printAll - This static method prints all timers and clears them all out.
+ static void printAll(raw_ostream &OS);
private:
friend class Timer;
void addTimer(Timer &T);
void removeTimer(Timer &T);
private:
friend class Timer;
void addTimer(Timer &T);
void removeTimer(Timer &T);
+ void PrintQueuedTimers(raw_ostream &OS);
};
} // End llvm namespace
};
} // End llvm namespace