[Lldb-commits] [PATCH] D34746: Move Timer and TraceOptions from Core to Utility
This revision was automatically updated to reflect the committed changes. Closed by commit rL306682: Move Timer and TraceOptions from Core to Utility (authored by labath). Changed prior to commit: https://reviews.llvm.org/D34746?vs=104624&id=104647#toc Repository: rL LLVM https://reviews.llvm.org/D34746 Files: lldb/trunk/include/lldb/Core/Timer.h lldb/trunk/include/lldb/Core/TraceOptions.h lldb/trunk/include/lldb/Host/common/NativeProcessProtocol.h lldb/trunk/include/lldb/Target/Process.h lldb/trunk/include/lldb/Utility/Timer.h lldb/trunk/include/lldb/Utility/TraceOptions.h lldb/trunk/source/API/SBTraceOptions.cpp lldb/trunk/source/API/SystemInitializerFull.cpp lldb/trunk/source/Commands/CommandObjectFrame.cpp lldb/trunk/source/Commands/CommandObjectLog.cpp lldb/trunk/source/Commands/CommandObjectTarget.cpp lldb/trunk/source/Core/CMakeLists.txt lldb/trunk/source/Core/Disassembler.cpp lldb/trunk/source/Core/Mangled.cpp lldb/trunk/source/Core/Module.cpp lldb/trunk/source/Core/Timer.cpp lldb/trunk/source/Host/common/Symbols.cpp lldb/trunk/source/Host/posix/ConnectionFileDescriptorPosix.cpp lldb/trunk/source/Initialization/SystemInitializerCommon.cpp lldb/trunk/source/Interpreter/CommandInterpreter.cpp lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp lldb/trunk/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp lldb/trunk/source/Plugins/Process/Linux/ProcessorTrace.h lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp lldb/trunk/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp lldb/trunk/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp lldb/trunk/source/Symbol/DWARFCallFrameInfo.cpp lldb/trunk/source/Symbol/ObjectFile.cpp lldb/trunk/source/Symbol/Symtab.cpp lldb/trunk/source/Target/ObjCLanguageRuntime.cpp lldb/trunk/source/Target/Target.cpp lldb/trunk/source/Target/TargetList.cpp lldb/trunk/source/Utility/CMakeLists.txt lldb/trunk/source/Utility/Timer.cpp lldb/trunk/unittests/Core/CMakeLists.txt lldb/trunk/unittests/Core/TimerTest.cpp lldb/trunk/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp lldb/trunk/unittests/Utility/CMakeLists.txt lldb/trunk/unittests/Utility/TimerTest.cpp Index: lldb/trunk/include/lldb/Utility/Timer.h === --- lldb/trunk/include/lldb/Utility/Timer.h +++ lldb/trunk/include/lldb/Utility/Timer.h @@ -0,0 +1,79 @@ +//===-- Timer.h -*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===--===// + +#ifndef liblldb_Timer_h_ +#define liblldb_Timer_h_ + +#include "lldb/lldb-defines.h" // for DISALLOW_COPY_AND_ASSIGN +#include "llvm/Support/Chrono.h" +#include +#include // for uint32_t + +namespace lldb_private { +class Stream; + +//-- +/// @class Timer Timer.h "lldb/Utility/Timer.h" +/// @brief A timer class that simplifies common timing metrics. +//-- + +class Timer { +public: + class Category { + public: +explicit Category(const char *category_name); + + private: +friend class Timer; +const char *m_name; +std::atomic m_nanos; +std::atomic m_next; + +DISALLOW_COPY_AND_ASSIGN(Category); + }; + + //-- + /// Default constructor. + //-- + Timer(Category &category, const char *format, ...) + __attribute__((format(printf, 3, 4))); + + //-- + /// Destructor + //-- + ~Timer(); + + void Dump(); + + static void SetDisplayDepth(uint32_t depth); + + static void SetQuiet(bool value); + + static vo
Re: [Lldb-commits] [PATCH] D34746: Move Timer and TraceOptions from Core to Utility
Cool, lgtm On Thu, Jun 29, 2017 at 5:52 AM Pavel Labath via Phabricator < revi...@reviews.llvm.org> wrote: > labath updated this revision to Diff 104624. > labath added a comment. > > That's a good idea. This time I almost smuggled in a (unused) Host include > into > Utility -- it was a leftover from the Host::ThreadLocalStorage times. I'll > make > sure to run it in the future. > > After fixing that issue, I see no differences in the output. > > > https://reviews.llvm.org/D34746 > > Files: > include/lldb/Core/Timer.h > include/lldb/Core/TraceOptions.h > include/lldb/Host/common/NativeProcessProtocol.h > include/lldb/Target/Process.h > include/lldb/Utility/Timer.h > include/lldb/Utility/TraceOptions.h > source/API/SBTraceOptions.cpp > source/API/SystemInitializerFull.cpp > source/Commands/CommandObjectFrame.cpp > source/Commands/CommandObjectLog.cpp > source/Commands/CommandObjectTarget.cpp > source/Core/CMakeLists.txt > source/Core/Disassembler.cpp > source/Core/Mangled.cpp > source/Core/Module.cpp > source/Core/Timer.cpp > source/Host/common/Symbols.cpp > source/Host/posix/ConnectionFileDescriptorPosix.cpp > source/Initialization/SystemInitializerCommon.cpp > source/Interpreter/CommandInterpreter.cpp > > source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp > source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp > source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp > source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp > source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp > source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp > source/Plugins/Platform/MacOSX/PlatformDarwin.cpp > source/Plugins/Process/Linux/ProcessorTrace.h > source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp > source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp > source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp > source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp > source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp > source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp > source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp > source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp > source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp > source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp > source/Symbol/DWARFCallFrameInfo.cpp > source/Symbol/ObjectFile.cpp > source/Symbol/Symtab.cpp > source/Target/ObjCLanguageRuntime.cpp > source/Target/Target.cpp > source/Target/TargetList.cpp > source/Utility/CMakeLists.txt > source/Utility/Timer.cpp > unittests/Core/CMakeLists.txt > unittests/Core/TimerTest.cpp > unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp > unittests/Utility/CMakeLists.txt > unittests/Utility/TimerTest.cpp > > ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D34746: Move Timer and TraceOptions from Core to Utility
labath updated this revision to Diff 104624. labath added a comment. That's a good idea. This time I almost smuggled in a (unused) Host include into Utility -- it was a leftover from the Host::ThreadLocalStorage times. I'll make sure to run it in the future. After fixing that issue, I see no differences in the output. https://reviews.llvm.org/D34746 Files: include/lldb/Core/Timer.h include/lldb/Core/TraceOptions.h include/lldb/Host/common/NativeProcessProtocol.h include/lldb/Target/Process.h include/lldb/Utility/Timer.h include/lldb/Utility/TraceOptions.h source/API/SBTraceOptions.cpp source/API/SystemInitializerFull.cpp source/Commands/CommandObjectFrame.cpp source/Commands/CommandObjectLog.cpp source/Commands/CommandObjectTarget.cpp source/Core/CMakeLists.txt source/Core/Disassembler.cpp source/Core/Mangled.cpp source/Core/Module.cpp source/Core/Timer.cpp source/Host/common/Symbols.cpp source/Host/posix/ConnectionFileDescriptorPosix.cpp source/Initialization/SystemInitializerCommon.cpp source/Interpreter/CommandInterpreter.cpp source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp source/Plugins/Platform/MacOSX/PlatformDarwin.cpp source/Plugins/Process/Linux/ProcessorTrace.h source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp source/Symbol/DWARFCallFrameInfo.cpp source/Symbol/ObjectFile.cpp source/Symbol/Symtab.cpp source/Target/ObjCLanguageRuntime.cpp source/Target/Target.cpp source/Target/TargetList.cpp source/Utility/CMakeLists.txt source/Utility/Timer.cpp unittests/Core/CMakeLists.txt unittests/Core/TimerTest.cpp unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp unittests/Utility/CMakeLists.txt unittests/Utility/TimerTest.cpp Index: unittests/Utility/TimerTest.cpp === --- unittests/Utility/TimerTest.cpp +++ unittests/Utility/TimerTest.cpp @@ -7,10 +7,9 @@ // //===--===// -#include "lldb/Core/Timer.h" -#include "gtest/gtest.h" - #include "lldb/Utility/StreamString.h" +#include "lldb/Utility/Timer.h" +#include "gtest/gtest.h" #include using namespace lldb_private; Index: unittests/Utility/CMakeLists.txt === --- unittests/Utility/CMakeLists.txt +++ unittests/Utility/CMakeLists.txt @@ -10,6 +10,7 @@ TaskPoolTest.cpp TildeExpressionResolverTest.cpp TimeoutTest.cpp + TimerTest.cpp UriParserTest.cpp VASprintfTest.cpp Index: unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp === --- unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp +++ unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp @@ -12,10 +12,10 @@ #include "Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h" #include "lldb/Core/ModuleSpec.h" -#include "lldb/Core/TraceOptions.h" #include "lldb/Target/MemoryRegionInfo.h" #include "lldb/Utility/DataBuffer.h" #include "lldb/Utility/StructuredData.h" +#include "lldb/Utility/TraceOptions.h" #include "lldb/lldb-enumerations.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/Testing/Support/Error.h" Index: unittests/Core/CMakeLists.txt === --- unittests/Core/CMakeLists.txt +++ unittests/Core/CMakeLists.txt @@ -6,7 +6,6 @@ ScalarTest.cpp StateTest.cpp StreamCallbackTest.cpp - TimerTest.cpp LINK_LIBS lldbCore Index: source/Utility/Timer.cpp === --- source/Utility/Timer.cpp +++ source/Utility/Timer.cpp @@ -6,11 +6,8 @@ // License. See LICENSE.TXT for details. // //===--===// -#include "lldb/Core/Timer.h" - -#include "lldb/Host/Host.h" +#include "lldb/Utility/Timer.h" #include "lldb/Utility/Stream.h" -#include "lldb/lldb-types.h" // for thread_key_t #include #include Index: source/Utility/CMakeLists.txt
[Lldb-commits] [PATCH] D34746: Move Timer and TraceOptions from Core to Utility
zturner added a comment. Can you do a diff before and after of the analyze-deps script output? I don't imagine it will make a difference, but I've been surprised by it before. In general you should do it before and after every patch of this nature. https://reviews.llvm.org/D34746 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D34746: Move Timer and TraceOptions from Core to Utility
labath created this revision. Herald added subscribers: mgorny, emaste. The classes have no dependencies, and they are used both by lldb and lldb-server, so it makes sense for them to live in the lowest layers. https://reviews.llvm.org/D34746 Files: include/lldb/Core/Timer.h include/lldb/Core/TraceOptions.h include/lldb/Host/common/NativeProcessProtocol.h include/lldb/Target/Process.h include/lldb/Utility/Timer.h include/lldb/Utility/TraceOptions.h source/API/SBTraceOptions.cpp source/API/SystemInitializerFull.cpp source/Commands/CommandObjectFrame.cpp source/Commands/CommandObjectLog.cpp source/Commands/CommandObjectTarget.cpp source/Core/CMakeLists.txt source/Core/Disassembler.cpp source/Core/Mangled.cpp source/Core/Module.cpp source/Core/Timer.cpp source/Host/common/Symbols.cpp source/Host/posix/ConnectionFileDescriptorPosix.cpp source/Initialization/SystemInitializerCommon.cpp source/Interpreter/CommandInterpreter.cpp source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp source/Plugins/Platform/MacOSX/PlatformDarwin.cpp source/Plugins/Process/Linux/ProcessorTrace.h source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp source/Symbol/DWARFCallFrameInfo.cpp source/Symbol/ObjectFile.cpp source/Symbol/Symtab.cpp source/Target/ObjCLanguageRuntime.cpp source/Target/Target.cpp source/Target/TargetList.cpp source/Utility/CMakeLists.txt source/Utility/Timer.cpp unittests/Core/CMakeLists.txt unittests/Core/TimerTest.cpp unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp unittests/Utility/CMakeLists.txt unittests/Utility/TimerTest.cpp Index: unittests/Utility/TimerTest.cpp === --- unittests/Utility/TimerTest.cpp +++ unittests/Utility/TimerTest.cpp @@ -7,10 +7,9 @@ // //===--===// -#include "lldb/Core/Timer.h" -#include "gtest/gtest.h" - #include "lldb/Utility/StreamString.h" +#include "lldb/Utility/Timer.h" +#include "gtest/gtest.h" #include using namespace lldb_private; Index: unittests/Utility/CMakeLists.txt === --- unittests/Utility/CMakeLists.txt +++ unittests/Utility/CMakeLists.txt @@ -10,6 +10,7 @@ TaskPoolTest.cpp TildeExpressionResolverTest.cpp TimeoutTest.cpp + TimerTest.cpp UriParserTest.cpp VASprintfTest.cpp Index: unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp === --- unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp +++ unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp @@ -12,10 +12,10 @@ #include "Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h" #include "lldb/Core/ModuleSpec.h" -#include "lldb/Core/TraceOptions.h" #include "lldb/Target/MemoryRegionInfo.h" #include "lldb/Utility/DataBuffer.h" #include "lldb/Utility/StructuredData.h" +#include "lldb/Utility/TraceOptions.h" #include "lldb/lldb-enumerations.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/Testing/Support/Error.h" Index: unittests/Core/CMakeLists.txt === --- unittests/Core/CMakeLists.txt +++ unittests/Core/CMakeLists.txt @@ -6,7 +6,6 @@ ScalarTest.cpp StateTest.cpp StreamCallbackTest.cpp - TimerTest.cpp LINK_LIBS lldbCore Index: source/Utility/Timer.cpp === --- source/Utility/Timer.cpp +++ source/Utility/Timer.cpp @@ -6,11 +6,9 @@ // License. See LICENSE.TXT for details. // //===--===// -#include "lldb/Core/Timer.h" - +#include "lldb/Utility/Timer.h" #include "lldb/Host/Host.h" #include "lldb/Utility/Stream.h" -#include "lldb/lldb-types.h" // for thread_key_t #include #include Index: source/Utility/CMakeLists.txt === --- source/Utility/CMakeLists.txt +++ source/Utility/CMakeLists.txt @@ -31,6 +31,7