FailedChanges

Summary

  1. Fix libcxx formatters for changes in r300140. Summary: LLVM r300140 changed the layout and field names of __compressed_pair, which broke LLDB's std::vector, std::map and std::unsorted_map formatters. This patch attempts to fix these formatters by having them interogate the __compressed_pair values to determine whether they're pre- or post-r300140 variants, then access them accordingly. Reviewers: jingham, EricWF Reviewed By: jingham Differential Revision: https://reviews.llvm.org/D32554
  2. Re-landing IPv6 support for LLDB Host This support was landed in r300579, and reverted in r300669 due to failures on the bots. The failures were caused by sockets not being properly closed, and this updated version of the patches should resolve that. Summary from the original change: This patch adds IPv6 support to LLDB/Host's TCP socket implementation. Supporting IPv6 involved a few significant changes to the implementation of the socket layers, and I have performed some significant code cleanup along the way. This patch changes the Socket constructors for all types of sockets to not create sockets until first use. This is required for IPv6 support because the socket type will vary based on the address you are connecting to. This also has the benefit of removing code that could have errors from the Socket subclass constructors (which seems like a win to me). The patch also slightly changes the API and behaviors of the Listen/Accept pattern. Previously both Listen and Accept calls took an address specified as a string. Now only listen does. This change was made because the Listen call can result in opening more than one socket. In order to support listening for both IPv4 and IPv6 connections we need to open one AF_INET socket and one AF_INET6 socket. During the listen call we construct a map of file descriptors to addrin structures which represent the allowable incoming connection address. This map removes the need for taking an address into the Accept call. This does have a change in functionality. Previously you could Listen for connections based on one address, and Accept connections from a different address. This is no longer supported. I could not find anywhere in LLDB where we actually used the APIs in that way. The new API does still support AnyAddr for allowing incoming connections from any address. The Listen implementation is implemented using kqueue on FreeBSD and Darwin, WSAPoll on Windows and poll(2) everywhere else. https://reviews.llvm.org/D31823
  3. Revert r301487: Replace HashString algorithm with xxHash64 This reverts commit r301487 to make buildbots green.
  4. Remove unnecessary instantiation of StringRef. SoName's type has changed from StringRef to std::string, so this code does not make sense anymore.
  5. Add support for DW_TAG_thrown_type. For Swift we would like to be able to encode the error types that a function may throw, so the debugger can display them alongside the function's return value when finish-ing a function. DWARF defines DW_TAG_thrown_type (intended to be used for C++ throw() declarations) that is a perfect fit for this purpose. This patch wires up support for DW_TAG_thrown_type in LLVM by adding a list of thrown types to DISubprogram. To offset the cost of the extra pointer, there is a follow-up patch that turns DISubprogram into a variable-length node. rdar://problem/29481673 Differential Revision: https://reviews.llvm.org/D32559
  6. Removes createELFFile which takes a template class as a template parameter. This patch is to reduce amount of template uses. The new code is less exciting and boring than before, but I think it is easier to read. Differential Revision: https://reviews.llvm.org/D32467
  7. Replace HashString algorithm with xxHash64 The previous algorithm processed one character at a time, which is very painful on a modern CPU. Replace it with xxHash64, which both already exists in the codebase and is fairly fast. Patch from Scott Smith! Differential Revision: https://reviews.llvm.org/D32509
Revision 301493 by Lang Hames:
Fix libcxx formatters for changes in r300140.

Summary:
LLVM r300140 changed the layout and field names of __compressed_pair, which
broke LLDB's std::vector, std::map and std::unsorted_map formatters.

This patch attempts to fix these formatters by having them interogate the
__compressed_pair values to determine whether they're pre- or post-r300140
variants, then access them accordingly.

Reviewers: jingham, EricWF

Reviewed By: jingham

Differential Revision: https://reviews.llvm.org/D32554
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp (diff)llvm-revision.src/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
The file was modified/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp (diff)llvm-revision.src/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
The file was modified/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp (diff)llvm-revision.src/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
Revision 301492 by cbieneman:
Re-landing IPv6 support for LLDB Host

This support was landed in r300579, and reverted in r300669 due to failures on the bots.

The failures were caused by sockets not being properly closed, and this updated version of the patches should resolve that.

Summary from the original change:

This patch adds IPv6 support to LLDB/Host's TCP socket implementation. Supporting IPv6 involved a few significant changes to the implementation of the socket layers, and I have performed some significant code cleanup along the way.

This patch changes the Socket constructors for all types of sockets to not create sockets until first use. This is required for IPv6 support because the socket type will vary based on the address you are connecting to. This also has the benefit of removing code that could have errors from the Socket subclass constructors (which seems like a win to me).

