[Lldb-commits] [PATCH] D34746: Move Timer and TraceOptions from Core to Utility

2017-06-29 Thread Pavel Labath via Phabricator via lldb-commits
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

2017-06-29 Thread Zachary Turner via lldb-commits
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

2017-06-29 Thread Pavel Labath via Phabricator via lldb-commits
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

2017-06-28 Thread Zachary Turner via Phabricator via lldb-commits
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

2017-06-28 Thread Pavel Labath via Phabricator via lldb-commits
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