[Lldb-commits] [lldb] r295088 - Remove dependencies from Utility to Core and Target.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Tue Feb 14 11:06:09 PST 2017


Author: zturner
Date: Tue Feb 14 13:06:07 2017
New Revision: 295088

URL: http://llvm.org/viewvc/llvm-project?rev=295088&view=rev
Log:
Remove dependencies from Utility to Core and Target.

With this patch, the only dependency left is from Utility
to Host.  After this is broken, Utility will finally be
standalone.

Differential Revision: https://reviews.llvm.org/D29909

Added:
    lldb/trunk/include/lldb/Target/ModuleCache.h
    lldb/trunk/include/lldb/Target/ProcessStructReader.h
    lldb/trunk/include/lldb/Target/RegisterNumber.h
    lldb/trunk/include/lldb/Utility/Endian.h
    lldb/trunk/include/lldb/Utility/Flags.h
    lldb/trunk/source/Target/ModuleCache.cpp
    lldb/trunk/source/Target/RegisterNumber.cpp
    lldb/trunk/unittests/Target/
    lldb/trunk/unittests/Target/CMakeLists.txt
    lldb/trunk/unittests/Target/Inputs/
    lldb/trunk/unittests/Target/Inputs/TestModule.c
    lldb/trunk/unittests/Target/ModuleCacheTest.cpp
Removed:
    lldb/trunk/include/lldb/Core/Flags.h
    lldb/trunk/include/lldb/Host/Endian.h
    lldb/trunk/include/lldb/Utility/ProcessStructReader.h
    lldb/trunk/include/lldb/Utility/RegisterNumber.h
    lldb/trunk/source/Utility/ModuleCache.cpp
    lldb/trunk/source/Utility/ModuleCache.h
    lldb/trunk/source/Utility/RegisterNumber.cpp
    lldb/trunk/unittests/Utility/Inputs/
    lldb/trunk/unittests/Utility/ModuleCacheTest.cpp
Modified:
    lldb/trunk/include/lldb/Core/IOHandler.h
    lldb/trunk/include/lldb/Core/Log.h
    lldb/trunk/include/lldb/Core/Opcode.h
    lldb/trunk/include/lldb/Core/RegisterValue.h
    lldb/trunk/include/lldb/Core/Section.h
    lldb/trunk/include/lldb/Core/ValueObject.h
    lldb/trunk/include/lldb/DataFormatters/ValueObjectPrinter.h
    lldb/trunk/include/lldb/Interpreter/CommandObject.h
    lldb/trunk/include/lldb/Interpreter/OptionValueString.h
    lldb/trunk/include/lldb/Interpreter/Property.h
    lldb/trunk/include/lldb/Symbol/DWARFCallFrameInfo.h
    lldb/trunk/include/lldb/Symbol/ObjectContainer.h
    lldb/trunk/include/lldb/Symbol/ObjectFile.h
    lldb/trunk/include/lldb/Target/ProcessLaunchInfo.h
    lldb/trunk/include/lldb/Target/StackFrame.h
    lldb/trunk/include/lldb/Utility/PseudoTerminal.h
    lldb/trunk/include/lldb/Utility/Stream.h
    lldb/trunk/source/Core/ArchSpec.cpp
    lldb/trunk/source/Core/DataEncoder.cpp
    lldb/trunk/source/Core/DataExtractor.cpp
    lldb/trunk/source/Core/EmulateInstruction.cpp
    lldb/trunk/source/Core/Event.cpp
    lldb/trunk/source/Core/Opcode.cpp
    lldb/trunk/source/Core/Scalar.cpp
    lldb/trunk/source/Core/ValueObject.cpp
    lldb/trunk/source/Expression/DWARFExpression.cpp
    lldb/trunk/source/Expression/IRInterpreter.cpp
    lldb/trunk/source/Host/freebsd/Host.cpp
    lldb/trunk/source/Host/macosx/Host.mm
    lldb/trunk/source/Host/macosx/Symbols.cpp
    lldb/trunk/source/Host/netbsd/Host.cpp
    lldb/trunk/source/Interpreter/OptionValueProperties.cpp
    lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
    lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
    lldb/trunk/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp
    lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp
    lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
    lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
    lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
    lldb/trunk/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
    lldb/trunk/source/Plugins/Language/ObjC/CF.cpp
    lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp
    lldb/trunk/source/Plugins/Language/ObjC/CoreMedia.cpp
    lldb/trunk/source/Plugins/Language/ObjC/NSArray.cpp
    lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp
    lldb/trunk/source/Plugins/Language/ObjC/NSError.cpp
    lldb/trunk/source/Plugins/Language/ObjC/NSException.cpp
    lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp
    lldb/trunk/source/Plugins/Language/ObjC/NSString.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.h
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp
    lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
    lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
    lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
    lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
    lldb/trunk/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp
    lldb/trunk/source/Symbol/ArmUnwindInfo.cpp
    lldb/trunk/source/Symbol/ClangASTContext.cpp
    lldb/trunk/source/Symbol/FuncUnwinders.cpp
    lldb/trunk/source/Target/CMakeLists.txt
    lldb/trunk/source/Target/Platform.cpp
    lldb/trunk/source/Target/RegisterContext.cpp
    lldb/trunk/source/Utility/CMakeLists.txt
    lldb/trunk/source/Utility/Error.cpp
    lldb/trunk/source/Utility/Stream.cpp
    lldb/trunk/source/Utility/UriParser.cpp
    lldb/trunk/unittests/CMakeLists.txt
    lldb/trunk/unittests/Core/ScalarTest.cpp
    lldb/trunk/unittests/Utility/CMakeLists.txt

Removed: lldb/trunk/include/lldb/Core/Flags.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Flags.h?rev=295087&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Core/Flags.h (original)
+++ lldb/trunk/include/lldb/Core/Flags.h (removed)
@@ -1,193 +0,0 @@
-//===-- Flags.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_Flags_h_
-#define liblldb_Flags_h_
-
-#include <cstddef>
-#include <cstdint>
-
-namespace lldb_private {
-
-//----------------------------------------------------------------------
-/// @class Flags Flags.h "lldb/Core/Flags.h"
-/// @brief A class to manage flags.
-///
-/// The Flags class managed flag bits and allows testing and
-/// modification of individual or multiple flag bits.
-//----------------------------------------------------------------------
-class Flags {
-public:
-  //----------------------------------------------------------------------
-  /// The value type for flags is a 32 bit unsigned integer type.
-  //----------------------------------------------------------------------
-  typedef uint32_t ValueType;
-
-  //----------------------------------------------------------------------
-  /// Construct with initial flag bit values.
-  ///
-  /// Constructs this object with \a mask as the initial value for all
-  /// of the flags.
-  ///
-  /// @param[in] mask
-  ///     The initial value for all flags.
-  //----------------------------------------------------------------------
-  Flags(ValueType flags = 0) : m_flags(flags) {}
-
-  //----------------------------------------------------------------------
-  /// Copy constructor.
-  ///
-  /// Construct and copy the flags from \a rhs.
-  ///
-  /// @param[in] rhs
-  ///     A const Flags object reference to copy.
-  //----------------------------------------------------------------------
-  Flags(const Flags &rhs) : m_flags(rhs.m_flags) {}
-
-  //----------------------------------------------------------------------
-  /// Destructor.
-  //----------------------------------------------------------------------
-  ~Flags() {}
-
-  //----------------------------------------------------------------------
-  /// Get accessor for all flags.
-  ///
-  /// @return
-  ///     Returns all of the flags as a Flags::ValueType.
-  //----------------------------------------------------------------------
-  ValueType Get() const { return m_flags; }
-
-  //----------------------------------------------------------------------
-  /// Return the number of flags that can be represented in this
-  /// object.
-  ///
-  /// @return
-  ///     The maximum number bits in this flag object.
-  //----------------------------------------------------------------------
-  size_t GetBitSize() const { return sizeof(ValueType) * 8; }
-
-  //----------------------------------------------------------------------
-  /// Set accessor for all flags.
-  ///
-  /// @param[in] flags
-  ///     The bits with which to replace all of the current flags.
-  //----------------------------------------------------------------------
-  void Reset(ValueType flags) { m_flags = flags; }
-
-  //----------------------------------------------------------------------
-  /// Clear one or more flags.
-  ///
-  /// @param[in] mask
-  ///     A bitfield containing one or more flags.
-  ///
-  /// @return
-  ///     The new flags after clearing all bits from \a mask.
-  //----------------------------------------------------------------------
-  ValueType Clear(ValueType mask = ~(ValueType)0) {
-    m_flags &= ~mask;
-    return m_flags;
-  }
-
-  //----------------------------------------------------------------------
-  /// Set one or more flags by logical OR'ing \a mask with the current
-  /// flags.
-  ///
-  /// @param[in] mask
-  ///     A bitfield containing one or more flags.
-  ///
-  /// @return
-  ///     The new flags after setting all bits from \a mask.
-  //----------------------------------------------------------------------
-  ValueType Set(ValueType mask) {
-    m_flags |= mask;
-    return m_flags;
-  }
-
-  //----------------------------------------------------------------------
-  /// Test if all bits in \a mask are 1 in the current flags
-  ///
-  /// @return
-  ///     \b true if all flags in \a mask are 1, \b false
-  ///     otherwise.
-  //----------------------------------------------------------------------
-  bool AllSet(ValueType mask) const { return (m_flags & mask) == mask; }
-
-  //----------------------------------------------------------------------
-  /// Test one or more flags.
-  ///
-  /// @return
-  ///     \b true if any flags in \a mask are 1, \b false
-  ///     otherwise.
-  //----------------------------------------------------------------------
-  bool AnySet(ValueType mask) const { return (m_flags & mask) != 0; }
-
-  //----------------------------------------------------------------------
-  /// Test a single flag bit.
-  ///
-  /// @return
-  ///     \b true if \a bit is set, \b false otherwise.
-  //----------------------------------------------------------------------
-  bool Test(ValueType bit) const { return (m_flags & bit) != 0; }
-
-  //----------------------------------------------------------------------
-  /// Test if all bits in \a mask are clear.
-  ///
-  /// @return
-  ///     \b true if \b all flags in \a mask are clear, \b false
-  ///     otherwise.
-  //----------------------------------------------------------------------
-  bool AllClear(ValueType mask) const { return (m_flags & mask) == 0; }
-
-  bool AnyClear(ValueType mask) const { return (m_flags & mask) != mask; }
-
-  //----------------------------------------------------------------------
-  /// Test a single flag bit to see if it is clear (zero).
-  ///
-  /// @return
-  ///     \b true if \a bit is 0, \b false otherwise.
-  //----------------------------------------------------------------------
-  bool IsClear(ValueType bit) const { return (m_flags & bit) == 0; }
-
-  //----------------------------------------------------------------------
-  /// Get the number of zero bits in \a m_flags.
-  ///
-  /// @return
-  ///     The number of bits that are set to 0 in the current flags.
-  //----------------------------------------------------------------------
-  size_t ClearCount() const {
-    size_t count = 0;
-    for (ValueType shift = 0; shift < sizeof(ValueType) * 8; ++shift) {
-      if ((m_flags & (1u << shift)) == 0)
-        ++count;
-    }
-    return count;
-  }
-
-  //----------------------------------------------------------------------
-  /// Get the number of one bits in \a m_flags.
-  ///
-  /// @return
-  ///     The number of bits that are set to 1 in the current flags.
-  //----------------------------------------------------------------------
-  size_t SetCount() const {
-    size_t count = 0;
-    for (ValueType mask = m_flags; mask; mask >>= 1) {
-      if (mask & 1u)
-        ++count;
-    }
-    return count;
-  }
-
-protected:
-  ValueType m_flags; ///< The flags.
-};
-
-} // namespace lldb_private
-
-#endif // liblldb_Flags_h_

Modified: lldb/trunk/include/lldb/Core/IOHandler.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/IOHandler.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/IOHandler.h (original)
+++ lldb/trunk/include/lldb/Core/IOHandler.h Tue Feb 14 13:06:07 2017
@@ -21,7 +21,8 @@
 
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/StringList.h"
 #include "lldb/Core/ValueObjectList.h"
 #include "lldb/Host/Predicate.h"

Modified: lldb/trunk/include/lldb/Core/Log.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Log.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/Log.h (original)
+++ lldb/trunk/include/lldb/Core/Log.h Tue Feb 14 13:06:07 2017
@@ -11,10 +11,10 @@
 #define liblldb_Log_h_
 
 // Project includes
-#include "lldb/Core/Flags.h"
 #include "lldb/Core/Logging.h"
 #include "lldb/Core/PluginInterface.h"
 #include "lldb/Utility/ConstString.h"
+#include "lldb/Utility/Flags.h"
 #include "lldb/lldb-private.h"
 
 // Other libraries and framework includes

Modified: lldb/trunk/include/lldb/Core/Opcode.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Opcode.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/Opcode.h (original)
+++ lldb/trunk/include/lldb/Core/Opcode.h Tue Feb 14 13:06:07 2017
@@ -18,7 +18,7 @@
 #include "llvm/Support/MathExtras.h"
 
 // Project includes
