[PATCH] D52639: [XRay] Guard local variables with `static` and struct with unnamed namespaces
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 27 19:07:25 PDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rL343289: [XRay] Guard local variables with `static` and struct with unnamed namespaces (authored by MaskRay, committed by ).
Repository:
rL LLVM
https://reviews.llvm.org/D52639
Files:
compiler-rt/trunk/lib/xray/xray_basic_logging.cc
compiler-rt/trunk/lib/xray/xray_fdr_logging.cc
Index: compiler-rt/trunk/lib/xray/xray_basic_logging.cc
===================================================================
--- compiler-rt/trunk/lib/xray/xray_basic_logging.cc
+++ compiler-rt/trunk/lib/xray/xray_basic_logging.cc
@@ -38,8 +38,9 @@
namespace __xray {
-SpinMutex LogMutex;
+static SpinMutex LogMutex;
+namespace {
// We use elements of this type to record the entry TSC of every function ID we
// see as we're tracing a particular thread's execution.
struct alignas(16) StackEntry {
@@ -62,15 +63,16 @@
int Fd = -1;
};
-static pthread_key_t PThreadKey;
-
-static atomic_uint8_t BasicInitialized{0};
-
struct BasicLoggingOptions {
int DurationFilterMicros = 0;
size_t MaxStackDepth = 0;
size_t ThreadBufferSize = 0;
};
+} // namespace
+
+static pthread_key_t PThreadKey;
+
+static atomic_uint8_t BasicInitialized{0};
struct BasicLoggingOptions GlobalOptions;
Index: compiler-rt/trunk/lib/xray/xray_fdr_logging.cc
===================================================================
--- compiler-rt/trunk/lib/xray/xray_fdr_logging.cc
+++ compiler-rt/trunk/lib/xray/xray_fdr_logging.cc
@@ -42,8 +42,10 @@
namespace __xray {
-atomic_sint32_t LoggingStatus = {XRayLogInitStatus::XRAY_LOG_UNINITIALIZED};
+static atomic_sint32_t LoggingStatus = {
+ XRayLogInitStatus::XRAY_LOG_UNINITIALIZED};
+namespace {
// Group together thread-local-data in a struct, then hide it behind a function
// call so that it can be initialized on first use instead of as a global. We
// force the alignment to 64-bytes for x86 cache line alignment, as this
@@ -72,6 +74,7 @@
// FDRLogging, and that we're going to clean it up when the thread exits.
BufferQueue *BQ = nullptr;
};
+} // namespace
static_assert(std::is_trivially_destructible<ThreadLocalData>::value,
"ThreadLocalData must be trivially destructible");
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D52639.167424.patch
Type: text/x-patch
Size: 1874 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180928/fb1f6a15/attachment-0001.bin>
More information about the llvm-commits
mailing list