The patch also slightly changes the API and behaviors of the Listen/Accept pattern. Previously both Listen and Accept calls took an address specified as a string. Now only listen does. This change was made because the Listen call can result in opening more than one socket. In order to support listening for both IPv4 and IPv6 connections we need to open one AF_INET socket and one AF_INET6 socket. During the listen call we construct a map of file descriptors to addrin structures which represent the allowable incoming connection address. This map removes the need for taking an address into the Accept call.

This does have a change in functionality. Previously you could Listen for connections based on one address, and Accept connections from a different address. This is no longer supported. I could not find anywhere in LLDB where we actually used the APIs in that way. The new API does still support AnyAddr for allowing incoming connections from any address.

The Listen implementation is implemented using kqueue on FreeBSD and Darwin, WSAPoll on Windows and poll(2) everywhere else.

https://reviews.llvm.org/D31823
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/cmake/modules/LLDBConfig.cmake (diff)llvm-revision.src/lldb/trunk/cmake/modules/LLDBConfig.cmake
The file was modified/lldb/trunk/include/lldb/Host/Config.h (diff)llvm-revision.src/lldb/trunk/include/lldb/Host/Config.h
The file was modified/lldb/trunk/include/lldb/Host/Config.h.cmake (diff)llvm-revision.src/lldb/trunk/include/lldb/Host/Config.h.cmake
The file was modified/lldb/trunk/include/lldb/Host/MainLoop.h (diff)llvm-revision.src/lldb/trunk/include/lldb/Host/MainLoop.h
The file was modified/lldb/trunk/include/lldb/Host/Socket.h (diff)llvm-revision.src/lldb/trunk/include/lldb/Host/Socket.h
The file was modified/lldb/trunk/include/lldb/Host/common/TCPSocket.h (diff)llvm-revision.src/lldb/trunk/include/lldb/Host/common/TCPSocket.h
The file was modified/lldb/trunk/include/lldb/Host/common/UDPSocket.h (diff)llvm-revision.src/lldb/trunk/include/lldb/Host/common/UDPSocket.h
The file was modified/lldb/trunk/include/lldb/Host/linux/AbstractSocket.h (diff)llvm-revision.src/lldb/trunk/include/lldb/Host/linux/AbstractSocket.h
The file was modified/lldb/trunk/include/lldb/Host/posix/DomainSocket.h (diff)llvm-revision.src/lldb/trunk/include/lldb/Host/posix/DomainSocket.h
The file was removed/lldb/trunk/include/lldb/Host/posix/MainLoopPosix.hllvm-revision.src/lldb/trunk/include/lldb/Host/posix/MainLoopPosix.h
The file was modified/lldb/trunk/lldb.xcodeproj/project.pbxproj (diff)llvm-revision.src/lldb/trunk/lldb.xcodeproj/project.pbxproj
The file was modified/lldb/trunk/source/Host/CMakeLists.txt (diff)llvm-revision.src/lldb/trunk/source/Host/CMakeLists.txt
The file was added/lldb/trunk/source/Host/common/MainLoop.cppllvm-revision.src/lldb/trunk/source/Host/common/MainLoop.cpp
The file was modified/lldb/trunk/source/Host/common/Socket.cpp (diff)llvm-revision.src/lldb/trunk/source/Host/common/Socket.cpp
The file was modified/lldb/trunk/source/Host/common/SocketAddress.cpp (diff)llvm-revision.src/lldb/trunk/source/Host/common/SocketAddress.cpp
The file was modified/lldb/trunk/source/Host/common/TCPSocket.cpp (diff)llvm-revision.src/lldb/trunk/source/Host/common/TCPSocket.cpp
The file was modified/lldb/trunk/source/Host/common/UDPSocket.cpp (diff)llvm-revision.src/lldb/trunk/source/Host/common/UDPSocket.cpp
The file was modified/lldb/trunk/source/Host/linux/AbstractSocket.cpp (diff)llvm-revision.src/lldb/trunk/source/Host/linux/AbstractSocket.cpp
The file was modified/lldb/trunk/source/Host/posix/ConnectionFileDescriptorPosix.cpp (diff)llvm-revision.src/lldb/trunk/source/Host/posix/ConnectionFileDescriptorPosix.cpp
The file was modified/lldb/trunk/source/Host/posix/DomainSocket.cpp (diff)llvm-revision.src/lldb/trunk/source/Host/posix/DomainSocket.cpp
The file was removed/lldb/trunk/source/Host/posix/MainLoopPosix.cppllvm-revision.src/lldb/trunk/source/Host/posix/MainLoopPosix.cpp
The file was modified/lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp (diff)llvm-revision.src/lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp
The file was modified/lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj (diff)llvm-revision.src/lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj
The file was modified/lldb/trunk/tools/debugserver/source/CMakeLists.txt (diff)llvm-revision.src/lldb/trunk/tools/debugserver/source/CMakeLists.txt
The file was modified/lldb/trunk/tools/debugserver/source/RNBSocket.cpp (diff)llvm-revision.src/lldb/trunk/tools/debugserver/source/RNBSocket.cpp
The file was modified/lldb/trunk/tools/debugserver/source/debugserver.cpp (diff)llvm-revision.src/lldb/trunk/tools/debugserver/source/debugserver.cpp
The file was modified/lldb/trunk/tools/lldb-server/Acceptor.cpp (diff)llvm-revision.src/lldb/trunk/tools/lldb-server/Acceptor.cpp
The file was modified/lldb/trunk/unittests/Host/SocketTest.cpp (diff)llvm-revision.src/lldb/trunk/unittests/Host/SocketTest.cpp
The file was modified/lldb/trunk/unittests/Process/gdb-remote/GDBRemoteTestUtils.cpp (diff)llvm-revision.src/lldb/trunk/unittests/Process/gdb-remote/GDBRemoteTestUtils.cpp
The file was modified/lldb/trunk/unittests/debugserver/RNBSocketTest.cpp (diff)llvm-revision.src/lldb/trunk/unittests/debugserver/RNBSocketTest.cpp
Revision 301491 by ruiu:
Revert r301487: Replace HashString algorithm with xxHash64

