Skip to content

Commit 8e1d9f2

Browse files
authored
[ctxprof][nfc] Move 2 implementation functions up in CtxInstrProfiling.cpp (llvm#133146)
1 parent ba2de8f commit 8e1d9f2

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

compiler-rt/lib/ctx_profile/CtxInstrProfiling.cpp

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,39 @@ ContextNode *getFlatProfile(FunctionData &Data, GUID Guid,
244244
return Data.FlatCtx;
245245
}
246246

247+
// This should be called once for a Root. Allocate the first arena, set up the
248+
// first context.
249+
void setupContext(ContextRoot *Root, GUID Guid, uint32_t NumCounters,
250+
uint32_t NumCallsites) {
251+
__sanitizer::GenericScopedLock<__sanitizer::SpinMutex> Lock(
252+
&AllContextsMutex);
253+
// Re-check - we got here without having had taken a lock.
254+
if (Root->FirstMemBlock)
255+
return;
256+
const auto Needed = ContextNode::getAllocSize(NumCounters, NumCallsites);
257+
auto *M = Arena::allocateNewArena(getArenaAllocSize(Needed));
258+
Root->FirstMemBlock = M;
259+
Root->CurrentMem = M;
260+
Root->FirstNode = allocContextNode(M->tryBumpAllocate(Needed), Guid,
261+
NumCounters, NumCallsites);
262+
AllContextRoots.PushBack(Root);
263+
}
264+
265+
ContextRoot *FunctionData::getOrAllocateContextRoot() {
266+
auto *Root = CtxRoot;
267+
if (Root)
268+
return Root;
269+
__sanitizer::GenericScopedLock<__sanitizer::StaticSpinMutex> L(&Mutex);
270+
Root = CtxRoot;
271+
if (!Root) {
272+
Root = new (__sanitizer::InternalAlloc(sizeof(ContextRoot))) ContextRoot();
273+
CtxRoot = Root;
274+
}
275+
276+
assert(Root);
277+
return Root;
278+
}
279+
247280
ContextNode *getUnhandledContext(FunctionData &Data, GUID Guid,
248281
uint32_t NumCounters) {
249282

@@ -333,39 +366,6 @@ ContextNode *__llvm_ctx_profile_get_context(FunctionData *Data, void *Callee,
333366
return Ret;
334367
}
335368

336-
// This should be called once for a Root. Allocate the first arena, set up the
337-
// first context.
338-
void setupContext(ContextRoot *Root, GUID Guid, uint32_t NumCounters,
339-
uint32_t NumCallsites) {
340-
__sanitizer::GenericScopedLock<__sanitizer::SpinMutex> Lock(
341-
&AllContextsMutex);
342-
// Re-check - we got here without having had taken a lock.
343-
if (Root->FirstMemBlock)
344-
return;
345-
const auto Needed = ContextNode::getAllocSize(NumCounters, NumCallsites);
346-
auto *M = Arena::allocateNewArena(getArenaAllocSize(Needed));
347-
Root->FirstMemBlock = M;
348-
Root->CurrentMem = M;
349-
Root->FirstNode = allocContextNode(M->tryBumpAllocate(Needed), Guid,
350-
NumCounters, NumCallsites);
351-
AllContextRoots.PushBack(Root);
352-
}
353-
354-
ContextRoot *FunctionData::getOrAllocateContextRoot() {
355-
auto *Root = CtxRoot;
356-
if (Root)
357-
return Root;
358-
__sanitizer::GenericScopedLock<__sanitizer::StaticSpinMutex> L(&Mutex);
359-
Root = CtxRoot;
360-
if (!Root) {
361-
Root = new (__sanitizer::InternalAlloc(sizeof(ContextRoot))) ContextRoot();
362-
CtxRoot = Root;
363-
}
364-
365-
assert(Root);
366-
return Root;
367-
}
368-
369369
ContextNode *__llvm_ctx_profile_start_context(
370370
FunctionData *FData, GUID Guid, uint32_t Counters,
371371
uint32_t Callsites) SANITIZER_NO_THREAD_SAFETY_ANALYSIS {

0 commit comments

Comments
 (0)