-#include "lldb/Host/Endian.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/lldb-public.h"
 
 namespace lldb {

Modified: lldb/trunk/include/lldb/Core/RegisterValue.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/RegisterValue.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/RegisterValue.h (original)
+++ lldb/trunk/include/lldb/Core/RegisterValue.h Tue Feb 14 13:06:07 2017
@@ -19,7 +19,7 @@
 
 // Project includes
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/lldb-private.h"
 #include "lldb/lldb-public.h"
 

Modified: lldb/trunk/include/lldb/Core/Section.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Section.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/Section.h (original)
+++ lldb/trunk/include/lldb/Core/Section.h Tue Feb 14 13:06:07 2017
@@ -11,7 +11,8 @@
 #define liblldb_Section_h_
 
 #include "lldb/Core/AddressRange.h"
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/ModuleChild.h"
 #include "lldb/Core/RangeMap.h"
 #include "lldb/Core/UserID.h"

Modified: lldb/trunk/include/lldb/Core/ValueObject.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ValueObject.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/ValueObject.h (original)
+++ lldb/trunk/include/lldb/Core/ValueObject.h Tue Feb 14 13:06:07 2017
@@ -23,7 +23,8 @@
 
 // Project includes
 #include "lldb/Core/DataExtractor.h"
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/UserID.h"
 #include "lldb/Core/Value.h"
 #include "lldb/Symbol/CompilerType.h"

Modified: lldb/trunk/include/lldb/DataFormatters/ValueObjectPrinter.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/ValueObjectPrinter.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/DataFormatters/ValueObjectPrinter.h (original)
+++ lldb/trunk/include/lldb/DataFormatters/ValueObjectPrinter.h Tue Feb 14 13:06:07 2017
@@ -19,7 +19,8 @@
 #include "lldb/lldb-private.h"
 #include "lldb/lldb-public.h"
 
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/DataFormatters/DumpValueObjectOptions.h"
 #include "lldb/Symbol/CompilerType.h"
 

Removed: lldb/trunk/include/lldb/Host/Endian.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/Endian.h?rev=295087&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Host/Endian.h (original)
+++ lldb/trunk/include/lldb/Host/Endian.h (removed)
@@ -1,32 +0,0 @@
-//===-- Endian.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_host_endian_h_
-#define liblldb_host_endian_h_
-
-#include "lldb/lldb-enumerations.h"
-
-namespace lldb_private {
-
-namespace endian {
-
-static union EndianTest {
-  uint32_t num;
-  uint8_t bytes[sizeof(uint32_t)];
-} const endianTest = {0x01020304};
-
-inline lldb::ByteOrder InlHostByteOrder() {
-  return (lldb::ByteOrder)endianTest.bytes[0];
-}
-
-//    ByteOrder const InlHostByteOrder = (ByteOrder)endianTest.bytes[0];
-}
-}
-
-#endif // liblldb_host_endian_h_

Modified: lldb/trunk/include/lldb/Interpreter/CommandObject.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/CommandObject.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Interpreter/CommandObject.h (original)
+++ lldb/trunk/include/lldb/Interpreter/CommandObject.h Tue Feb 14 13:06:07 2017
@@ -18,7 +18,8 @@
 
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/StringList.h"
 #include "lldb/Interpreter/Args.h"
 #include "lldb/Interpreter/CommandCompletions.h"

Modified: lldb/trunk/include/lldb/Interpreter/OptionValueString.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionValueString.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Interpreter/OptionValueString.h (original)
+++ lldb/trunk/include/lldb/Interpreter/OptionValueString.h Tue Feb 14 13:06:07 2017
@@ -16,7 +16,8 @@
 
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Interpreter/OptionValue.h"
 
 namespace lldb_private {

Modified: lldb/trunk/include/lldb/Interpreter/Property.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/Property.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Interpreter/Property.h (original)
+++ lldb/trunk/include/lldb/Interpreter/Property.h Tue Feb 14 13:06:07 2017
@@ -16,7 +16,8 @@
 
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Interpreter/OptionValue.h"
 #include "lldb/Utility/ConstString.h"
 #include "lldb/lldb-defines.h"

Modified: lldb/trunk/include/lldb/Symbol/DWARFCallFrameInfo.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/DWARFCallFrameInfo.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Symbol/DWARFCallFrameInfo.h (original)
+++ lldb/trunk/include/lldb/Symbol/DWARFCallFrameInfo.h Tue Feb 14 13:06:07 2017
@@ -15,7 +15,8 @@
 
 #include "lldb/Core/AddressRange.h"
 #include "lldb/Core/DataExtractor.h"
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/RangeMap.h"
 #include "lldb/Core/VMRange.h"
 #include "lldb/Core/dwarf.h"

Modified: lldb/trunk/include/lldb/Symbol/ObjectContainer.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/ObjectContainer.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Symbol/ObjectContainer.h (original)
+++ lldb/trunk/include/lldb/Symbol/ObjectContainer.h Tue Feb 14 13:06:07 2017
@@ -17,8 +17,8 @@
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Core/ModuleChild.h"
 #include "lldb/Core/PluginInterface.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/FileSpec.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/lldb-private.h"
 
 namespace lldb_private {

Modified: lldb/trunk/include/lldb/Symbol/ObjectFile.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/ObjectFile.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Symbol/ObjectFile.h (original)
+++ lldb/trunk/include/lldb/Symbol/ObjectFile.h Tue Feb 14 13:06:07 2017
@@ -14,10 +14,10 @@
 #include "lldb/Core/FileSpecList.h"
 #include "lldb/Core/ModuleChild.h"
 #include "lldb/Core/PluginInterface.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Symbol/Symtab.h"
 #include "lldb/Symbol/UnwindTable.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/lldb-private.h"
 
 namespace lldb_private {

Added: lldb/trunk/include/lldb/Target/ModuleCache.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/ModuleCache.h?rev=295088&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Target/ModuleCache.h (added)
+++ lldb/trunk/include/lldb/Target/ModuleCache.h Tue Feb 14 13:06:07 2017
@@ -0,0 +1,76 @@
+//===-- ModuleCache.h -------------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_TARGET_MODULECACHE_H
+#define LLDB_TARGET_MODULECACHE_H
+
+#include "lldb/lldb-forward.h"
+#include "lldb/lldb-types.h"
+
+#include "lldb/Host/File.h"
+#include "lldb/Host/FileSpec.h"
+#include "lldb/Utility/Error.h"
+
+#include <functional>
+#include <string>
+#include <unordered_map>
+
+namespace lldb_private {
+
+class Module;
+class UUID;
+
+//----------------------------------------------------------------------
+/// @class ModuleCache ModuleCache.h "lldb/Target/ModuleCache.h"
+/// @brief A module cache class.
+///
+/// Caches locally modules that are downloaded from remote targets.
+/// Each cached module maintains 2 views:
+///  - UUID view:
+///  /${CACHE_ROOT}/${PLATFORM_NAME}/.cache/${UUID}/${MODULE_FILENAME}
+///  - Sysroot view:
+///  /${CACHE_ROOT}/${PLATFORM_NAME}/${HOSTNAME}/${MODULE_FULL_FILEPATH}
+///
+/// UUID views stores a real module file, whereas Sysroot view holds a symbolic
+/// link to UUID-view file.
+///
+/// Example:
+/// UUID view   :
+/// /tmp/lldb/remote-linux/.cache/30C94DC6-6A1F-E951-80C3-D68D2B89E576-D5AE213C/libc.so.6
+/// Sysroot view: /tmp/lldb/remote-linux/ubuntu/lib/x86_64-linux-gnu/libc.so.6
+//----------------------------------------------------------------------
+
+class ModuleCache {
+public:
+  using ModuleDownloader =
+      std::function<Error(const ModuleSpec &, const FileSpec &)>;
+  using SymfileDownloader =
+      std::function<Error(const lldb::ModuleSP &, const FileSpec &)>;
+
+  Error GetAndPut(const FileSpec &root_dir_spec, const char *hostname,
+                  const ModuleSpec &module_spec,
+                  const ModuleDownloader &module_downloader,
+                  const SymfileDownloader &symfile_downloader,
+                  lldb::ModuleSP &cached_module_sp, bool *did_create_ptr);
+
+private:
+  Error Put(const FileSpec &root_dir_spec, const char *hostname,
+            const ModuleSpec &module_spec, const FileSpec &tmp_file,
+            const FileSpec &target_file);
+
+  Error Get(const FileSpec &root_dir_spec, const char *hostname,
+            const ModuleSpec &module_spec, lldb::ModuleSP &cached_module_sp,
+            bool *did_create_ptr);
+
+  std::unordered_map<std::string, lldb::ModuleWP> m_loaded_modules;
+};
+
+} // namespace lldb_private
+
+#endif // utility_ModuleCache_h_

Modified: lldb/trunk/include/lldb/Target/ProcessLaunchInfo.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/ProcessLaunchInfo.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/ProcessLaunchInfo.h (original)
+++ lldb/trunk/include/lldb/Target/ProcessLaunchInfo.h Tue Feb 14 13:06:07 2017
@@ -14,7 +14,8 @@
 #include <string>
 
 // LLDB Headers
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Target/FileAction.h"

Added: lldb/trunk/include/lldb/Target/ProcessStructReader.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/ProcessStructReader.h?rev=295088&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Target/ProcessStructReader.h (added)
+++ lldb/trunk/include/lldb/Target/ProcessStructReader.h Tue Feb 14 13:06:07 2017
@@ -0,0 +1,102 @@
+//===---------------------ProcessStructReader.h ------------------*- C++-*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_TARGET_PROCESSSTRUCTREADER_H
+#define LLDB_TARGET_PROCESSSTRUCTREADER_H
+
+#include "lldb/lldb-defines.h"
+#include "lldb/lldb-types.h"
+
+#include "lldb/Core/DataExtractor.h"
+#include "lldb/Symbol/CompilerType.h"
+#include "lldb/Target/Process.h"
+#include "lldb/Utility/ConstString.h"
+#include "lldb/Utility/Error.h"
+
+#include <initializer_list>
+#include <map>
+#include <string>
+
+namespace lldb_private {
+class ProcessStructReader {
+protected:
+  struct FieldImpl {
+    CompilerType type;
+    size_t offset;
+    size_t size;
+  };
+
+  std::map<ConstString, FieldImpl> m_fields;
+  DataExtractor m_data;
+  lldb::ByteOrder m_byte_order;
+  size_t m_addr_byte_size;
+
+public:
+  ProcessStructReader(Process *process, lldb::addr_t base_addr,
+                      CompilerType struct_type) {
+    if (!process)
+      return;
+    if (base_addr == 0 || base_addr == LLDB_INVALID_ADDRESS)
+      return;
+    m_byte_order = process->GetByteOrder();
+    m_addr_byte_size = process->GetAddressByteSize();
+
+    for (size_t idx = 0; idx < struct_type.GetNumFields(); idx++) {
+      std::string name;
+      uint64_t bit_offset;
+      uint32_t bitfield_bit_size;
+      bool is_bitfield;
+      CompilerType field_type = struct_type.GetFieldAtIndex(
+          idx, name, &bit_offset, &bitfield_bit_size, &is_bitfield);
+      // no support for bitfields in here (yet)
+      if (is_bitfield)
+        return;
+      auto size = field_type.GetByteSize(nullptr);
+      // no support for things larger than a uint64_t (yet)
+      if (size > 8)
+        return;
+      ConstString const_name = ConstString(name.c_str());
+      size_t byte_index = static_cast<size_t>(bit_offset / 8);
+      m_fields[const_name] =
+          FieldImpl{field_type, byte_index, static_cast<size_t>(size)};
+    }
+    size_t total_size = struct_type.GetByteSize(nullptr);
+    lldb::DataBufferSP buffer_sp(new DataBufferHeap(total_size, 0));
+    Error error;
+    process->ReadMemoryFromInferior(base_addr, buffer_sp->GetBytes(),
+                                    total_size, error);
+    if (error.Fail())
+      return;
+    m_data = DataExtractor(buffer_sp, m_byte_order, m_addr_byte_size);
+  }
+
+  template <typename RetType>
+  RetType GetField(ConstString name, RetType fail_value = RetType()) {
+    auto iter = m_fields.find(name), end = m_fields.end();
+    if (iter == end)
+      return fail_value;
+    auto size = iter->second.size;
+    if (sizeof(RetType) < size)
+      return fail_value;
+    lldb::offset_t offset = iter->second.offset;
+    if (offset + size > m_data.GetByteSize())
+      return fail_value;
+    return (RetType)(m_data.GetMaxU64(&offset, size));
+  }
+
+  size_t GetOffsetOf(ConstString name, size_t fail_value = SIZE_MAX) {
+    auto iter = m_fields.find(name), end = m_fields.end();
+    if (iter == end)
+      return fail_value;
+    return iter->second.offset;
+  }
+};
+}
+
+#endif // utility_ProcessStructReader_h_

Added: lldb/trunk/include/lldb/Target/RegisterNumber.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/RegisterNumber.h?rev=295088&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Target/RegisterNumber.h (added)
+++ lldb/trunk/include/lldb/Target/RegisterNumber.h Tue Feb 14 13:06:07 2017
@@ -0,0 +1,62 @@
+//===-- RegisterNumber.h ----------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_TARGET_REGISTERNUMBER_H
+#define LLDB_TARGET_REGISTERNUMBER_H
+
+#include "lldb/lldb-private.h"
+#include <map>
+
+//--------------------------------------------------------------------
+/// A class to represent register numbers, and able to convert between
+/// different register numbering schemes that may be used in a single
+/// debug session.
+//--------------------------------------------------------------------
+
+class RegisterNumber {
+public:
+  RegisterNumber(lldb_private::Thread &thread, lldb::RegisterKind kind,
+                 uint32_t num);
+
+  // This constructor plus the init() method below allow for the placeholder
+  // creation of an invalid object initially, possibly to be filled in.  It
+  // would be more consistent to have three Set* methods to set the three
+  // data that the object needs.
+  RegisterNumber();
+
+  void init(lldb_private::Thread &thread, lldb::RegisterKind kind,
+            uint32_t num);
+
+  const RegisterNumber &operator=(const RegisterNumber &rhs);
+
+  bool operator==(RegisterNumber &rhs);
+
+  bool operator!=(RegisterNumber &rhs);
+
+  bool IsValid() const;
+
+  uint32_t GetAsKind(lldb::RegisterKind kind);
+
+  uint32_t GetRegisterNumber() const;
+
+  lldb::RegisterKind GetRegisterKind() const;
+
+  const char *GetName();
+
+private:
+  typedef std::map<lldb::RegisterKind, uint32_t> Collection;
+
+  lldb::RegisterContextSP m_reg_ctx_sp;
+  uint32_t m_regnum;
+  lldb::RegisterKind m_kind;
+  Collection m_kind_regnum_map;
+  const char *m_name;
+};
+
+#endif // liblldb_RegisterNumber_h

Modified: lldb/trunk/include/lldb/Target/StackFrame.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/StackFrame.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/StackFrame.h (original)
+++ lldb/trunk/include/lldb/Target/StackFrame.h Tue Feb 14 13:06:07 2017
@@ -17,7 +17,8 @@
 
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/Scalar.h"
 #include "lldb/Core/UserID.h"
 #include "lldb/Core/ValueObjectList.h"

Added: lldb/trunk/include/lldb/Utility/Endian.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Utility/Endian.h?rev=295088&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Utility/Endian.h (added)
+++ lldb/trunk/include/lldb/Utility/Endian.h Tue Feb 14 13:06:07 2017
@@ -0,0 +1,32 @@
+//===-- Endian.h ------------------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_UTILITY_ENDIAN_H
+#define LLDB_UTILITY_ENDIAN_H
+
+#include "lldb/lldb-enumerations.h"
+
+namespace lldb_private {
+
+namespace endian {
+
+static union EndianTest {
+  uint32_t num;
+  uint8_t bytes[sizeof(uint32_t)];
+} const endianTest = {0x01020304};
+
+inline lldb::ByteOrder InlHostByteOrder() {
+  return (lldb::ByteOrder)endianTest.bytes[0];
+}
+
+//    ByteOrder const InlHostByteOrder = (ByteOrder)endianTest.bytes[0];
+}
+}
+
+#endif // liblldb_host_endian_h_

Added: lldb/trunk/include/lldb/Utility/Flags.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Utility/Flags.h?rev=295088&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Utility/Flags.h (added)
+++ lldb/trunk/include/lldb/Utility/Flags.h Tue Feb 14 13:06:07 2017
@@ -0,0 +1,193 @@
+//===-- Flags.h -------------------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_UTILITY_FLAGS_H
+#define LLDB_UTILITY_FLAGS_H
+
+#include <cstddef>
+#include <cstdint>
+
+namespace lldb_private {
+
+//----------------------------------------------------------------------
+/// @class Flags Flags.h "lldb/Utility/Flags.h"
+/// @brief A class to manage flags.
+///
+/// The Flags class managed flag bits and allows testing and
+/// modification of individual or multiple flag bits.
+//----------------------------------------------------------------------
+class Flags {
+public:
+  //----------------------------------------------------------------------
+  /// The value type for flags is a 32 bit unsigned integer type.
+  //----------------------------------------------------------------------
+  typedef uint32_t ValueType;
+
+  //----------------------------------------------------------------------
+  /// Construct with initial flag bit values.
+  ///
+  /// Constructs this object with \a mask as the initial value for all
+  /// of the flags.
+  ///
+  /// @param[in] mask
+  ///     The initial value for all flags.
+  //----------------------------------------------------------------------
+  Flags(ValueType flags = 0) : m_flags(flags) {}
+
+  //----------------------------------------------------------------------
+  /// Copy constructor.
+  ///
+  /// Construct and copy the flags from \a rhs.
+  ///
+  /// @param[in] rhs
+  ///     A const Flags object reference to copy.
+  //----------------------------------------------------------------------
+  Flags(const Flags &rhs) : m_flags(rhs.m_flags) {}
+
+  //----------------------------------------------------------------------
+  /// Destructor.
+  //----------------------------------------------------------------------
+  ~Flags() {}
+
+  //----------------------------------------------------------------------
+  /// Get accessor for all flags.
+  ///
+  /// @return
+  ///     Returns all of the flags as a Flags::ValueType.
+  //----------------------------------------------------------------------
+  ValueType Get() const { return m_flags; }
+
+  //----------------------------------------------------------------------
+  /// Return the number of flags that can be represented in this
+  /// object.
+  ///
+  /// @return
+  ///     The maximum number bits in this flag object.
+  //----------------------------------------------------------------------
+  size_t GetBitSize() const { return sizeof(ValueType) * 8; }
+
+  //----------------------------------------------------------------------
+  /// Set accessor for all flags.
+  ///
+  /// @param[in] flags
+  ///     The bits with which to replace all of the current flags.
+  //----------------------------------------------------------------------
+  void Reset(ValueType flags) { m_flags = flags; }
+
+  //----------------------------------------------------------------------
+  /// Clear one or more flags.
+  ///
+  /// @param[in] mask
+  ///     A bitfield containing one or more flags.
+  ///
+  /// @return
+  ///     The new flags after clearing all bits from \a mask.
+  //----------------------------------------------------------------------
+  ValueType Clear(ValueType mask = ~(ValueType)0) {
+    m_flags &= ~mask;
+    return m_flags;
+  }
+
+  //----------------------------------------------------------------------
+  /// Set one or more flags by logical OR'ing \a mask with the current
+  /// flags.
+  ///
+  /// @param[in] mask
+  ///     A bitfield containing one or more flags.
+  ///
+  /// @return
+  ///     The new flags after setting all bits from \a mask.
+  //----------------------------------------------------------------------
+  ValueType Set(ValueType mask) {
+    m_flags |= mask;
+    return m_flags;
+  }
+
+  //----------------------------------------------------------------------
+  /// Test if all bits in \a mask are 1 in the current flags
+  ///
+  /// @return
+  ///     \b true if all flags in \a mask are 1, \b false
+  ///     otherwise.
+  //----------------------------------------------------------------------
+  bool AllSet(ValueType mask) const { return (m_flags & mask) == mask; }
+
+  //----------------------------------------------------------------------
+  /// Test one or more flags.
+  ///
+  /// @return
+  ///     \b true if any flags in \a mask are 1, \b false
+  ///     otherwise.
+  //----------------------------------------------------------------------
+  bool AnySet(ValueType mask) const { return (m_flags & mask) != 0; }
+
+  //----------------------------------------------------------------------
+  /// Test a single flag bit.
+  ///
+  /// @return
+  ///     \b true if \a bit is set, \b false otherwise.
+  //----------------------------------------------------------------------
+  bool Test(ValueType bit) const { return (m_flags & bit) != 0; }
+
+  //----------------------------------------------------------------------
+  /// Test if all bits in \a mask are clear.
+  ///
+  /// @return
+  ///     \b true if \b all flags in \a mask are clear, \b false
+  ///     otherwise.
+  //----------------------------------------------------------------------
+  bool AllClear(ValueType mask) const { return (m_flags & mask) == 0; }
+
+  bool AnyClear(ValueType mask) const { return (m_flags & mask) != mask; }
+
+  //----------------------------------------------------------------------
+  /// Test a single flag bit to see if it is clear (zero).
+  ///
+  /// @return
+  ///     \b true if \a bit is 0, \b false otherwise.
+  //----------------------------------------------------------------------
+  bool IsClear(ValueType bit) const { return (m_flags & bit) == 0; }
+
+  //----------------------------------------------------------------------
+  /// Get the number of zero bits in \a m_flags.
+  ///
+  /// @return
+  ///     The number of bits that are set to 0 in the current flags.
+  //----------------------------------------------------------------------
+  size_t ClearCount() const {
+    size_t count = 0;
+    for (ValueType shift = 0; shift < sizeof(ValueType) * 8; ++shift) {
+      if ((m_flags & (1u << shift)) == 0)
+        ++count;
+    }
+    return count;
+  }
+
+  //----------------------------------------------------------------------
+  /// Get the number of one bits in \a m_flags.
+  ///
+  /// @return
+  ///     The number of bits that are set to 1 in the current flags.
+  //----------------------------------------------------------------------
+  size_t SetCount() const {
+    size_t count = 0;
+    for (ValueType mask = m_flags; mask; mask >>= 1) {
+      if (mask & 1u)
+        ++count;
+    }
+    return count;
+  }
+
+protected:
+  ValueType m_flags; ///< The flags.
+};
+
+} // namespace lldb_private
+
+#endif // liblldb_Flags_h_

Removed: lldb/trunk/include/lldb/Utility/ProcessStructReader.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Utility/ProcessStructReader.h?rev=295087&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Utility/ProcessStructReader.h (original)
+++ lldb/trunk/include/lldb/Utility/ProcessStructReader.h (removed)
@@ -1,103 +0,0 @@
-//===---------------------ProcessStructReader.h ------------------*- C++
-//-*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef utility_ProcessStructReader_h_
-#define utility_ProcessStructReader_h_
-
-#include "lldb/lldb-defines.h"
-#include "lldb/lldb-types.h"
-
-#include "lldb/Core/DataExtractor.h"
-#include "lldb/Symbol/CompilerType.h"
-#include "lldb/Target/Process.h"
-#include "lldb/Utility/ConstString.h"
-#include "lldb/Utility/Error.h"
-
-#include <initializer_list>
-#include <map>
-#include <string>
-
-namespace lldb_private {
-class ProcessStructReader {
-protected:
-  struct FieldImpl {
-    CompilerType type;
-    size_t offset;
-    size_t size;
-  };
-
-  std::map<ConstString, FieldImpl> m_fields;
-  DataExtractor m_data;
-  lldb::ByteOrder m_byte_order;
-  size_t m_addr_byte_size;
-
-public:
-  ProcessStructReader(Process *process, lldb::addr_t base_addr,
-                      CompilerType struct_type) {
-    if (!process)
-      return;
-    if (base_addr == 0 || base_addr == LLDB_INVALID_ADDRESS)
-      return;
-    m_byte_order = process->GetByteOrder();
-    m_addr_byte_size = process->GetAddressByteSize();
-
-    for (size_t idx = 0; idx < struct_type.GetNumFields(); idx++) {
-      std::string name;
-      uint64_t bit_offset;
-      uint32_t bitfield_bit_size;
-      bool is_bitfield;
-      CompilerType field_type = struct_type.GetFieldAtIndex(
-          idx, name, &bit_offset, &bitfield_bit_size, &is_bitfield);
-      // no support for bitfields in here (yet)
-      if (is_bitfield)
-        return;
-      auto size = field_type.GetByteSize(nullptr);
-      // no support for things larger than a uint64_t (yet)
-      if (size > 8)
-        return;
-      ConstString const_name = ConstString(name.c_str());
-      size_t byte_index = static_cast<size_t>(bit_offset / 8);
-      m_fields[const_name] =
-          FieldImpl{field_type, byte_index, static_cast<size_t>(size)};
-    }
-    size_t total_size = struct_type.GetByteSize(nullptr);
-    lldb::DataBufferSP buffer_sp(new DataBufferHeap(total_size, 0));
-    Error error;
-    process->ReadMemoryFromInferior(base_addr, buffer_sp->GetBytes(),
-                                    total_size, error);
-    if (error.Fail())
-      return;
-    m_data = DataExtractor(buffer_sp, m_byte_order, m_addr_byte_size);
-  }
-
-  template <typename RetType>
-  RetType GetField(ConstString name, RetType fail_value = RetType()) {
-    auto iter = m_fields.find(name), end = m_fields.end();
-    if (iter == end)
-      return fail_value;
-    auto size = iter->second.size;
-    if (sizeof(RetType) < size)
-      return fail_value;
-    lldb::offset_t offset = iter->second.offset;
-    if (offset + size > m_data.GetByteSize())
-      return fail_value;
-    return (RetType)(m_data.GetMaxU64(&offset, size));
-  }
-
-  size_t GetOffsetOf(ConstString name, size_t fail_value = SIZE_MAX) {
-    auto iter = m_fields.find(name), end = m_fields.end();
-    if (iter == end)
-      return fail_value;
-    return iter->second.offset;
-  }
-};
-}
-
-#endif // utility_ProcessStructReader_h_

Modified: lldb/trunk/include/lldb/Utility/PseudoTerminal.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Utility/PseudoTerminal.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Utility/PseudoTerminal.h (original)
+++ lldb/trunk/include/lldb/Utility/PseudoTerminal.h Tue Feb 14 13:06:07 2017
@@ -19,7 +19,7 @@
 namespace lldb_utility {
 
 //----------------------------------------------------------------------
-/// @class PseudoTerminal PseudoTerminal.h "lldb/Core/PseudoTerminal.h"
+/// @class PseudoTerminal PseudoTerminal.h "lldb/Utility/PseudoTerminal.h"
 /// @brief A pseudo terminal helper class.
 ///
 /// The pseudo terminal class abstracts the use of pseudo terminals on

Removed: lldb/trunk/include/lldb/Utility/RegisterNumber.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Utility/RegisterNumber.h?rev=295087&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Utility/RegisterNumber.h (original)
+++ lldb/trunk/include/lldb/Utility/RegisterNumber.h (removed)
@@ -1,62 +0,0 @@
-//===-- RegisterNumber.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_RegisterNumber_h
-#define liblldb_RegisterNumber_h
-
-#include "lldb/lldb-private.h"
-#include <map>
-
-//--------------------------------------------------------------------
-/// A class to represent register numbers, and able to convert between
-/// different register numbering schemes that may be used in a single
-/// debug session.
-//--------------------------------------------------------------------
-
-class RegisterNumber {
-public:
-  RegisterNumber(lldb_private::Thread &thread, lldb::RegisterKind kind,
-                 uint32_t num);
-
-  // This constructor plus the init() method below allow for the placeholder
-  // creation of an invalid object initially, possibly to be filled in.  It
-  // would be more consistent to have three Set* methods to set the three
-  // data that the object needs.
-  RegisterNumber();
-
-  void init(lldb_private::Thread &thread, lldb::RegisterKind kind,
-            uint32_t num);
-
-  const RegisterNumber &operator=(const RegisterNumber &rhs);
-
-  bool operator==(RegisterNumber &rhs);
-
-  bool operator!=(RegisterNumber &rhs);
-
-  bool IsValid() const;
-
-  uint32_t GetAsKind(lldb::RegisterKind kind);
-
-  uint32_t GetRegisterNumber() const;
-
-  lldb::RegisterKind GetRegisterKind() const;
-
-  const char *GetName();
-
-private:
-  typedef std::map<lldb::RegisterKind, uint32_t> Collection;
-
-  lldb::RegisterContextSP m_reg_ctx_sp;
-  uint32_t m_regnum;
-  lldb::RegisterKind m_kind;
-  Collection m_kind_regnum_map;
-  const char *m_name;
-};
-
-#endif // liblldb_RegisterNumber_h

Modified: lldb/trunk/include/lldb/Utility/Stream.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Utility/Stream.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Utility/Stream.h (original)
+++ lldb/trunk/include/lldb/Utility/Stream.h Tue Feb 14 13:06:07 2017
@@ -16,7 +16,8 @@
 // C++ Includes
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/lldb-private.h"
 
 #include "llvm/Support/FormatVariadic.h"

Modified: lldb/trunk/source/Core/ArchSpec.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ArchSpec.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Core/ArchSpec.cpp (original)
+++ lldb/trunk/source/Core/ArchSpec.cpp Tue Feb 14 13:06:07 2017
@@ -25,12 +25,12 @@
 #include "Plugins/Process/Utility/ARMDefines.h"
 #include "Plugins/Process/Utility/InstructionUtils.h"
 #include "lldb/Core/StringList.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/HostInfo.h"
 #include "lldb/Target/Platform.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/RegisterContext.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/NameMatches.h"
 #include "lldb/Utility/RegularExpression.h"
 #include "lldb/Utility/SafeMachO.h"

Modified: lldb/trunk/source/Core/DataEncoder.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/DataEncoder.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Core/DataEncoder.cpp (original)
+++ lldb/trunk/source/Core/DataEncoder.cpp Tue Feb 14 13:06:07 2017
@@ -19,7 +19,7 @@
 
 // Project includes
 #include "lldb/Core/DataBuffer.h"
-#include "lldb/Host/Endian.h"
+#include "lldb/Utility/Endian.h"
 
 using namespace lldb;
 using namespace lldb_private;

Modified: lldb/trunk/source/Core/DataExtractor.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/DataExtractor.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Core/DataExtractor.cpp (original)
+++ lldb/trunk/source/Core/DataExtractor.cpp Tue Feb 14 13:06:07 2017
@@ -34,12 +34,12 @@
 #include "lldb/Core/Log.h"
 #include "lldb/Core/UUID.h"
 #include "lldb/Core/dwarf.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/ExecutionContext.h"
 #include "lldb/Target/ExecutionContextScope.h"
 #include "lldb/Target/SectionLoadList.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Stream.h"
 #include "lldb/Utility/StreamString.h"
 

Modified: lldb/trunk/source/Core/EmulateInstruction.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/EmulateInstruction.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Core/EmulateInstruction.cpp (original)
+++ lldb/trunk/source/Core/EmulateInstruction.cpp Tue Feb 14 13:06:07 2017
@@ -20,12 +20,12 @@
 #include "lldb/Core/PluginManager.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/StreamFile.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/UnwindPlan.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/RegisterContext.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/StreamString.h"
 

Modified: lldb/trunk/source/Core/Event.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Event.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Core/Event.cpp (original)
+++ lldb/trunk/source/Core/Event.cpp Tue Feb 14 13:06:07 2017
@@ -18,8 +18,8 @@
 #include "lldb/Core/Event.h"
 #include "lldb/Core/Log.h"
 #include "lldb/Core/State.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Target/Process.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Stream.h"
 
 using namespace lldb;

Modified: lldb/trunk/source/Core/Opcode.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Opcode.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Core/Opcode.cpp (original)
+++ lldb/trunk/source/Core/Opcode.cpp Tue Feb 14 13:06:07 2017
@@ -18,7 +18,7 @@
 #include "lldb/Core/ArchSpec.h"
 #include "lldb/Core/DataBufferHeap.h"
 #include "lldb/Core/DataExtractor.h"
-#include "lldb/Host/Endian.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Stream.h"
 
 using namespace lldb;

Modified: lldb/trunk/source/Core/Scalar.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Scalar.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Core/Scalar.cpp (original)
+++ lldb/trunk/source/Core/Scalar.cpp Tue Feb 14 13:06:07 2017
@@ -20,9 +20,9 @@
 
 // Project includes
 #include "lldb/Core/DataExtractor.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/StringConvert.h"
 #include "lldb/Interpreter/Args.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 

Modified: lldb/trunk/source/Core/ValueObject.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ValueObject.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Core/ValueObject.cpp (original)
+++ lldb/trunk/source/Core/ValueObject.cpp Tue Feb 14 13:06:07 2017
@@ -37,7 +37,7 @@
 #include "Plugins/ExpressionParser/Clang/ClangExpressionVariable.h"
 #include "Plugins/ExpressionParser/Clang/ClangPersistentVariables.h"
 
-#include "lldb/Host/Endian.h"
+#include "lldb/Utility/Endian.h"
 
 #include "lldb/Interpreter/CommandInterpreter.h"
 

Modified: lldb/trunk/source/Expression/DWARFExpression.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/DWARFExpression.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Expression/DWARFExpression.cpp (original)
+++ lldb/trunk/source/Expression/DWARFExpression.cpp Tue Feb 14 13:06:07 2017
@@ -27,8 +27,8 @@
 #include "Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h"
 #include "Plugins/ExpressionParser/Clang/ClangExpressionVariable.h"
 
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/Host.h"
+#include "lldb/Utility/Endian.h"
 
 #include "lldb/Symbol/Function.h"
 

Modified: lldb/trunk/source/Expression/IRInterpreter.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/IRInterpreter.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Expression/IRInterpreter.cpp (original)
+++ lldb/trunk/source/Expression/IRInterpreter.cpp Tue Feb 14 13:06:07 2017
@@ -17,8 +17,8 @@
 #include "lldb/Expression/DiagnosticManager.h"
 #include "lldb/Expression/IRExecutionUnit.h"
 #include "lldb/Expression/IRMemoryMap.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Utility/ConstString.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/StreamString.h"
 

Modified: lldb/trunk/source/Host/freebsd/Host.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/freebsd/Host.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Host/freebsd/Host.cpp (original)
+++ lldb/trunk/source/Host/freebsd/Host.cpp Tue Feb 14 13:06:07 2017
@@ -30,11 +30,11 @@
 #include "lldb/Core/Log.h"
 #include "lldb/Core/Module.h"
 #include "lldb/Core/StreamFile.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Host/HostInfo.h"
 #include "lldb/Target/Platform.h"
 #include "lldb/Target/Process.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/StreamString.h"
 

Modified: lldb/trunk/source/Host/macosx/Host.mm
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Host.mm?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Host/macosx/Host.mm (original)
+++ lldb/trunk/source/Host/macosx/Host.mm Tue Feb 14 13:06:07 2017
@@ -62,10 +62,8 @@
 #include "lldb/Core/Module.h"
 #include "lldb/Core/ModuleSpec.h"
 #include "lldb/Core/StreamFile.h"
-#include "lldb/Utility/StreamString.h"
 #include "lldb/Core/StructuredData.h"
 #include "lldb/Host/ConnectionFileDescriptor.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Host/FileSystem.h"
 #include "lldb/Host/HostInfo.h"
@@ -73,7 +71,9 @@
 #include "lldb/Target/Platform.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Utility/CleanUp.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/NameMatches.h"
+#include "lldb/Utility/StreamString.h"
 
 #include "cfcpp/CFCBundle.h"
 #include "cfcpp/CFCMutableArray.h"

Modified: lldb/trunk/source/Host/macosx/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Symbols.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Host/macosx/Symbols.cpp (original)
+++ lldb/trunk/source/Host/macosx/Symbols.cpp Tue Feb 14 13:06:07 2017
@@ -31,10 +31,10 @@
 #include "lldb/Core/ModuleSpec.h"
 #include "lldb/Core/Timer.h"
 #include "lldb/Core/UUID.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/Utility/CleanUp.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/StreamString.h"
 #include "mach/machine.h"
 

Modified: lldb/trunk/source/Host/netbsd/Host.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/netbsd/Host.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Host/netbsd/Host.cpp (original)
+++ lldb/trunk/source/Host/netbsd/Host.cpp Tue Feb 14 13:06:07 2017
@@ -31,11 +31,11 @@
 #include "lldb/Core/Log.h"
 #include "lldb/Core/Module.h"
 #include "lldb/Core/StreamFile.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Host/HostInfo.h"
 #include "lldb/Target/Platform.h"
 #include "lldb/Target/Process.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/StreamString.h"
 

Modified: lldb/trunk/source/Interpreter/OptionValueProperties.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/OptionValueProperties.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/OptionValueProperties.cpp (original)
+++ lldb/trunk/source/Interpreter/OptionValueProperties.cpp Tue Feb 14 13:06:07 2017
@@ -13,7 +13,8 @@
 // C++ Includes
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/StringList.h"
 #include "lldb/Core/UserSettingsController.h"
 #include "lldb/Interpreter/Args.h"

Modified: lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp (original)
+++ lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp Tue Feb 14 13:06:07 2017
@@ -22,7 +22,6 @@
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/Core/ValueObjectVariable.h"
 #include "lldb/Expression/Materializer.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Symbol/CompileUnit.h"
 #include "lldb/Symbol/CompilerDecl.h"
@@ -44,6 +43,7 @@
 #include "lldb/Target/StackFrame.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/lldb-private.h"
 #include "clang/AST/ASTConsumer.h"

Modified: lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp (original)
+++ lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp Tue Feb 14 13:06:07 2017
@@ -31,11 +31,11 @@
 #include "lldb/Core/dwarf.h"
 #include "lldb/Expression/IRExecutionUnit.h"
 #include "lldb/Expression/IRInterpreter.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Symbol/ClangUtil.h"
 #include "lldb/Symbol/CompilerType.h"
 #include "lldb/Utility/ConstString.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/StreamString.h"
 
 #include <map>

Modified: lldb/trunk/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp (original)
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp Tue Feb 14 13:06:07 2017
@@ -17,14 +17,14 @@
 #include "lldb/DataFormatters/FormattersHelpers.h"
 #include "lldb/DataFormatters/StringPrinter.h"
 #include "lldb/DataFormatters/TypeSummary.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/Time.h"
 #include "lldb/Symbol/ClangASTContext.h"
+#include "lldb/Target/ProcessStructReader.h"
 #include "lldb/Target/SectionLoadList.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
-#include "lldb/Utility/ProcessStructReader.h"
 #include "lldb/Utility/Stream.h"
 
 #include <algorithm>

Modified: lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp (original)
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp Tue Feb 14 13:06:07 2017
@@ -22,11 +22,11 @@
 #include "lldb/DataFormatters/StringPrinter.h"
 #include "lldb/DataFormatters/TypeSummary.h"
 #include "lldb/DataFormatters/VectorIterator.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
+#include "lldb/Target/ProcessStructReader.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
-#include "lldb/Utility/ProcessStructReader.h"
 #include "lldb/Utility/Stream.h"
 
 using namespace lldb;

Modified: lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxList.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxList.cpp (original)
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxList.cpp Tue Feb 14 13:06:07 2017
@@ -17,9 +17,9 @@
 #include "lldb/Core/ValueObject.h"
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 

Modified: lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp (original)
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp Tue Feb 14 13:06:07 2017
@@ -17,9 +17,9 @@
 #include "lldb/Core/ValueObject.h"
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 

Modified: lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp (original)
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp Tue Feb 14 13:06:07 2017
@@ -17,9 +17,9 @@
 #include "lldb/Core/ValueObject.h"
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 

Modified: lldb/trunk/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp (original)
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp Tue Feb 14 13:06:07 2017
@@ -18,9 +18,9 @@
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/StringPrinter.h"
 #include "lldb/DataFormatters/VectorIterator.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 

Modified: lldb/trunk/source/Plugins/Language/ObjC/CF.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/CF.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/CF.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/CF.cpp Tue Feb 14 13:06:07 2017
@@ -14,12 +14,12 @@
 #include "lldb/Core/ValueObject.h"
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Language.h"
 #include "lldb/Target/ObjCLanguageRuntime.h"
 #include "lldb/Target/StackFrame.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 

Modified: lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp Tue Feb 14 13:06:07 2017
@@ -20,15 +20,15 @@
 #include "lldb/DataFormatters/FormattersHelpers.h"
 #include "lldb/DataFormatters/StringPrinter.h"
 #include "lldb/DataFormatters/TypeSummary.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/Time.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Language.h"
 #include "lldb/Target/ObjCLanguageRuntime.h"
 #include "lldb/Target/Process.h"
+#include "lldb/Target/ProcessStructReader.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
-#include "lldb/Utility/ProcessStructReader.h"
 #include "lldb/Utility/Stream.h"
 
 #include "Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h"

Modified: lldb/trunk/source/Plugins/Language/ObjC/CoreMedia.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/CoreMedia.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/CoreMedia.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/CoreMedia.cpp Tue Feb 14 13:06:07 2017
@@ -10,7 +10,8 @@
 
 #include "CoreMedia.h"
 
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Symbol/TypeSystem.h"
 #include "lldb/Target/Target.h"
 #include <inttypes.h>

Modified: lldb/trunk/source/Plugins/Language/ObjC/NSArray.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/NSArray.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/NSArray.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/NSArray.cpp Tue Feb 14 13:06:07 2017
@@ -21,11 +21,11 @@
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
 #include "lldb/Expression/FunctionCaller.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Language.h"
 #include "lldb/Target/ObjCLanguageRuntime.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 

Modified: lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp Tue Feb 14 13:06:07 2017
@@ -21,12 +21,12 @@
 #include "lldb/Core/ValueObject.h"
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Language.h"
 #include "lldb/Target/ObjCLanguageRuntime.h"
 #include "lldb/Target/StackFrame.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 

Modified: lldb/trunk/source/Plugins/Language/ObjC/NSError.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/NSError.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/NSError.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/NSError.cpp Tue Feb 14 13:06:07 2017
@@ -19,15 +19,14 @@
 #include "lldb/Core/ValueObject.h"
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/ObjCLanguageRuntime.h"
+#include "lldb/Target/ProcessStructReader.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 
-#include "lldb/Utility/ProcessStructReader.h"
-
 #include "Plugins/Language/ObjC/NSString.h"
 
 using namespace lldb;

Modified: lldb/trunk/source/Plugins/Language/ObjC/NSException.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/NSException.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/NSException.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/NSException.cpp Tue Feb 14 13:06:07 2017
@@ -19,15 +19,14 @@
 #include "lldb/Core/ValueObject.h"
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/ObjCLanguageRuntime.h"
+#include "lldb/Target/ProcessStructReader.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 
-#include "lldb/Utility/ProcessStructReader.h"
-
 #include "Plugins/Language/ObjC/NSString.h"
 
 using namespace lldb;

Modified: lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp Tue Feb 14 13:06:07 2017
@@ -17,11 +17,11 @@
 #include "lldb/Core/ValueObject.h"
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Language.h"
 #include "lldb/Target/ObjCLanguageRuntime.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/Stream.h"
 

Modified: lldb/trunk/source/Plugins/Language/ObjC/NSString.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/NSString.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/NSString.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/NSString.cpp Tue Feb 14 13:06:07 2017
@@ -15,12 +15,12 @@
 #include "lldb/Core/ValueObjectConstResult.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
 #include "lldb/DataFormatters/StringPrinter.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Language.h"
+#include "lldb/Target/ProcessStructReader.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
-#include "lldb/Utility/ProcessStructReader.h"
 #include "lldb/Utility/Stream.h"
 
 using namespace lldb;

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp Tue Feb 14 13:06:07 2017
@@ -22,7 +22,7 @@
 #include "lldb/Core/Log.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/Support/Compiler.h"
 
 #include "Plugins/Process/Utility/InstructionUtils.h"

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp Tue Feb 14 13:06:07 2017
@@ -24,9 +24,9 @@
 #include "lldb/Core/Log.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/Compiler.h"
 

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp Tue Feb 14 13:06:07 2017
@@ -17,7 +17,7 @@
 #include "lldb/Core/Log.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/Compiler.h"
 

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp Tue Feb 14 13:06:07 2017
@@ -19,7 +19,7 @@
 #include "lldb/Core/Log.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/Compiler.h"
 

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.h (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.h Tue Feb 14 13:06:07 2017
@@ -21,7 +21,7 @@
 #include "lldb/Symbol/SymbolContext.h"
 #include "lldb/Symbol/UnwindPlan.h"
 #include "lldb/Target/RegisterContext.h"
-#include "lldb/Utility/RegisterNumber.h"
+#include "lldb/Target/RegisterNumber.h"
 #include "lldb/lldb-private.h"
 
 namespace lldb_private {

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp Tue Feb 14 13:06:07 2017
@@ -15,9 +15,9 @@
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/Support/Compiler.h"
 
 #include "Plugins/Process/elf-core/ProcessElfCore.h"

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp Tue Feb 14 13:06:07 2017
@@ -15,9 +15,9 @@
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/Support/Compiler.h"
 
 #include "Plugins/Process/elf-core/ProcessElfCore.h"

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp Tue Feb 14 13:06:07 2017
@@ -15,9 +15,9 @@
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/Support/Compiler.h"
 
 #include "Plugins/Process/elf-core/ProcessElfCore.h"

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp Tue Feb 14 13:06:07 2017
@@ -16,9 +16,9 @@
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/Support/Compiler.h"
 
 #include "Plugins/Process/elf-core/ProcessElfCore.h"

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp Tue Feb 14 13:06:07 2017
@@ -15,10 +15,10 @@
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/Support/Compiler.h"
 
 #include "RegisterContextPOSIX_s390x.h"

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp Tue Feb 14 13:06:07 2017
@@ -15,10 +15,10 @@
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Core/RegisterValue.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
+#include "lldb/Target/Process.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
-#include "lldb/Target/Process.h"
+#include "lldb/Utility/Endian.h"
 #include "llvm/Support/Compiler.h"
 
 #include "RegisterContextPOSIX_x86.h"

Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp (original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp Tue Feb 14 13:06:07 2017
@@ -26,7 +26,6 @@
 #include "lldb/Core/ModuleSpec.h"
 #include "lldb/Core/StreamGDBRemote.h"
 #include "lldb/Host/Config.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/File.h"
 #include "lldb/Host/FileSystem.h"
 #include "lldb/Host/Host.h"
@@ -37,6 +36,7 @@
 #include "lldb/Target/FileAction.h"
 #include "lldb/Target/Platform.h"
 #include "lldb/Target/Process.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/JSON.h"
 #include "lldb/Utility/StreamString.h"
 #include "llvm/ADT/Triple.h"

Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp (original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp Tue Feb 14 13:06:07 2017
@@ -27,7 +27,6 @@
 #include "lldb/Core/State.h"
 #include "lldb/Host/ConnectionFileDescriptor.h"
 #include "lldb/Host/Debug.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/File.h"
 #include "lldb/Host/FileSystem.h"
 #include "lldb/Host/Host.h"
@@ -39,6 +38,7 @@
 #include "lldb/Interpreter/Args.h"
 #include "lldb/Target/FileAction.h"
 #include "lldb/Target/MemoryRegionInfo.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/JSON.h"
 #include "lldb/Utility/LLDBAssert.h"
 #include "lldb/Utility/StreamString.h"

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h Tue Feb 14 13:06:07 2017
@@ -19,7 +19,8 @@
 // C++ Includes
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/StructuredData.h"
 #include "lldb/Host/File.h"
 #include "lldb/Interpreter/OptionValue.h"

Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h (original)
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h Tue Feb 14 13:06:07 2017
@@ -23,7 +23,8 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/Support/Threading.h"
 
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/RangeMap.h"
 #include "lldb/Core/UniqueCStringMap.h"
 #include "lldb/Core/dwarf.h"

Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp (original)
+++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp Tue Feb 14 13:06:07 2017
@@ -21,11 +21,11 @@
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/Symbol/SymbolContext.h"
 #include "lldb/Target/Process.h"
+#include "lldb/Target/ProcessStructReader.h"
 #include "lldb/Target/Queue.h"
 #include "lldb/Target/QueueList.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
-#include "lldb/Utility/ProcessStructReader.h"
 #include "lldb/Utility/StreamString.h"
 
 #include "SystemRuntimeMacOSX.h"

Modified: lldb/trunk/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp (original)
+++ lldb/trunk/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp Tue Feb 14 13:06:07 2017
@@ -22,11 +22,11 @@
 #include "lldb/Target/ExecutionContext.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/RegisterContext.h"
+#include "lldb/Target/RegisterNumber.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
 #include "lldb/Target/UnwindAssembly.h"
 #include "lldb/Utility/Error.h"
-#include "lldb/Utility/RegisterNumber.h"
 
 using namespace lldb;
 using namespace lldb_private;

Modified: lldb/trunk/source/Symbol/ArmUnwindInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/ArmUnwindInfo.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/ArmUnwindInfo.cpp (original)
+++ lldb/trunk/source/Symbol/ArmUnwindInfo.cpp Tue Feb 14 13:06:07 2017
@@ -12,10 +12,10 @@
 #include "Utility/ARM_DWARF_Registers.h"
 #include "lldb/Core/Module.h"
 #include "lldb/Core/Section.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Symbol/ArmUnwindInfo.h"
 #include "lldb/Symbol/SymbolVendor.h"
 #include "lldb/Symbol/UnwindPlan.h"
+#include "lldb/Utility/Endian.h"
 
 /*
  * Unwind information reader and parser for the ARM exception handling ABI

Modified: lldb/trunk/source/Symbol/ClangASTContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/ClangASTContext.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/ClangASTContext.cpp (original)
+++ lldb/trunk/source/Symbol/ClangASTContext.cpp Tue Feb 14 13:06:07 2017
@@ -71,7 +71,8 @@
 #include "Plugins/ExpressionParser/Clang/ClangUserExpression.h"
 #include "Plugins/ExpressionParser/Clang/ClangUtilityFunction.h"
 #include "lldb/Core/ArchSpec.h"
-#include "lldb/Core/Flags.h"
+#include "lldb/Utility/Flags.h"
+
 #include "lldb/Core/Log.h"
 #include "lldb/Core/Module.h"
 #include "lldb/Core/PluginManager.h"

Modified: lldb/trunk/source/Symbol/FuncUnwinders.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/FuncUnwinders.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/FuncUnwinders.cpp (original)
+++ lldb/trunk/source/Symbol/FuncUnwinders.cpp Tue Feb 14 13:06:07 2017
@@ -19,10 +19,10 @@
 #include "lldb/Target/ABI.h"
 #include "lldb/Target/ExecutionContext.h"
 #include "lldb/Target/Process.h"
+#include "lldb/Target/RegisterNumber.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
 #include "lldb/Target/UnwindAssembly.h"
-#include "lldb/Utility/RegisterNumber.h"
 
 using namespace lldb;
 using namespace lldb_private;

Modified: lldb/trunk/source/Target/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/CMakeLists.txt?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Target/CMakeLists.txt (original)
+++ lldb/trunk/source/Target/CMakeLists.txt Tue Feb 14 13:06:07 2017
@@ -13,6 +13,7 @@ add_lldb_library(lldbTarget
   LanguageRuntime.cpp
   Memory.cpp
   MemoryHistory.cpp
+  ModuleCache.cpp
   ObjCLanguageRuntime.cpp
   OperatingSystem.cpp
   PathMappingList.cpp
@@ -24,6 +25,7 @@ add_lldb_library(lldbTarget
   QueueItem.cpp
   QueueList.cpp
   RegisterContext.cpp
+  RegisterNumber.cpp
   SectionLoadHistory.cpp
   SectionLoadList.cpp
   StackFrame.cpp

Added: lldb/trunk/source/Target/ModuleCache.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/ModuleCache.cpp?rev=295088&view=auto
==============================================================================
--- lldb/trunk/source/Target/ModuleCache.cpp (added)
+++ lldb/trunk/source/Target/ModuleCache.cpp Tue Feb 14 13:06:07 2017
@@ -0,0 +1,336 @@
+//===--------------------- ModuleCache.cpp ----------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "lldb/Target/ModuleCache.h"
+
+#include "lldb/Core/Log.h"
+#include "lldb/Core/Module.h"
+#include "lldb/Core/ModuleList.h"
+#include "lldb/Core/ModuleSpec.h"
+#include "lldb/Host/File.h"
+#include "lldb/Host/FileSystem.h"
+#include "lldb/Host/LockFile.h"
+#include "llvm/Support/FileSystem.h"
+#include "llvm/Support/FileUtilities.h"
+
+#include <assert.h>
+
+#include <cstdio>
+
+using namespace lldb;
+using namespace lldb_private;
+
+namespace {
+
+const char *kModulesSubdir = ".cache";
+const char *kLockDirName = ".lock";
+const char *kTempFileName = ".temp";
+const char *kTempSymFileName = ".symtemp";
+const char *kSymFileExtension = ".sym";
+const char *kFSIllegalChars = "\\/:*?\"<>|";
+
+std::string GetEscapedHostname(const char *hostname) {
+  if (hostname == nullptr)
+    hostname = "unknown";
+  std::string result(hostname);
+  size_t size = result.size();
+  for (size_t i = 0; i < size; ++i) {
+    if ((result[i] >= 1 && result[i] <= 31) ||
+        strchr(kFSIllegalChars, result[i]) != nullptr)
+      result[i] = '_';
+  }
+  return result;
+}
+
+class ModuleLock {
+private:
+  File m_file;
+  std::unique_ptr<lldb_private::LockFile> m_lock;
+  FileSpec m_file_spec;
+
+public:
+  ModuleLock(const FileSpec &root_dir_spec, const UUID &uuid, Error &error);
+  void Delete();
+};
+
+FileSpec JoinPath(const FileSpec &path1, const char *path2) {
+  FileSpec result_spec(path1);
+  result_spec.AppendPathComponent(path2);
+  return result_spec;
+}
+
+Error MakeDirectory(const FileSpec &dir_path) {
+  if (dir_path.Exists()) {
+    if (!dir_path.IsDirectory())
+      return Error("Invalid existing path");
+
+    return Error();
+  }
+
+  return FileSystem::MakeDirectory(dir_path, eFilePermissionsDirectoryDefault);
+}
+
+FileSpec GetModuleDirectory(const FileSpec &root_dir_spec, const UUID &uuid) {
+  const auto modules_dir_spec = JoinPath(root_dir_spec, kModulesSubdir);
+  return JoinPath(modules_dir_spec, uuid.GetAsString().c_str());
+}
+
+FileSpec GetSymbolFileSpec(const FileSpec &module_file_spec) {
+  return FileSpec(module_file_spec.GetPath() + kSymFileExtension, false);
+}
+
+void DeleteExistingModule(const FileSpec &root_dir_spec,
+                          const FileSpec &sysroot_module_path_spec) {
+  Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_MODULES));
+  UUID module_uuid;
+  {
+    auto module_sp =
+        std::make_shared<Module>(ModuleSpec(sysroot_module_path_spec));
+    module_uuid = module_sp->GetUUID();
+  }
+
+  if (!module_uuid.IsValid())
+    return;
+
+  Error error;
+  ModuleLock lock(root_dir_spec, module_uuid, error);
+  if (error.Fail()) {
+    if (log)
+      log->Printf("Failed to lock module %s: %s",
+                  module_uuid.GetAsString().c_str(), error.AsCString());
+  }
+
+  auto link_count = FileSystem::GetHardlinkCount(sysroot_module_path_spec);
+  if (link_count == -1)
+    return;
+
+  if (link_count > 2) // module is referred by other hosts.
+    return;
+
+  const auto module_spec_dir = GetModuleDirectory(root_dir_spec, module_uuid);
+  FileSystem::DeleteDirectory(module_spec_dir, true);
+  lock.Delete();
+}
+
+void DecrementRefExistingModule(const FileSpec &root_dir_spec,
+                                const FileSpec &sysroot_module_path_spec) {
+  // Remove $platform/.cache/$uuid folder if nobody else references it.
+  DeleteExistingModule(root_dir_spec, sysroot_module_path_spec);
+
+  // Remove sysroot link.
+  FileSystem::Unlink(sysroot_module_path_spec);
+
+  FileSpec symfile_spec = GetSymbolFileSpec(sysroot_module_path_spec);
+  if (symfile_spec.Exists()) // delete module's symbol file if exists.
+    FileSystem::Unlink(symfile_spec);
+}
+
+Error CreateHostSysRootModuleLink(const FileSpec &root_dir_spec,
+                                  const char *hostname,
+                                  const FileSpec &platform_module_spec,
+                                  const FileSpec &local_module_spec,
+                                  bool delete_existing) {
+  const auto sysroot_module_path_spec =
+      JoinPath(JoinPath(root_dir_spec, hostname),
+               platform_module_spec.GetPath().c_str());
+  if (sysroot_module_path_spec.Exists()) {
+    if (!delete_existing)
+      return Error();
+
+    DecrementRefExistingModule(root_dir_spec, sysroot_module_path_spec);
+  }
+
+  const auto error = MakeDirectory(
+      FileSpec(sysroot_module_path_spec.GetDirectory().AsCString(), false));
+  if (error.Fail())
+    return error;
+
+  return FileSystem::Hardlink(sysroot_module_path_spec, local_module_spec);
+}
+
+} // namespace
+
+ModuleLock::ModuleLock(const FileSpec &root_dir_spec, const UUID &uuid,
+                       Error &error) {
+  const auto lock_dir_spec = JoinPath(root_dir_spec, kLockDirName);
+  error = MakeDirectory(lock_dir_spec);
+  if (error.Fail())
+    return;
+
+  m_file_spec = JoinPath(lock_dir_spec, uuid.GetAsString().c_str());
+  m_file.Open(m_file_spec.GetCString(), File::eOpenOptionWrite |
+                                            File::eOpenOptionCanCreate |
+                                            File::eOpenOptionCloseOnExec);
+  if (!m_file) {
+    error.SetErrorToErrno();
+    return;
+  }
+
+  m_lock.reset(new lldb_private::LockFile(m_file.GetDescriptor()));
+  error = m_lock->WriteLock(0, 1);
+  if (error.Fail())
+    error.SetErrorStringWithFormat("Failed to lock file: %s",
+                                   error.AsCString());
+}
+
+void ModuleLock::Delete() {
+  if (!m_file)
+    return;
+
+  m_file.Close();
+  FileSystem::Unlink(m_file_spec);
+}
+
+/////////////////////////////////////////////////////////////////////////
+
+Error ModuleCache::Put(const FileSpec &root_dir_spec, const char *hostname,
+                       const ModuleSpec &module_spec, const FileSpec &tmp_file,
+                       const FileSpec &target_file) {
+  const auto module_spec_dir =
+      GetModuleDirectory(root_dir_spec, module_spec.GetUUID());
+  const auto module_file_path =
+      JoinPath(module_spec_dir, target_file.GetFilename().AsCString());
+
+  const auto tmp_file_path = tmp_file.GetPath();
+  const auto err_code =
+      llvm::sys::fs::rename(tmp_file_path, module_file_path.GetPath());
+  if (err_code)
+    return Error("Failed to rename file %s to %s: %s", tmp_file_path.c_str(),
+                 module_file_path.GetPath().c_str(),
+                 err_code.message().c_str());
+
+  const auto error = CreateHostSysRootModuleLink(
+      root_dir_spec, hostname, target_file, module_file_path, true);
+  if (error.Fail())
+    return Error("Failed to create link to %s: %s",
+                 module_file_path.GetPath().c_str(), error.AsCString());
+  return Error();
+}
+
+Error ModuleCache::Get(const FileSpec &root_dir_spec, const char *hostname,
+                       const ModuleSpec &module_spec,
+                       ModuleSP &cached_module_sp, bool *did_create_ptr) {
+  const auto find_it =
+      m_loaded_modules.find(module_spec.GetUUID().GetAsString());
+  if (find_it != m_loaded_modules.end()) {
+    cached_module_sp = (*find_it).second.lock();
+    if (cached_module_sp)
+      return Error();
+    m_loaded_modules.erase(find_it);
+  }
+
+  const auto module_spec_dir =
+      GetModuleDirectory(root_dir_spec, module_spec.GetUUID());
+  const auto module_file_path = JoinPath(
+      module_spec_dir, module_spec.GetFileSpec().GetFilename().AsCString());
+
+  if (!module_file_path.Exists())
+    return Error("Module %s not found", module_file_path.GetPath().c_str());
+  if (module_file_path.GetByteSize() != module_spec.GetObjectSize())
+    return Error("Module %s has invalid file size",
+                 module_file_path.GetPath().c_str());
+
+  // We may have already cached module but downloaded from an another host - in
+  // this case let's create a link to it.
+  auto error = CreateHostSysRootModuleLink(root_dir_spec, hostname,
+                                           module_spec.GetFileSpec(),
+                                           module_file_path, false);
+  if (error.Fail())
+    return Error("Failed to create link to %s: %s",
+                 module_file_path.GetPath().c_str(), error.AsCString());
+
+  auto cached_module_spec(module_spec);
+  cached_module_spec.GetUUID().Clear(); // Clear UUID since it may contain md5
+                                        // content hash instead of real UUID.
+  cached_module_spec.GetFileSpec() = module_file_path;
+  cached_module_spec.GetPlatformFileSpec() = module_spec.GetFileSpec();
+
+  error = ModuleList::GetSharedModule(cached_module_spec, cached_module_sp,
+                                      nullptr, nullptr, did_create_ptr, false);
+  if (error.Fail())
+    return error;
+
+  FileSpec symfile_spec = GetSymbolFileSpec(cached_module_sp->GetFileSpec());
+  if (symfile_spec.Exists())
+    cached_module_sp->SetSymbolFileFileSpec(symfile_spec);
+
+  m_loaded_modules.insert(
+      std::make_pair(module_spec.GetUUID().GetAsString(), cached_module_sp));
+
+  return Error();
+}
+
+Error ModuleCache::GetAndPut(const FileSpec &root_dir_spec,
+                             const char *hostname,
+                             const ModuleSpec &module_spec,
+                             const ModuleDownloader &module_downloader,
+                             const SymfileDownloader &symfile_downloader,
+                             lldb::ModuleSP &cached_module_sp,
+                             bool *did_create_ptr) {
+  const auto module_spec_dir =
+      GetModuleDirectory(root_dir_spec, module_spec.GetUUID());
+  auto error = MakeDirectory(module_spec_dir);
+  if (error.Fail())
+    return error;
+
+  ModuleLock lock(root_dir_spec, module_spec.GetUUID(), error);
+  if (error.Fail())
+    return Error("Failed to lock module %s: %s",
+                 module_spec.GetUUID().GetAsString().c_str(),
+                 error.AsCString());
+
+  const auto escaped_hostname(GetEscapedHostname(hostname));
+  // Check local cache for a module.
+  error = Get(root_dir_spec, escaped_hostname.c_str(), module_spec,
+              cached_module_sp, did_create_ptr);
+  if (error.Success())
+    return error;
+
+  const auto tmp_download_file_spec = JoinPath(module_spec_dir, kTempFileName);
+  error = module_downloader(module_spec, tmp_download_file_spec);
+  llvm::FileRemover tmp_file_remover(tmp_download_file_spec.GetPath());
+  if (error.Fail())
+    return Error("Failed to download module: %s", error.AsCString());
+
+  // Put downloaded file into local module cache.
+  error = Put(root_dir_spec, escaped_hostname.c_str(), module_spec,
+              tmp_download_file_spec, module_spec.GetFileSpec());
+  if (error.Fail())
+    return Error("Failed to put module into cache: %s", error.AsCString());
+
+  tmp_file_remover.releaseFile();
+  error = Get(root_dir_spec, escaped_hostname.c_str(), module_spec,
+              cached_module_sp, did_create_ptr);
+  if (error.Fail())
+    return error;
+
+  // Fetching a symbol file for the module
+  const auto tmp_download_sym_file_spec =
+      JoinPath(module_spec_dir, kTempSymFileName);
+  error = symfile_downloader(cached_module_sp, tmp_download_sym_file_spec);
+  llvm::FileRemover tmp_symfile_remover(tmp_download_sym_file_spec.GetPath());
+  if (error.Fail())
+    // Failed to download a symfile but fetching the module was successful. The
+    // module might
+    // contain the necessary symbols and the debugging is also possible without
+    // a symfile.
+    return Error();
+
+  error = Put(root_dir_spec, escaped_hostname.c_str(), module_spec,
+              tmp_download_sym_file_spec,
+              GetSymbolFileSpec(module_spec.GetFileSpec()));
+  if (error.Fail())
+    return Error("Failed to put symbol file into cache: %s", error.AsCString());
+
+  tmp_symfile_remover.releaseFile();
+
+  FileSpec symfile_spec = GetSymbolFileSpec(cached_module_sp->GetFileSpec());
+  cached_module_sp->SetSymbolFileFileSpec(symfile_spec);
+  return Error();
+}

Modified: lldb/trunk/source/Target/Platform.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Platform.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Target/Platform.cpp (original)
+++ lldb/trunk/source/Target/Platform.cpp Tue Feb 14 13:06:07 2017
@@ -18,7 +18,6 @@
 #include "llvm/Support/Path.h"
 
 // Project includes
-#include "Utility/ModuleCache.h"
 #include "lldb/Breakpoint/BreakpointIDList.h"
 #include "lldb/Breakpoint/BreakpointLocation.h"
 #include "lldb/Core/DataBufferHeap.h"
@@ -36,6 +35,7 @@
 #include "lldb/Interpreter/OptionValueProperties.h"
 #include "lldb/Interpreter/Property.h"
 #include "lldb/Symbol/ObjectFile.h"
+#include "lldb/Target/ModuleCache.h"
 #include "lldb/Target/Platform.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/Target.h"

Modified: lldb/trunk/source/Target/RegisterContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/RegisterContext.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Target/RegisterContext.cpp (original)
+++ lldb/trunk/source/Target/RegisterContext.cpp Tue Feb 14 13:06:07 2017
@@ -18,12 +18,12 @@
 #include "lldb/Core/Scalar.h"
 #include "lldb/Core/Value.h"
 #include "lldb/Expression/DWARFExpression.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Target/ExecutionContext.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/StackFrame.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
+#include "lldb/Utility/Endian.h"
 
 using namespace lldb;
 using namespace lldb_private;

Added: lldb/trunk/source/Target/RegisterNumber.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/RegisterNumber.cpp?rev=295088&view=auto
==============================================================================
--- lldb/trunk/source/Target/RegisterNumber.cpp (added)
+++ lldb/trunk/source/Target/RegisterNumber.cpp Tue Feb 14 13:06:07 2017
@@ -0,0 +1,119 @@
+//===--------------------- RegisterNumber.cpp -------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "lldb/Target/RegisterNumber.h"
+#include "lldb/Target/RegisterContext.h"
+#include "lldb/Target/Thread.h"
+
+using namespace lldb_private;
+
+RegisterNumber::RegisterNumber(lldb_private::Thread &thread,
+                               lldb::RegisterKind kind, uint32_t num)
+    : m_reg_ctx_sp(thread.GetRegisterContext()), m_regnum(num), m_kind(kind),
+      m_kind_regnum_map(), m_name("") {
+  if (m_reg_ctx_sp.get()) {
+    const lldb_private::RegisterInfo *reginfo =
+        m_reg_ctx_sp->GetRegisterInfoAtIndex(
+            GetAsKind(lldb::eRegisterKindLLDB));
+    if (reginfo && reginfo->name) {
+      m_name = reginfo->name;
+    }
+  }
+}
+
+RegisterNumber::RegisterNumber()
+    : m_reg_ctx_sp(), m_regnum(LLDB_INVALID_REGNUM),
+      m_kind(lldb::kNumRegisterKinds), m_kind_regnum_map(), m_name(nullptr) {}
+
+void RegisterNumber::init(lldb_private::Thread &thread, lldb::RegisterKind kind,
+                          uint32_t num) {
+  m_reg_ctx_sp = thread.GetRegisterContext();
+  m_regnum = num;
+  m_kind = kind;
+  if (m_reg_ctx_sp.get()) {
+    const lldb_private::RegisterInfo *reginfo =
+        m_reg_ctx_sp->GetRegisterInfoAtIndex(
+            GetAsKind(lldb::eRegisterKindLLDB));
+    if (reginfo && reginfo->name) {
+      m_name = reginfo->name;
+    }
+  }
+}
+
+const RegisterNumber &RegisterNumber::operator=(const RegisterNumber &rhs) {
+  m_reg_ctx_sp = rhs.m_reg_ctx_sp;
+  m_regnum = rhs.m_regnum;
+  m_kind = rhs.m_kind;
+  for (auto it : rhs.m_kind_regnum_map)
+    m_kind_regnum_map[it.first] = it.second;
+  m_name = rhs.m_name;
+  return *this;
+}
+
+bool RegisterNumber::operator==(RegisterNumber &rhs) {
+  if (IsValid() != rhs.IsValid())
+    return false;
+
+  if (m_kind == rhs.m_kind) {
+    if (m_regnum == rhs.m_regnum)
+      return true;
+    else
+      return false;
+  }
+
+  uint32_t rhs_regnum = rhs.GetAsKind(m_kind);
+  if (rhs_regnum != LLDB_INVALID_REGNUM) {
+    if (m_regnum == rhs_regnum)
+      return true;
+    else
+      return false;
+  }
+  uint32_t lhs_regnum = GetAsKind(rhs.m_kind);
+  {
+    if (lhs_regnum == rhs.m_regnum)
+      return true;
+    else
+      return false;
+  }
+  return false;
+}
+
+bool RegisterNumber::operator!=(RegisterNumber &rhs) { return !(*this == rhs); }
+
+bool RegisterNumber::IsValid() const {
+  return m_reg_ctx_sp.get() && m_kind != lldb::kNumRegisterKinds &&
+         m_regnum != LLDB_INVALID_REGNUM;
+}
+
+uint32_t RegisterNumber::GetAsKind(lldb::RegisterKind kind) {
+  if (m_regnum == LLDB_INVALID_REGNUM)
+    return LLDB_INVALID_REGNUM;
+
+  if (kind == m_kind)
+    return m_regnum;
+
+  Collection::iterator iter = m_kind_regnum_map.find(kind);
+  if (iter != m_kind_regnum_map.end()) {
+    return iter->second;
+  }
+  uint32_t output_regnum = LLDB_INVALID_REGNUM;
+  if (m_reg_ctx_sp &&
+      m_reg_ctx_sp->ConvertBetweenRegisterKinds(m_kind, m_regnum, kind,
+                                                output_regnum) &&
+      output_regnum != LLDB_INVALID_REGNUM) {
+    m_kind_regnum_map[kind] = output_regnum;
+  }
+  return output_regnum;
+}
+
+uint32_t RegisterNumber::GetRegisterNumber() const { return m_regnum; }
+
+lldb::RegisterKind RegisterNumber::GetRegisterKind() const { return m_kind; }
+
+const char *RegisterNumber::GetName() { return m_name; }

Modified: lldb/trunk/source/Utility/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/CMakeLists.txt?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Utility/CMakeLists.txt (original)
+++ lldb/trunk/source/Utility/CMakeLists.txt Tue Feb 14 13:06:07 2017
@@ -3,11 +3,9 @@ add_lldb_library(lldbUtility
   Error.cpp
   JSON.cpp
   LLDBAssert.cpp
-  ModuleCache.cpp
   NameMatches.cpp
   PseudoTerminal.cpp
   Range.cpp
-  RegisterNumber.cpp
   RegularExpression.cpp
   SelectHelper.cpp
   SharingPtr.cpp
@@ -20,9 +18,7 @@ add_lldb_library(lldbUtility
   UriParser.cpp
 
   LINK_LIBS
-    lldbCore
     lldbHost
-    lldbTarget
 
   LINK_COMPONENTS
     Support

Modified: lldb/trunk/source/Utility/Error.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/Error.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Utility/Error.cpp (original)
+++ lldb/trunk/source/Utility/Error.cpp Tue Feb 14 13:06:07 2017
@@ -20,7 +20,6 @@
 #include "llvm/ADT/SmallVector.h"
 
 // Project includes
-#include "lldb/Core/Log.h"
 #include "lldb/Host/PosixApi.h"
 #include "lldb/Utility/Error.h"
 

Removed: lldb/trunk/source/Utility/ModuleCache.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ModuleCache.cpp?rev=295087&view=auto
==============================================================================
--- lldb/trunk/source/Utility/ModuleCache.cpp (original)
+++ lldb/trunk/source/Utility/ModuleCache.cpp (removed)
@@ -1,336 +0,0 @@
-//===--------------------- ModuleCache.cpp ----------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "ModuleCache.h"
-
-#include "lldb/Core/Log.h"
-#include "lldb/Core/Module.h"
-#include "lldb/Core/ModuleList.h"
-#include "lldb/Core/ModuleSpec.h"
-#include "lldb/Host/File.h"
-#include "lldb/Host/FileSystem.h"
-#include "lldb/Host/LockFile.h"
-#include "llvm/Support/FileSystem.h"
-#include "llvm/Support/FileUtilities.h"
-
-#include <assert.h>
-
-#include <cstdio>
-
-using namespace lldb;
-using namespace lldb_private;
-
-namespace {
-
-const char *kModulesSubdir = ".cache";
-const char *kLockDirName = ".lock";
-const char *kTempFileName = ".temp";
-const char *kTempSymFileName = ".symtemp";
-const char *kSymFileExtension = ".sym";
-const char *kFSIllegalChars = "\\/:*?\"<>|";
-
-std::string GetEscapedHostname(const char *hostname) {
-  if (hostname == nullptr)
-    hostname = "unknown";
-  std::string result(hostname);
-  size_t size = result.size();
-  for (size_t i = 0; i < size; ++i) {
-    if ((result[i] >= 1 && result[i] <= 31) ||
-        strchr(kFSIllegalChars, result[i]) != nullptr)
-      result[i] = '_';
-  }
-  return result;
-}
-
-class ModuleLock {
-private:
-  File m_file;
-  std::unique_ptr<lldb_private::LockFile> m_lock;
-  FileSpec m_file_spec;
-
-public:
-  ModuleLock(const FileSpec &root_dir_spec, const UUID &uuid, Error &error);
-  void Delete();
-};
-
-FileSpec JoinPath(const FileSpec &path1, const char *path2) {
-  FileSpec result_spec(path1);
-  result_spec.AppendPathComponent(path2);
-  return result_spec;
-}
-
-Error MakeDirectory(const FileSpec &dir_path) {
-  if (dir_path.Exists()) {
-    if (!dir_path.IsDirectory())
-      return Error("Invalid existing path");
-
-    return Error();
-  }
-
-  return FileSystem::MakeDirectory(dir_path, eFilePermissionsDirectoryDefault);
-}
-
-FileSpec GetModuleDirectory(const FileSpec &root_dir_spec, const UUID &uuid) {
-  const auto modules_dir_spec = JoinPath(root_dir_spec, kModulesSubdir);
-  return JoinPath(modules_dir_spec, uuid.GetAsString().c_str());
-}
-
-FileSpec GetSymbolFileSpec(const FileSpec &module_file_spec) {
-  return FileSpec(module_file_spec.GetPath() + kSymFileExtension, false);
-}
-
-void DeleteExistingModule(const FileSpec &root_dir_spec,
-                          const FileSpec &sysroot_module_path_spec) {
-  Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_MODULES));
-  UUID module_uuid;
-  {
-    auto module_sp =
-        std::make_shared<Module>(ModuleSpec(sysroot_module_path_spec));
-    module_uuid = module_sp->GetUUID();
-  }
-
-  if (!module_uuid.IsValid())
-    return;
-
-  Error error;
-  ModuleLock lock(root_dir_spec, module_uuid, error);
-  if (error.Fail()) {
-    if (log)
-      log->Printf("Failed to lock module %s: %s",
-                  module_uuid.GetAsString().c_str(), error.AsCString());
-  }
-
-  auto link_count = FileSystem::GetHardlinkCount(sysroot_module_path_spec);
-  if (link_count == -1)
-    return;
-
-  if (link_count > 2) // module is referred by other hosts.
-    return;
-
-  const auto module_spec_dir = GetModuleDirectory(root_dir_spec, module_uuid);
-  FileSystem::DeleteDirectory(module_spec_dir, true);
-  lock.Delete();
-}
-
-void DecrementRefExistingModule(const FileSpec &root_dir_spec,
-                                const FileSpec &sysroot_module_path_spec) {
-  // Remove $platform/.cache/$uuid folder if nobody else references it.
-  DeleteExistingModule(root_dir_spec, sysroot_module_path_spec);
-
-  // Remove sysroot link.
-  FileSystem::Unlink(sysroot_module_path_spec);
-
-  FileSpec symfile_spec = GetSymbolFileSpec(sysroot_module_path_spec);
-  if (symfile_spec.Exists()) // delete module's symbol file if exists.
-    FileSystem::Unlink(symfile_spec);
-}
-
-Error CreateHostSysRootModuleLink(const FileSpec &root_dir_spec,
-                                  const char *hostname,
-                                  const FileSpec &platform_module_spec,
-                                  const FileSpec &local_module_spec,
-                                  bool delete_existing) {
-  const auto sysroot_module_path_spec =
-      JoinPath(JoinPath(root_dir_spec, hostname),
-               platform_module_spec.GetPath().c_str());
-  if (sysroot_module_path_spec.Exists()) {
-    if (!delete_existing)
-      return Error();
-
-    DecrementRefExistingModule(root_dir_spec, sysroot_module_path_spec);
-  }
-
-  const auto error = MakeDirectory(
-      FileSpec(sysroot_module_path_spec.GetDirectory().AsCString(), false));
-  if (error.Fail())
-    return error;
-
-  return FileSystem::Hardlink(sysroot_module_path_spec, local_module_spec);
-}
-
-} // namespace
-
-ModuleLock::ModuleLock(const FileSpec &root_dir_spec, const UUID &uuid,
-                       Error &error) {
-  const auto lock_dir_spec = JoinPath(root_dir_spec, kLockDirName);
-  error = MakeDirectory(lock_dir_spec);
-  if (error.Fail())
-    return;
-
-  m_file_spec = JoinPath(lock_dir_spec, uuid.GetAsString().c_str());
-  m_file.Open(m_file_spec.GetCString(), File::eOpenOptionWrite |
-                                            File::eOpenOptionCanCreate |
-                                            File::eOpenOptionCloseOnExec);
-  if (!m_file) {
-    error.SetErrorToErrno();
-    return;
-  }
-
-  m_lock.reset(new lldb_private::LockFile(m_file.GetDescriptor()));
-  error = m_lock->WriteLock(0, 1);
-  if (error.Fail())
-    error.SetErrorStringWithFormat("Failed to lock file: %s",
-                                   error.AsCString());
-}
-
-void ModuleLock::Delete() {
-  if (!m_file)
-    return;
-
-  m_file.Close();
-  FileSystem::Unlink(m_file_spec);
-}
-
-/////////////////////////////////////////////////////////////////////////
-
-Error ModuleCache::Put(const FileSpec &root_dir_spec, const char *hostname,
-                       const ModuleSpec &module_spec, const FileSpec &tmp_file,
-                       const FileSpec &target_file) {
-  const auto module_spec_dir =
-      GetModuleDirectory(root_dir_spec, module_spec.GetUUID());
-  const auto module_file_path =
-      JoinPath(module_spec_dir, target_file.GetFilename().AsCString());
-
-  const auto tmp_file_path = tmp_file.GetPath();
-  const auto err_code =
-      llvm::sys::fs::rename(tmp_file_path, module_file_path.GetPath());
-  if (err_code)
-    return Error("Failed to rename file %s to %s: %s", tmp_file_path.c_str(),
-                 module_file_path.GetPath().c_str(),
-                 err_code.message().c_str());
-
-  const auto error = CreateHostSysRootModuleLink(
-      root_dir_spec, hostname, target_file, module_file_path, true);
-  if (error.Fail())
-    return Error("Failed to create link to %s: %s",
-                 module_file_path.GetPath().c_str(), error.AsCString());
-  return Error();
-}
-
-Error ModuleCache::Get(const FileSpec &root_dir_spec, const char *hostname,
-                       const ModuleSpec &module_spec,
-                       ModuleSP &cached_module_sp, bool *did_create_ptr) {
-  const auto find_it =
-      m_loaded_modules.find(module_spec.GetUUID().GetAsString());
-  if (find_it != m_loaded_modules.end()) {
-    cached_module_sp = (*find_it).second.lock();
-    if (cached_module_sp)
-      return Error();
-    m_loaded_modules.erase(find_it);
-  }
-
-  const auto module_spec_dir =
-      GetModuleDirectory(root_dir_spec, module_spec.GetUUID());
-  const auto module_file_path = JoinPath(
-      module_spec_dir, module_spec.GetFileSpec().GetFilename().AsCString());
-
-  if (!module_file_path.Exists())
-    return Error("Module %s not found", module_file_path.GetPath().c_str());
-  if (module_file_path.GetByteSize() != module_spec.GetObjectSize())
-    return Error("Module %s has invalid file size",
-                 module_file_path.GetPath().c_str());
-
-  // We may have already cached module but downloaded from an another host - in
-  // this case let's create a link to it.
-  auto error = CreateHostSysRootModuleLink(root_dir_spec, hostname,
-                                           module_spec.GetFileSpec(),
-                                           module_file_path, false);
-  if (error.Fail())
-    return Error("Failed to create link to %s: %s",
-                 module_file_path.GetPath().c_str(), error.AsCString());
-
-  auto cached_module_spec(module_spec);
-  cached_module_spec.GetUUID().Clear(); // Clear UUID since it may contain md5
-                                        // content hash instead of real UUID.
-  cached_module_spec.GetFileSpec() = module_file_path;
-  cached_module_spec.GetPlatformFileSpec() = module_spec.GetFileSpec();
-
-  error = ModuleList::GetSharedModule(cached_module_spec, cached_module_sp,
-                                      nullptr, nullptr, did_create_ptr, false);
-  if (error.Fail())
-    return error;
-
-  FileSpec symfile_spec = GetSymbolFileSpec(cached_module_sp->GetFileSpec());
-  if (symfile_spec.Exists())
-    cached_module_sp->SetSymbolFileFileSpec(symfile_spec);
-
-  m_loaded_modules.insert(
-      std::make_pair(module_spec.GetUUID().GetAsString(), cached_module_sp));
-
-  return Error();
-}
-
-Error ModuleCache::GetAndPut(const FileSpec &root_dir_spec,
-                             const char *hostname,
-                             const ModuleSpec &module_spec,
-                             const ModuleDownloader &module_downloader,
-                             const SymfileDownloader &symfile_downloader,
-                             lldb::ModuleSP &cached_module_sp,
-                             bool *did_create_ptr) {
-  const auto module_spec_dir =
-      GetModuleDirectory(root_dir_spec, module_spec.GetUUID());
-  auto error = MakeDirectory(module_spec_dir);
-  if (error.Fail())
-    return error;
-
-  ModuleLock lock(root_dir_spec, module_spec.GetUUID(), error);
-  if (error.Fail())
-    return Error("Failed to lock module %s: %s",
-                 module_spec.GetUUID().GetAsString().c_str(),
-                 error.AsCString());
-
-  const auto escaped_hostname(GetEscapedHostname(hostname));
-  // Check local cache for a module.
-  error = Get(root_dir_spec, escaped_hostname.c_str(), module_spec,
-              cached_module_sp, did_create_ptr);
-  if (error.Success())
-    return error;
-
-  const auto tmp_download_file_spec = JoinPath(module_spec_dir, kTempFileName);
-  error = module_downloader(module_spec, tmp_download_file_spec);
-  llvm::FileRemover tmp_file_remover(tmp_download_file_spec.GetPath());
-  if (error.Fail())
-    return Error("Failed to download module: %s", error.AsCString());
-
-  // Put downloaded file into local module cache.
-  error = Put(root_dir_spec, escaped_hostname.c_str(), module_spec,
-              tmp_download_file_spec, module_spec.GetFileSpec());
-  if (error.Fail())
-    return Error("Failed to put module into cache: %s", error.AsCString());
-
-  tmp_file_remover.releaseFile();
-  error = Get(root_dir_spec, escaped_hostname.c_str(), module_spec,
-              cached_module_sp, did_create_ptr);
-  if (error.Fail())
-    return error;
-
-  // Fetching a symbol file for the module
-  const auto tmp_download_sym_file_spec =
-      JoinPath(module_spec_dir, kTempSymFileName);
-  error = symfile_downloader(cached_module_sp, tmp_download_sym_file_spec);
-  llvm::FileRemover tmp_symfile_remover(tmp_download_sym_file_spec.GetPath());
-  if (error.Fail())
-    // Failed to download a symfile but fetching the module was successful. The
-    // module might
-    // contain the necessary symbols and the debugging is also possible without
-    // a symfile.
-    return Error();
-
-  error = Put(root_dir_spec, escaped_hostname.c_str(), module_spec,
-              tmp_download_sym_file_spec,
-              GetSymbolFileSpec(module_spec.GetFileSpec()));
-  if (error.Fail())
-    return Error("Failed to put symbol file into cache: %s", error.AsCString());
-
-  tmp_symfile_remover.releaseFile();
-
-  FileSpec symfile_spec = GetSymbolFileSpec(cached_module_sp->GetFileSpec());
-  cached_module_sp->SetSymbolFileFileSpec(symfile_spec);
-  return Error();
-}

Removed: lldb/trunk/source/Utility/ModuleCache.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ModuleCache.h?rev=295087&view=auto
==============================================================================
--- lldb/trunk/source/Utility/ModuleCache.h (original)
+++ lldb/trunk/source/Utility/ModuleCache.h (removed)
@@ -1,76 +0,0 @@
-//===-- ModuleCache.h -------------------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef utility_ModuleCache_h_
-#define utility_ModuleCache_h_
-
-#include "lldb/lldb-forward.h"
-#include "lldb/lldb-types.h"
-
-#include "lldb/Host/File.h"
-#include "lldb/Host/FileSpec.h"
-#include "lldb/Utility/Error.h"
-
-#include <functional>
-#include <string>
-#include <unordered_map>
-
-namespace lldb_private {
-
-class Module;
-class UUID;
-
-//----------------------------------------------------------------------
-/// @class ModuleCache ModuleCache.h "Utility/ModuleCache.h"
-/// @brief A module cache class.
-///
-/// Caches locally modules that are downloaded from remote targets.
-/// Each cached module maintains 2 views:
-///  - UUID view:
-///  /${CACHE_ROOT}/${PLATFORM_NAME}/.cache/${UUID}/${MODULE_FILENAME}
-///  - Sysroot view:
-///  /${CACHE_ROOT}/${PLATFORM_NAME}/${HOSTNAME}/${MODULE_FULL_FILEPATH}
-///
-/// UUID views stores a real module file, whereas Sysroot view holds a symbolic
-/// link to UUID-view file.
-///
-/// Example:
-/// UUID view   :
-/// /tmp/lldb/remote-linux/.cache/30C94DC6-6A1F-E951-80C3-D68D2B89E576-D5AE213C/libc.so.6
-/// Sysroot view: /tmp/lldb/remote-linux/ubuntu/lib/x86_64-linux-gnu/libc.so.6
-//----------------------------------------------------------------------
-
-class ModuleCache {
-public:
-  using ModuleDownloader =
-      std::function<Error(const ModuleSpec &, const FileSpec &)>;
-  using SymfileDownloader =
-      std::function<Error(const lldb::ModuleSP &, const FileSpec &)>;
-
-  Error GetAndPut(const FileSpec &root_dir_spec, const char *hostname,
-                  const ModuleSpec &module_spec,
-                  const ModuleDownloader &module_downloader,
-                  const SymfileDownloader &symfile_downloader,
-                  lldb::ModuleSP &cached_module_sp, bool *did_create_ptr);
-
-private:
-  Error Put(const FileSpec &root_dir_spec, const char *hostname,
-            const ModuleSpec &module_spec, const FileSpec &tmp_file,
-            const FileSpec &target_file);
-
-  Error Get(const FileSpec &root_dir_spec, const char *hostname,
-            const ModuleSpec &module_spec, lldb::ModuleSP &cached_module_sp,
-            bool *did_create_ptr);
-
-  std::unordered_map<std::string, lldb::ModuleWP> m_loaded_modules;
-};
-
-} // namespace lldb_private
-
-#endif // utility_ModuleCache_h_

Removed: lldb/trunk/source/Utility/RegisterNumber.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/RegisterNumber.cpp?rev=295087&view=auto
==============================================================================
--- lldb/trunk/source/Utility/RegisterNumber.cpp (original)
+++ lldb/trunk/source/Utility/RegisterNumber.cpp (removed)
@@ -1,119 +0,0 @@
-//===--------------------- RegisterNumber.cpp -------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "lldb/Utility/RegisterNumber.h"
-#include "lldb/Target/RegisterContext.h"
-#include "lldb/Target/Thread.h"
-
-using namespace lldb_private;
-
-RegisterNumber::RegisterNumber(lldb_private::Thread &thread,
-                               lldb::RegisterKind kind, uint32_t num)
-    : m_reg_ctx_sp(thread.GetRegisterContext()), m_regnum(num), m_kind(kind),
-      m_kind_regnum_map(), m_name("") {
-  if (m_reg_ctx_sp.get()) {
-    const lldb_private::RegisterInfo *reginfo =
-        m_reg_ctx_sp->GetRegisterInfoAtIndex(
-            GetAsKind(lldb::eRegisterKindLLDB));
-    if (reginfo && reginfo->name) {
-      m_name = reginfo->name;
-    }
-  }
-}
-
-RegisterNumber::RegisterNumber()
-    : m_reg_ctx_sp(), m_regnum(LLDB_INVALID_REGNUM),
-      m_kind(lldb::kNumRegisterKinds), m_kind_regnum_map(), m_name(nullptr) {}
-
-void RegisterNumber::init(lldb_private::Thread &thread, lldb::RegisterKind kind,
-                          uint32_t num) {
-  m_reg_ctx_sp = thread.GetRegisterContext();
-  m_regnum = num;
-  m_kind = kind;
-  if (m_reg_ctx_sp.get()) {
-    const lldb_private::RegisterInfo *reginfo =
-        m_reg_ctx_sp->GetRegisterInfoAtIndex(
-            GetAsKind(lldb::eRegisterKindLLDB));
-    if (reginfo && reginfo->name) {
-      m_name = reginfo->name;
-    }
-  }
-}
-
-const RegisterNumber &RegisterNumber::operator=(const RegisterNumber &rhs) {
-  m_reg_ctx_sp = rhs.m_reg_ctx_sp;
-  m_regnum = rhs.m_regnum;
-  m_kind = rhs.m_kind;
-  for (auto it : rhs.m_kind_regnum_map)
-    m_kind_regnum_map[it.first] = it.second;
-  m_name = rhs.m_name;
-  return *this;
-}
-
-bool RegisterNumber::operator==(RegisterNumber &rhs) {
-  if (IsValid() != rhs.IsValid())
-    return false;
-
-  if (m_kind == rhs.m_kind) {
-    if (m_regnum == rhs.m_regnum)
-      return true;
-    else
-      return false;
-  }
-
-  uint32_t rhs_regnum = rhs.GetAsKind(m_kind);
-  if (rhs_regnum != LLDB_INVALID_REGNUM) {
-    if (m_regnum == rhs_regnum)
-      return true;
-    else
-      return false;
-  }
-  uint32_t lhs_regnum = GetAsKind(rhs.m_kind);
-  {
-    if (lhs_regnum == rhs.m_regnum)
-      return true;
-    else
-      return false;
-  }
-  return false;
-}
-
-bool RegisterNumber::operator!=(RegisterNumber &rhs) { return !(*this == rhs); }
-
-bool RegisterNumber::IsValid() const {
-  return m_reg_ctx_sp.get() && m_kind != lldb::kNumRegisterKinds &&
-         m_regnum != LLDB_INVALID_REGNUM;
-}
-
-uint32_t RegisterNumber::GetAsKind(lldb::RegisterKind kind) {
-  if (m_regnum == LLDB_INVALID_REGNUM)
-    return LLDB_INVALID_REGNUM;
-
-  if (kind == m_kind)
-    return m_regnum;
-
-  Collection::iterator iter = m_kind_regnum_map.find(kind);
-  if (iter != m_kind_regnum_map.end()) {
-    return iter->second;
-  }
-  uint32_t output_regnum = LLDB_INVALID_REGNUM;
-  if (m_reg_ctx_sp &&
-      m_reg_ctx_sp->ConvertBetweenRegisterKinds(m_kind, m_regnum, kind,
-                                                output_regnum) &&
-      output_regnum != LLDB_INVALID_REGNUM) {
-    m_kind_regnum_map[kind] = output_regnum;
-  }
-  return output_regnum;
-}
-
-uint32_t RegisterNumber::GetRegisterNumber() const { return m_regnum; }
-
-lldb::RegisterKind RegisterNumber::GetRegisterKind() const { return m_kind; }
-
-const char *RegisterNumber::GetName() { return m_name; }

Modified: lldb/trunk/source/Utility/Stream.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/Stream.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Utility/Stream.cpp (original)
+++ lldb/trunk/source/Utility/Stream.cpp Tue Feb 14 13:06:07 2017
@@ -8,8 +8,8 @@
 //===----------------------------------------------------------------------===//
 
 #include "lldb/Utility/Stream.h"
-#include "lldb/Host/Endian.h"
 #include "lldb/Host/PosixApi.h"
+#include "lldb/Utility/Endian.h"
 #include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>

Modified: lldb/trunk/source/Utility/UriParser.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/UriParser.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/source/Utility/UriParser.cpp (original)
+++ lldb/trunk/source/Utility/UriParser.cpp Tue Feb 14 13:06:07 2017
@@ -8,6 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "lldb/Utility/UriParser.h"
+#include <cstring>
 
 using namespace lldb_private;
 

Modified: lldb/trunk/unittests/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/CMakeLists.txt?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/unittests/CMakeLists.txt (original)
+++ lldb/trunk/unittests/CMakeLists.txt Tue Feb 14 13:06:07 2017
@@ -65,5 +65,6 @@ add_subdirectory(Process)
 add_subdirectory(ScriptInterpreter)
 add_subdirectory(Symbol)
 add_subdirectory(SymbolFile)
+add_subdirectory(Target)
 add_subdirectory(UnwindAssembly)
 add_subdirectory(Utility)

Modified: lldb/trunk/unittests/Core/ScalarTest.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Core/ScalarTest.cpp?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/unittests/Core/ScalarTest.cpp (original)
+++ lldb/trunk/unittests/Core/ScalarTest.cpp Tue Feb 14 13:06:07 2017
@@ -18,7 +18,7 @@
 
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Core/Scalar.h"
-#include "lldb/Host/Endian.h"
+#include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/Utility/StreamString.h"
 

Added: lldb/trunk/unittests/Target/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Target/CMakeLists.txt?rev=295088&view=auto
==============================================================================
--- lldb/trunk/unittests/Target/CMakeLists.txt (added)
+++ lldb/trunk/unittests/Target/CMakeLists.txt Tue Feb 14 13:06:07 2017
@@ -0,0 +1,14 @@
+add_lldb_unittest(TargetTests
+  ModuleCacheTest.cpp
+
+  LINK_LIBS
+      lldbCore
+      lldbHost
+      lldbSymbol
+      lldbUtility
+      lldbPluginObjectFileELF
+    LINK_COMPONENTS
+      Support
+  )
+
+add_unittest_inputs(TargetTests TestModule.so)

Added: lldb/trunk/unittests/Target/Inputs/TestModule.c
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Target/Inputs/TestModule.c?rev=295088&view=auto
==============================================================================
--- lldb/trunk/unittests/Target/Inputs/TestModule.c (added)
+++ lldb/trunk/unittests/Target/Inputs/TestModule.c Tue Feb 14 13:06:07 2017
@@ -0,0 +1,9 @@
+// Compile with $CC -nostdlib -shared TestModule.c -o TestModule.so
+// The actual contents of the test module is not important here. I am using this
+// because it
+// produces an extremely tiny (but still perfectly valid) module.
+
+void boom(void) {
+  char *BOOM;
+  *BOOM = 47;
+}

Added: lldb/trunk/unittests/Target/ModuleCacheTest.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Target/ModuleCacheTest.cpp?rev=295088&view=auto
==============================================================================
--- lldb/trunk/unittests/Target/ModuleCacheTest.cpp (added)
+++ lldb/trunk/unittests/Target/ModuleCacheTest.cpp Tue Feb 14 13:06:07 2017
@@ -0,0 +1,169 @@
+#include "gtest/gtest.h"
+
+#include "llvm/ADT/SmallString.h"
+#include "llvm/Support/FileSystem.h"
+#include "llvm/Support/Path.h"
+
+#include "Plugins/ObjectFile/ELF/ObjectFileELF.h"
+#include "lldb/Core/Module.h"
+#include "lldb/Core/ModuleSpec.h"
+#include "lldb/Host/HostInfo.h"
+#include "lldb/Symbol/SymbolContext.h"
+#include "lldb/Target/ModuleCache.h"
+
+extern const char *TestMainArgv0;
+
+using namespace lldb_private;
+using namespace lldb;
+
+namespace {
+
+class ModuleCacheTest : public testing::Test {
+public:
+  static void SetUpTestCase();
+
+  static void TearDownTestCase();
+
+protected:
+  static FileSpec s_cache_dir;
+  static llvm::SmallString<128> s_test_executable;
+
+  void TryGetAndPut(const FileSpec &cache_dir, const char *hostname,
+                    bool expect_download);
+};
+}
+
+FileSpec ModuleCacheTest::s_cache_dir;
+llvm::SmallString<128> ModuleCacheTest::s_test_executable;
+
+static const char dummy_hostname[] = "dummy_hostname";
+static const char dummy_remote_dir[] = "bin";
+static const char module_name[] = "TestModule.so";
+static const char module_uuid[] =
+    "F4E7E991-9B61-6AD4-0073-561AC3D9FA10-C043A476";
+static const uint32_t uuid_bytes = 20;
+static const size_t module_size = 5602;
+
+static FileSpec GetDummyRemotePath() {
+  FileSpec fs("/", false, FileSpec::ePathSyntaxPosix);
+  fs.AppendPathComponent(dummy_remote_dir);
+  fs.AppendPathComponent(module_name);
+  return fs;
+}
+
+static FileSpec GetUuidView(FileSpec spec) {
+  spec.AppendPathComponent(".cache");
+  spec.AppendPathComponent(module_uuid);
+  spec.AppendPathComponent(module_name);
+  return spec;
+}
+
+static FileSpec GetSysrootView(FileSpec spec, const char *hostname) {
+  spec.AppendPathComponent(hostname);
+  spec.AppendPathComponent(dummy_remote_dir);
+  spec.AppendPathComponent(module_name);
+  return spec;
+}
+
+void ModuleCacheTest::SetUpTestCase() {
+  HostInfo::Initialize();
+  ObjectFileELF::Initialize();
+
+  FileSpec tmpdir_spec;
+  HostInfo::GetLLDBPath(lldb::ePathTypeLLDBTempSystemDir, s_cache_dir);
+
+  llvm::StringRef exe_folder = llvm::sys::path::parent_path(TestMainArgv0);
+  s_test_executable = exe_folder;
+  llvm::sys::path::append(s_test_executable, "Inputs", module_name);
+}
+
+void ModuleCacheTest::TearDownTestCase() {
+  ObjectFileELF::Terminate();
+  HostInfo::Terminate();
+}
+
+static void VerifyDiskState(const FileSpec &cache_dir, const char *hostname) {
+  FileSpec uuid_view = GetUuidView(cache_dir);
+  EXPECT_TRUE(uuid_view.Exists()) << "uuid_view is: " << uuid_view.GetCString();
+  EXPECT_EQ(module_size, uuid_view.GetByteSize());
+
+  FileSpec sysroot_view = GetSysrootView(cache_dir, hostname);
+  EXPECT_TRUE(sysroot_view.Exists()) << "sysroot_view is: "
+                                     << sysroot_view.GetCString();
+  EXPECT_EQ(module_size, sysroot_view.GetByteSize());
+}
+
+void ModuleCacheTest::TryGetAndPut(const FileSpec &cache_dir,
+                                   const char *hostname, bool expect_download) {
+  ModuleCache mc;
+  ModuleSpec module_spec;
+  module_spec.GetFileSpec() = GetDummyRemotePath();
+  module_spec.GetUUID().SetFromCString(module_uuid, uuid_bytes);
+  module_spec.SetObjectSize(module_size);
+  ModuleSP module_sp;
+  bool did_create;
+  bool download_called = false;
+
+  Error error = mc.GetAndPut(
+      cache_dir, hostname, module_spec,
+      [this, &download_called](const ModuleSpec &module_spec,
+                               const FileSpec &tmp_download_file_spec) {
+        download_called = true;
+        EXPECT_STREQ(GetDummyRemotePath().GetCString(),
+                     module_spec.GetFileSpec().GetCString());
+        std::error_code ec = llvm::sys::fs::copy_file(
+            s_test_executable, tmp_download_file_spec.GetCString());
+        EXPECT_FALSE(ec);
+        return Error();
+      },
+      [](const ModuleSP &module_sp, const FileSpec &tmp_download_file_spec) {
+        return Error("Not supported.");
+      },
+      module_sp, &did_create);
+  EXPECT_EQ(expect_download, download_called);
+
+  EXPECT_TRUE(error.Success()) << "Error was: " << error.AsCString();
+  EXPECT_TRUE(did_create);
+  ASSERT_TRUE(bool(module_sp));
+
+  SymbolContextList sc_list;
+  EXPECT_EQ(1u, module_sp->FindFunctionSymbols(ConstString("boom"),
+                                               eFunctionNameTypeFull, sc_list));
+  EXPECT_STREQ(GetDummyRemotePath().GetCString(),
+               module_sp->GetPlatformFileSpec().GetCString());
+  EXPECT_STREQ(module_uuid, module_sp->GetUUID().GetAsString().c_str());
+}
+
+TEST_F(ModuleCacheTest, GetAndPut) {
+  FileSpec test_cache_dir = s_cache_dir;
+  test_cache_dir.AppendPathComponent("GetAndPut");
+
+  const bool expect_download = true;
+  TryGetAndPut(test_cache_dir, dummy_hostname, expect_download);
+  VerifyDiskState(test_cache_dir, dummy_hostname);
+}
+
+TEST_F(ModuleCacheTest, GetAndPutUuidExists) {
+  FileSpec test_cache_dir = s_cache_dir;
+  test_cache_dir.AppendPathComponent("GetAndPutUuidExists");
+
+  FileSpec uuid_view = GetUuidView(test_cache_dir);
+  std::error_code ec =
+      llvm::sys::fs::create_directories(uuid_view.GetDirectory().GetCString());
+  ASSERT_FALSE(ec);
+  ec = llvm::sys::fs::copy_file(s_test_executable, uuid_view.GetCString());
+  ASSERT_FALSE(ec);
+
+  const bool expect_download = false;
+  TryGetAndPut(test_cache_dir, dummy_hostname, expect_download);
+  VerifyDiskState(test_cache_dir, dummy_hostname);
+}
+
+TEST_F(ModuleCacheTest, GetAndPutStrangeHostname) {
+  FileSpec test_cache_dir = s_cache_dir;
+  test_cache_dir.AppendPathComponent("GetAndPutStrangeHostname");
+
+  const bool expect_download = true;
+  TryGetAndPut(test_cache_dir, "tab\tcolon:asterisk*", expect_download);
+  VerifyDiskState(test_cache_dir, "tab_colon_asterisk_");
+}

Modified: lldb/trunk/unittests/Utility/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Utility/CMakeLists.txt?rev=295088&r1=295087&r2=295088&view=diff
==============================================================================
--- lldb/trunk/unittests/Utility/CMakeLists.txt (original)
+++ lldb/trunk/unittests/Utility/CMakeLists.txt Tue Feb 14 13:06:07 2017
@@ -1,19 +1,13 @@
 add_lldb_unittest(UtilityTests
   ConstStringTest.cpp
-  ModuleCacheTest.cpp
   StringExtractorTest.cpp
   TaskPoolTest.cpp
   TimeoutTest.cpp
   UriParserTest.cpp
 
   LINK_LIBS
-      lldbCore
       lldbHost
-      lldbSymbol
       lldbUtility
-      lldbPluginObjectFileELF
     LINK_COMPONENTS
       Support
   )
-
-add_unittest_inputs(UtilityTests TestModule.so)

Removed: lldb/trunk/unittests/Utility/ModuleCacheTest.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Utility/ModuleCacheTest.cpp?rev=295087&view=auto
==============================================================================
--- lldb/trunk/unittests/Utility/ModuleCacheTest.cpp (original)
+++ lldb/trunk/unittests/Utility/ModuleCacheTest.cpp (removed)
@@ -1,169 +0,0 @@
-#include "gtest/gtest.h"
-
-#include "llvm/ADT/SmallString.h"
-#include "llvm/Support/FileSystem.h"
-#include "llvm/Support/Path.h"
-
-#include "Plugins/ObjectFile/ELF/ObjectFileELF.h"
-#include "Utility/ModuleCache.h"
-#include "lldb/Core/Module.h"
-#include "lldb/Core/ModuleSpec.h"
-#include "lldb/Host/HostInfo.h"
-#include "lldb/Symbol/SymbolContext.h"
-
-extern const char *TestMainArgv0;
-
-using namespace lldb_private;
-using namespace lldb;
-
-namespace {
-
-class ModuleCacheTest : public testing::Test {
-public:
-  static void SetUpTestCase();
-
-  static void TearDownTestCase();
-
-protected:
-  static FileSpec s_cache_dir;
-  static llvm::SmallString<128> s_test_executable;
-
-  void TryGetAndPut(const FileSpec &cache_dir, const char *hostname,
-                    bool expect_download);
-};
-}
-
-FileSpec ModuleCacheTest::s_cache_dir;
-llvm::SmallString<128> ModuleCacheTest::s_test_executable;
-
-static const char dummy_hostname[] = "dummy_hostname";
-static const char dummy_remote_dir[] = "bin";
-static const char module_name[] = "TestModule.so";
-static const char module_uuid[] =
-    "F4E7E991-9B61-6AD4-0073-561AC3D9FA10-C043A476";
-static const uint32_t uuid_bytes = 20;
-static const size_t module_size = 5602;
-
-static FileSpec GetDummyRemotePath() {
-  FileSpec fs("/", false, FileSpec::ePathSyntaxPosix);
-  fs.AppendPathComponent(dummy_remote_dir);
-  fs.AppendPathComponent(module_name);
-  return fs;
-}
-
-static FileSpec GetUuidView(FileSpec spec) {
-  spec.AppendPathComponent(".cache");
-  spec.AppendPathComponent(module_uuid);
-  spec.AppendPathComponent(module_name);
-  return spec;
-}
-
-static FileSpec GetSysrootView(FileSpec spec, const char *hostname) {
-  spec.AppendPathComponent(hostname);
-  spec.AppendPathComponent(dummy_remote_dir);
-  spec.AppendPathComponent(module_name);
-  return spec;
-}
-
-void ModuleCacheTest::SetUpTestCase() {
-  HostInfo::Initialize();
-  ObjectFileELF::Initialize();
-
-  FileSpec tmpdir_spec;
-  HostInfo::GetLLDBPath(lldb::ePathTypeLLDBTempSystemDir, s_cache_dir);
-
-  llvm::StringRef exe_folder = llvm::sys::path::parent_path(TestMainArgv0);
-  s_test_executable = exe_folder;
-  llvm::sys::path::append(s_test_executable, "Inputs", module_name);
-}
-
-void ModuleCacheTest::TearDownTestCase() {
-  ObjectFileELF::Terminate();
-  HostInfo::Terminate();
-}
-
-static void VerifyDiskState(const FileSpec &cache_dir, const char *hostname) {
-  FileSpec uuid_view = GetUuidView(cache_dir);
-  EXPECT_TRUE(uuid_view.Exists()) << "uuid_view is: " << uuid_view.GetCString();
-  EXPECT_EQ(module_size, uuid_view.GetByteSize());
-
-  FileSpec sysroot_view = GetSysrootView(cache_dir, hostname);
-  EXPECT_TRUE(sysroot_view.Exists()) << "sysroot_view is: "
-                                     << sysroot_view.GetCString();
-  EXPECT_EQ(module_size, sysroot_view.GetByteSize());
-}
-
-void ModuleCacheTest::TryGetAndPut(const FileSpec &cache_dir,
-                                   const char *hostname, bool expect_download) {
-  ModuleCache mc;
-  ModuleSpec module_spec;
-  module_spec.GetFileSpec() = GetDummyRemotePath();
-  module_spec.GetUUID().SetFromCString(module_uuid, uuid_bytes);
-  module_spec.SetObjectSize(module_size);
-  ModuleSP module_sp;
-  bool did_create;
-  bool download_called = false;
-
-  Error error = mc.GetAndPut(
-      cache_dir, hostname, module_spec,
-      [this, &download_called](const ModuleSpec &module_spec,
-                               const FileSpec &tmp_download_file_spec) {
-        download_called = true;
-        EXPECT_STREQ(GetDummyRemotePath().GetCString(),
-                     module_spec.GetFileSpec().GetCString());
-        std::error_code ec = llvm::sys::fs::copy_file(
-            s_test_executable, tmp_download_file_spec.GetCString());
-        EXPECT_FALSE(ec);
-        return Error();
-      },
-      [](const ModuleSP &module_sp, const FileSpec &tmp_download_file_spec) {
-        return Error("Not supported.");
-      },
-      module_sp, &did_create);
-  EXPECT_EQ(expect_download, download_called);
-
-  EXPECT_TRUE(error.Success()) << "Error was: " << error.AsCString();
-  EXPECT_TRUE(did_create);
-  ASSERT_TRUE(bool(module_sp));
-
-  SymbolContextList sc_list;
-  EXPECT_EQ(1u, module_sp->FindFunctionSymbols(ConstString("boom"),
-                                               eFunctionNameTypeFull, sc_list));
-  EXPECT_STREQ(GetDummyRemotePath().GetCString(),
-               module_sp->GetPlatformFileSpec().GetCString());
-  EXPECT_STREQ(module_uuid, module_sp->GetUUID().GetAsString().c_str());
-}
-
-TEST_F(ModuleCacheTest, GetAndPut) {
-  FileSpec test_cache_dir = s_cache_dir;
-  test_cache_dir.AppendPathComponent("GetAndPut");
-
-  const bool expect_download = true;
-  TryGetAndPut(test_cache_dir, dummy_hostname, expect_download);
-  VerifyDiskState(test_cache_dir, dummy_hostname);
-}
-
-TEST_F(ModuleCacheTest, GetAndPutUuidExists) {
-  FileSpec test_cache_dir = s_cache_dir;
-  test_cache_dir.AppendPathComponent("GetAndPutUuidExists");
-
-  FileSpec uuid_view = GetUuidView(test_cache_dir);
-  std::error_code ec =
-      llvm::sys::fs::create_directories(uuid_view.GetDirectory().GetCString());
-  ASSERT_FALSE(ec);
-  ec = llvm::sys::fs::copy_file(s_test_executable, uuid_view.GetCString());
-  ASSERT_FALSE(ec);
-
-  const bool expect_download = false;
-  TryGetAndPut(test_cache_dir, dummy_hostname, expect_download);
-  VerifyDiskState(test_cache_dir, dummy_hostname);
-}
-
-TEST_F(ModuleCacheTest, GetAndPutStrangeHostname) {
-  FileSpec test_cache_dir = s_cache_dir;
-  test_cache_dir.AppendPathComponent("GetAndPutStrangeHostname");
-
-  const bool expect_download = true;
-  TryGetAndPut(test_cache_dir, "tab\tcolon:asterisk*", expect_download);
-  VerifyDiskState(test_cache_dir, "tab_colon_asterisk_");
-}




More information about the lldb-commits mailing list