This reverts commit r301487 to make buildbots green.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGen/target-features-error-2.c (diff)llvm-revision.src/cfe/trunk/test/CodeGen/target-features-error-2.c
The file was modified/cfe/trunk/test/CodeGen/target-features-error.c (diff)llvm-revision.src/cfe/trunk/test/CodeGen/target-features-error.c
The file was modified/cfe/trunk/test/SemaCXX/typo-correction-delayed.cpp (diff)llvm-revision.src/cfe/trunk/test/SemaCXX/typo-correction-delayed.cpp
The file was modified/cfe/trunk/unittests/Tooling/CompilationDatabaseTest.cpp (diff)llvm-revision.src/cfe/trunk/unittests/Tooling/CompilationDatabaseTest.cpp
The file was modified/llvm/trunk/include/llvm/ADT/StringExtras.h (diff)llvm-revision.src/llvm/trunk/include/llvm/ADT/StringExtras.h
The file was modified/llvm/trunk/include/llvm/Support/xxhash.h (diff)llvm-revision.src/llvm/trunk/include/llvm/Support/xxhash.h
The file was modified/llvm/trunk/lib/Support/xxhash.cpp (diff)llvm-revision.src/llvm/trunk/lib/Support/xxhash.cpp
The file was modified/llvm/trunk/test/DebugInfo/Generic/accel-table-hash-collisions.ll (diff)llvm-revision.src/llvm/trunk/test/DebugInfo/Generic/accel-table-hash-collisions.ll
The file was modified/llvm/trunk/test/DebugInfo/PDB/pdbdump-headers.test (diff)llvm-revision.src/llvm/trunk/test/DebugInfo/PDB/pdbdump-headers.test
The file was modified/llvm/trunk/test/DebugInfo/X86/gnu-public-names.ll (diff)llvm-revision.src/llvm/trunk/test/DebugInfo/X86/gnu-public-names.ll
Revision 301490 by ruiu:
Remove unnecessary instantiation of StringRef.

SoName's type has changed from StringRef to std::string, so this
code does not make sense anymore.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/InputFiles.cpp (diff)llvm-revision.src/lld/trunk/ELF/InputFiles.cpp
Revision 301489 by Adrian Prantl:
Add support for DW_TAG_thrown_type.

For Swift we would like to be able to encode the error types that a
function may throw, so the debugger can display them alongside the
function's return value when finish-ing a function.

DWARF defines DW_TAG_thrown_type (intended to be used for C++ throw()
declarations) that is a perfect fit for this purpose. This patch wires
up support for DW_TAG_thrown_type in LLVM by adding a list of thrown
types to DISubprogram.

To offset the cost of the extra pointer, there is a follow-up patch
that turns DISubprogram into a variable-length node.

rdar://problem/29481673

