[llvm-branch-commits] [NFC][TSan] Use ScopedReport::AddThread(Tid) in ReportRace (PR #228813)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sat Oct 3 20:15:30 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: Vitaly Buka (vitalybuka)
<details>
<summary>Changes</summary>
Inline FindThreadByTidLocked into ScopedReport::AddThread(Tid) and
enable it on Go so ReportRace can call rep.AddThread(tid) directly
instead of manually looking up ThreadContext via GetThreadLocked.
Assisted-by: Gemini
---
Full diff: https://github.com/llvm/llvm-project/pull/228813.diff
1 Files Affected:
- (modified) compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp (+5-17)
``````````diff
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
index 5644456bb2864..50448cfd1233b 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
@@ -285,12 +285,6 @@ void ScopedReport::AddThread(const ThreadContext* tctx, bool suppressable) {
}
#if !SANITIZER_GO
-static ThreadContext *FindThreadByTidLocked(Tid tid) {
- ctx->thread_registry.CheckLocked();
- return static_cast<ThreadContext *>(
- ctx->thread_registry.GetThreadLocked(tid));
-}
-
static bool IsInStackOrTls(ThreadContextBase *tctx_base, void *arg) {
uptr addr = (uptr)arg;
ThreadContext *tctx = static_cast<ThreadContext*>(tctx_base);
@@ -317,10 +311,10 @@ ThreadContext *IsThreadStackOrTls(uptr addr, bool *is_stack) {
#endif
void ScopedReport::AddThread(Tid tid, bool suppressable) {
-#if !SANITIZER_GO
- if (const ThreadContext *tctx = FindThreadByTidLocked(tid))
+ ctx->thread_registry.CheckLocked();
+ if (const auto* tctx = static_cast<ThreadContext*>(
+ ctx->thread_registry.GetThreadLocked(tid)))
AddThread(tctx, suppressable);
-#endif
}
int ScopedReport::AddMutex(uptr addr, StackID creation_stack_id) {
@@ -856,11 +850,7 @@ void ReportRace(ThreadState *thr, RawShadow *shadow_mem, Shadow cur, Shadow old,
for (uptr i = 0; i < kMop; i++)
rep.AddMemoryAccess(addr, tags[i], s[i], tids[i], traces[i], mset[i]);
- for (uptr i = 0; i < kMop; i++) {
- ThreadContext *tctx = static_cast<ThreadContext *>(
- ctx->thread_registry.GetThreadLocked(tids[i]));
- rep.AddThread(tctx);
- }
+ for (uptr i = 0; i < kMop; i++) rep.AddThread(tids[i]);
rep.AddLocation(addr_min, addr_max - addr_min);
@@ -870,9 +860,7 @@ void ReportRace(ThreadState *thr, RawShadow *shadow_mem, Shadow cur, Shadow old,
Tid parent_tid = rep_desc->threads[i]->parent_tid;
if (parent_tid == kMainTid || parent_tid == kInvalidTid)
continue;
- ThreadContext *parent_tctx = static_cast<ThreadContext *>(
- ctx->thread_registry.GetThreadLocked(parent_tid));
- rep.AddThread(parent_tctx);
+ rep.AddThread(parent_tid);
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/228813
More information about the llvm-branch-commits
mailing list