Daily bump.
[official-gcc.git] / libsanitizer / tsan / tsan_stat.h
blob5bdd9de82132ca12ea5cb033def07c781a7a217a
1 //===-- tsan_stat.h ---------------------------------------------*- C++ -*-===//
2 //
3 // This file is distributed under the University of Illinois Open Source
4 // License. See LICENSE.TXT for details.
5 //
6 //===----------------------------------------------------------------------===//
7 //
8 // This file is a part of ThreadSanitizer (TSan), a race detector.
9 //
10 //===----------------------------------------------------------------------===//
12 #ifndef TSAN_STAT_H
13 #define TSAN_STAT_H
15 namespace __tsan {
17 enum StatType {
18 // Memory access processing related stuff.
19 StatMop,
20 StatMopRead,
21 StatMopWrite,
22 StatMop1, // These must be consequtive.
23 StatMop2,
24 StatMop4,
25 StatMop8,
26 StatMopSame,
27 StatMopRange,
28 StatMopRodata,
29 StatMopRangeRodata,
30 StatShadowProcessed,
31 StatShadowZero,
32 StatShadowNonZero, // Derived.
33 StatShadowSameSize,
34 StatShadowIntersect,
35 StatShadowNotIntersect,
36 StatShadowSameThread,
37 StatShadowAnotherThread,
38 StatShadowReplace,
40 // Func processing.
41 StatFuncEnter,
42 StatFuncExit,
44 // Trace processing.
45 StatEvents,
47 // Threads.
48 StatThreadCreate,
49 StatThreadFinish,
50 StatThreadReuse,
51 StatThreadMaxTid,
52 StatThreadMaxAlive,
54 // Mutexes.
55 StatMutexCreate,
56 StatMutexDestroy,
57 StatMutexLock,
58 StatMutexUnlock,
59 StatMutexRecLock,
60 StatMutexRecUnlock,
61 StatMutexReadLock,
62 StatMutexReadUnlock,
64 // Synchronization.
65 StatSyncCreated,
66 StatSyncDestroyed,
67 StatSyncAcquire,
68 StatSyncRelease,
70 // Clocks - acquire.
71 StatClockAcquire,
72 StatClockAcquireEmpty,
73 StatClockAcquireFastRelease,
74 StatClockAcquireLarge,
75 StatClockAcquireRepeat,
76 StatClockAcquireFull,
77 StatClockAcquiredSomething,
78 // Clocks - release.
79 StatClockRelease,
80 StatClockReleaseResize,
81 StatClockReleaseFast1,
82 StatClockReleaseFast2,
83 StatClockReleaseSlow,
84 StatClockReleaseFull,
85 StatClockReleaseAcquired,
86 StatClockReleaseClearTail,
87 // Clocks - release store.
88 StatClockStore,
89 StatClockStoreResize,
90 StatClockStoreFast,
91 StatClockStoreFull,
92 StatClockStoreTail,
93 // Clocks - acquire-release.
94 StatClockAcquireRelease,
96 // Atomics.
97 StatAtomic,
98 StatAtomicLoad,
99 StatAtomicStore,
100 StatAtomicExchange,
101 StatAtomicFetchAdd,
102 StatAtomicFetchSub,
103 StatAtomicFetchAnd,
104 StatAtomicFetchOr,
105 StatAtomicFetchXor,
106 StatAtomicFetchNand,
107 StatAtomicCAS,
108 StatAtomicFence,
109 StatAtomicRelaxed,
110 StatAtomicConsume,
111 StatAtomicAcquire,
112 StatAtomicRelease,
113 StatAtomicAcq_Rel,
114 StatAtomicSeq_Cst,
115 StatAtomic1,
116 StatAtomic2,
117 StatAtomic4,
118 StatAtomic8,
119 StatAtomic16,
121 // Dynamic annotations.
122 StatAnnotation,
123 StatAnnotateHappensBefore,
124 StatAnnotateHappensAfter,
125 StatAnnotateCondVarSignal,
126 StatAnnotateCondVarSignalAll,
127 StatAnnotateMutexIsNotPHB,
128 StatAnnotateCondVarWait,
129 StatAnnotateRWLockCreate,
130 StatAnnotateRWLockCreateStatic,
131 StatAnnotateRWLockDestroy,
132 StatAnnotateRWLockAcquired,
133 StatAnnotateRWLockReleased,
134 StatAnnotateTraceMemory,
135 StatAnnotateFlushState,
136 StatAnnotateNewMemory,
137 StatAnnotateNoOp,
138 StatAnnotateFlushExpectedRaces,
139 StatAnnotateEnableRaceDetection,
140 StatAnnotateMutexIsUsedAsCondVar,
141 StatAnnotatePCQGet,
142 StatAnnotatePCQPut,
143 StatAnnotatePCQDestroy,
144 StatAnnotatePCQCreate,
145 StatAnnotateExpectRace,
146 StatAnnotateBenignRaceSized,
147 StatAnnotateBenignRace,
148 StatAnnotateIgnoreReadsBegin,
149 StatAnnotateIgnoreReadsEnd,
150 StatAnnotateIgnoreWritesBegin,
151 StatAnnotateIgnoreWritesEnd,
152 StatAnnotateIgnoreSyncBegin,
153 StatAnnotateIgnoreSyncEnd,
154 StatAnnotatePublishMemoryRange,
155 StatAnnotateUnpublishMemoryRange,
156 StatAnnotateThreadName,
158 // Internal mutex contentionz.
159 StatMtxTotal,
160 StatMtxTrace,
161 StatMtxThreads,
162 StatMtxReport,
163 StatMtxSyncVar,
164 StatMtxSyncTab,
165 StatMtxSlab,
166 StatMtxAnnotations,
167 StatMtxAtExit,
168 StatMtxMBlock,
169 StatMtxJavaMBlock,
170 StatMtxDeadlockDetector,
171 StatMtxFD,
173 // This must be the last.
174 StatCnt
177 } // namespace __tsan
179 #endif // TSAN_STAT_H