Differential Revision: https://reviews.llvm.org/D32559
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/DIBuilder.h (diff)llvm-revision.src/llvm/trunk/include/llvm/IR/DIBuilder.h
The file was modified/llvm/trunk/include/llvm/IR/DebugInfoMetadata.h (diff)llvm-revision.src/llvm/trunk/include/llvm/IR/DebugInfoMetadata.h
The file was modified/llvm/trunk/lib/AsmParser/LLParser.cpp (diff)llvm-revision.src/llvm/trunk/lib/AsmParser/LLParser.cpp
The file was modified/llvm/trunk/lib/Bitcode/Reader/MetadataLoader.cpp (diff)llvm-revision.src/llvm/trunk/lib/Bitcode/Reader/MetadataLoader.cpp
The file was modified/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp (diff)llvm-revision.src/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.h (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.h
The file was modified/llvm/trunk/lib/IR/AsmWriter.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/AsmWriter.cpp
The file was modified/llvm/trunk/lib/IR/DIBuilder.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/DIBuilder.cpp
The file was modified/llvm/trunk/lib/IR/DebugInfoMetadata.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/DebugInfoMetadata.cpp
The file was modified/llvm/trunk/lib/IR/LLVMContextImpl.h (diff)llvm-revision.src/llvm/trunk/lib/IR/LLVMContextImpl.h
The file was modified/llvm/trunk/lib/IR/Verifier.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/Verifier.cpp
The file was modified/llvm/trunk/test/Assembler/disubprogram.ll (diff)llvm-revision.src/llvm/trunk/test/Assembler/disubprogram.ll
The file was added/llvm/trunk/test/DebugInfo/Generic/thrownTypes.llllvm-revision.src/llvm/trunk/test/DebugInfo/Generic/thrownTypes.ll
The file was added/llvm/trunk/test/Verifier/DISubprogram.llllvm-revision.src/llvm/trunk/test/Verifier/DISubprogram.ll
The file was modified/llvm/trunk/unittests/IR/IRBuilderTest.cpp (diff)llvm-revision.src/llvm/trunk/unittests/IR/IRBuilderTest.cpp
The file was modified/llvm/trunk/unittests/IR/MetadataTest.cpp (diff)llvm-revision.src/llvm/trunk/unittests/IR/MetadataTest.cpp
Revision 301488 by ruiu:
Removes createELFFile which takes a template class as a template parameter.

This patch is to reduce amount of template uses. The new code is less
exciting and boring than before, but I think it is easier to read.

Differential Revision: https://reviews.llvm.org/D32467
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/InputFiles.cpp (diff)llvm-revision.src/lld/trunk/ELF/InputFiles.cpp
The file was modified/lld/trunk/ELF/InputFiles.h (diff)llvm-revision.src/lld/trunk/ELF/InputFiles.h
The file was modified/lld/trunk/ELF/SymbolTable.cpp (diff)llvm-revision.src/lld/trunk/ELF/SymbolTable.cpp
Revision 301487 by ruiu:
Replace HashString algorithm with xxHash64

The previous algorithm processed one character at a time, which is very
painful on a modern CPU. Replace it with xxHash64, which both already
exists in the codebase and is fairly fast.

Patch from Scott Smith!

Differential Revision: https://reviews.llvm.org/D32509
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGen/target-features-error-2.c (diff)llvm-revision.src/cfe/trunk/test/CodeGen/target-features-error-2.c
The file was modified/cfe/trunk/test/CodeGen/target-features-error.c (diff)llvm-revision.src/cfe/trunk/test/CodeGen/target-features-error.c
The file was modified/cfe/trunk/test/SemaCXX/typo-correction-delayed.cpp (diff)llvm-revision.src/cfe/trunk/test/SemaCXX/typo-correction-delayed.cpp
The file was modified/cfe/trunk/unittests/Tooling/CompilationDatabaseTest.cpp (diff)llvm-revision.src/cfe/trunk/unittests/Tooling/CompilationDatabaseTest.cpp
The file was modified/llvm/trunk/include/llvm/ADT/StringExtras.h (diff)llvm-revision.src/llvm/trunk/include/llvm/ADT/StringExtras.h
The file was modified/llvm/trunk/include/llvm/Support/xxhash.h (diff)llvm-revision.src/llvm/trunk/include/llvm/Support/xxhash.h
The file was modified/llvm/trunk/lib/Support/xxhash.cpp (diff)llvm-revision.src/llvm/trunk/lib/Support/xxhash.cpp
The file was modified/llvm/trunk/test/DebugInfo/Generic/accel-table-hash-collisions.ll (diff)llvm-revision.src/llvm/trunk/test/DebugInfo/Generic/accel-table-hash-collisions.ll
The file was modified/llvm/trunk/test/DebugInfo/PDB/pdbdump-headers.test (diff)llvm-revision.src/llvm/trunk/test/DebugInfo/PDB/pdbdump-headers.test
The file was modified/llvm/trunk/test/DebugInfo/X86/gnu-public-names.ll (diff)llvm-revision.src/llvm/trunk/test/DebugInfo/X86/gnu-public-names.ll