diff options
author | Florian Hahn <flo@fhahn.com> | 2021-06-12 12:03:59 +0100 |
---|---|---|
committer | Florian Hahn <flo@fhahn.com> | 2021-06-12 12:08:25 +0100 |
commit | b4583a5ad73b633c3eac5ffbad93f2405e1418ab (patch) | |
tree | 0b1da95ad33d68dc276781fc95443bd0681a0adc /llvm/lib/Support/Signposts.cpp | |
parent | 8e62797963875e0cf93fcabda9e18bc0eff5da11 (diff) | |
download | llvm-b4583a5ad73b633c3eac5ffbad93f2405e1418ab.zip llvm-b4583a5ad73b633c3eac5ffbad93f2405e1418ab.tar.gz llvm-b4583a5ad73b633c3eac5ffbad93f2405e1418ab.tar.bz2 |
Revert "Allow signposts to take advantage of deferred string substitution"
This reverts commit 4fc93a3a1f95ef5a0a57750fc621f2411ea445a8 because it
breaks LLDB builds on certain macOS platform & SDK combinations, e.g.
http://green.lab.llvm.org/green/job/lldb-cmake-standalone/3288/consoleFull#-195476041949ba4694-19c4-4d7e-bec5-911270d8a58c
Diffstat (limited to 'llvm/lib/Support/Signposts.cpp')
-rw-r--r-- | llvm/lib/Support/Signposts.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/llvm/lib/Support/Signposts.cpp b/llvm/lib/Support/Signposts.cpp index efa283c..7bf7b46 100644 --- a/llvm/lib/Support/Signposts.cpp +++ b/llvm/lib/Support/Signposts.cpp @@ -10,14 +10,19 @@ #include "llvm/Support/Signposts.h" #include "llvm/Support/Timer.h" +#include "llvm/Config/config.h" #if LLVM_SUPPORT_XCODE_SIGNPOSTS #include "llvm/ADT/DenseMap.h" #include "llvm/Support/Mutex.h" +#include <Availability.h> +#include <os/signpost.h> #endif // if LLVM_SUPPORT_XCODE_SIGNPOSTS using namespace llvm; #if LLVM_SUPPORT_XCODE_SIGNPOSTS +#define SIGNPOSTS_AVAILABLE() \ + __builtin_available(macos 10.14, iOS 12, tvOS 12, watchOS 5, *) namespace { os_log_t *LogCreator() { os_log_t *X = new os_log_t; @@ -35,13 +40,13 @@ struct LogDeleter { namespace llvm { class SignpostEmitterImpl { using LogPtrTy = std::unique_ptr<os_log_t, LogDeleter>; + using LogTy = LogPtrTy::element_type; LogPtrTy SignpostLog; DenseMap<const void *, os_signpost_id_t> Signposts; sys::SmartMutex<true> Mutex; -public: - os_log_t &getLogger() const { return *SignpostLog; } + LogTy &getLogger() const { return *SignpostLog; } os_signpost_id_t getSignpostForObject(const void *O) { sys::SmartScopedLock<true> Lock(Mutex); const auto &I = Signposts.find(O); @@ -55,6 +60,7 @@ public: return Inserted.first->second; } +public: SignpostEmitterImpl() : SignpostLog(LogCreator()) {} bool isEnabled() const { @@ -73,7 +79,7 @@ public: } } - void endInterval(const void *O) { + void endInterval(const void *O, llvm::StringRef Name) { if (isEnabled()) { if (SIGNPOSTS_AVAILABLE()) { // Both strings used here are required to be constant literal strings. @@ -119,17 +125,10 @@ void SignpostEmitter::startInterval(const void *O, StringRef Name) { #endif // if !HAVE_ANY_SIGNPOST_IMPL } -#if HAVE_ANY_SIGNPOST_IMPL -os_log_t &SignpostEmitter::getLogger() const { return Impl->getLogger(); } -os_signpost_id_t SignpostEmitter::getSignpostForObject(const void *O) { - return Impl->getSignpostForObject(O); -} -#endif - -void SignpostEmitter::endInterval(const void *O) { +void SignpostEmitter::endInterval(const void *O, StringRef Name) { #if HAVE_ANY_SIGNPOST_IMPL if (Impl == nullptr) return; - Impl->endInterval(O); + Impl->endInterval(O, Name); #endif // if !HAVE_ANY_SIGNPOST_IMPL } |