FailedChanges

Summary

  1. [CodeView] Use actual strings for dealing with checksums and lines. The raw CodeView format references strings by "offsets", but it's confusing what table the offset refers to. In the case of line number information, it's an offset into a buffer of records, and an indirection is required to get another offset into a different table to find the final string. And in the case of checksum information, there is no indirection, and the offset refers directly to the location of the string in another buffer. This would be less confusing if we always just referred to the strings by their value, and have the library be smart enough to correctly resolve the offsets on its own from the right location. This patch makes that possible. When either reading or writing, all the user deals with are strings, and the library does the appropriate translations behind the scenes.
  2. [llvm-readobj] Update readobj to re-use parsing code. llvm-readobj hand rolls some CodeView parsing code for string tables, so this patch updates it to re-use some of the newly introduced parsing code in LLVMDebugInfoCodeView. Differential Revision: https://reviews.llvm.org/D32772
  3. ARM: add extra test for addrmode folding. I was worried we might replace a mul with a mul+shift even if there were later uses. Turns out to be unfounded but I'd just as well add an actual test for it.
  4. [tsan] Detect races on modifying accesses in Swift code This patch allows the Swift compiler to emit calls to `__tsan_external_write` before starting any modifying access, which will cause TSan to detect races on arrays, dictionaries and other classes defined in non-instrumented modules. Races on collections from the Swift standard library and user-defined structs and a frequent cause of subtle bugs and it's important that TSan detects those on top of existing LLVM IR instrumentation, which already detects races in direct memory accesses. Differential Revision: https://reviews.llvm.org/D31630
  5. [X86][LWP] Add stack folding mappings and tests for LWPINS/LWPVAL instructions
  6. Silence a 'enum and non-enum used in conditional' warning.
  7. [DAGCombine] (addcarry (add|uaddo X, Y), 0, Carry) -> (addcarry X, Y, Carry) Summary: Do the transform when the carry isn't used. It's a pattern exposed when legalizing large integers. Reviewers: jyknight, nemanjai, mkuper, spatel, RKSimon, zvi, bkramer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32755
Revision 302053 by zturner:
[CodeView] Use actual strings for dealing with checksums and lines.

The raw CodeView format references strings by "offsets", but it's
confusing what table the offset refers to.  In the case of line
number information, it's an offset into a buffer of records,
and an indirection is required to get another offset into a
different table to find the final string.  And in the case of
checksum information, there is no indirection, and the offset
refers directly to the location of the string in another buffer.

This would be less confusing if we always just referred to the
strings by their value, and have the library be smart enough
to correctly resolve the offsets on its own from the right
location.

This patch makes that possible.  When either reading or writing,
all the user deals with are strings, and the library does the
appropriate translations behind the scenes.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugInlineeLinesFragment.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugInlineeLinesFragment.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugLineFragment.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugLineFragment.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/StringTable.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/StringTable.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
The file was modified/llvm/trunk/include/llvm/Support/BinaryStreamArray.h (diff)llvm-revision.src/llvm/trunk/include/llvm/Support/BinaryStreamArray.h
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugInlineeLinesFragment.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugInlineeLinesFragment.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugLineFragment.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugLineFragment.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/StringTable.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/StringTable.cpp
The file was modified/llvm/trunk/tools/llvm-pdbdump/llvm-pdbdump.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/llvm-pdbdump.cpp
Revision 302052 by zturner:
[llvm-readobj] Update readobj to re-use parsing code.

llvm-readobj hand rolls some CodeView parsing code for string
tables, so this patch updates it to re-use some of the newly
introduced parsing code in LLVMDebugInfoCodeView.

Differential Revision: https://reviews.llvm.org/D32772
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/StringTable.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/StringTable.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h
The file was modified/llvm/trunk/include/llvm/Support/BinaryStreamRef.h (diff)llvm-revision.src/llvm/trunk/include/llvm/Support/BinaryStreamRef.h
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/StringTable.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/StringTable.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cpp
The file was modified/llvm/trunk/lib/DebugInfo/PDB/Native/PDBStringTable.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/PDB/Native/PDBStringTable.cpp
The file was modified/llvm/trunk/tools/llvm-pdbdump/Diff.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/Diff.cpp
The file was modified/llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp
The file was modified/llvm/trunk/tools/llvm-pdbdump/YAMLOutputStyle.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/YAMLOutputStyle.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/COFFDumper.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-readobj/COFFDumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/llvm-readobj.h (diff)llvm-revision.src/llvm/trunk/tools/llvm-readobj/llvm-readobj.h
The file was modified/llvm/trunk/unittests/DebugInfo/PDB/ErrorChecking.h (diff)llvm-revision.src/llvm/trunk/unittests/DebugInfo/PDB/ErrorChecking.h
The file was modified/llvm/trunk/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp (diff)llvm-revision.src/llvm/trunk/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp
Revision 302051 by Tim Northover:
ARM: add extra test for addrmode folding.

I was worried we might replace a mul with a mul+shift even if there were later
uses. Turns out to be unfounded but I'd just as well add an actual test for it.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/ARM/load-arm.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/ARM/load-arm.ll
Revision 302050 by kuba.brecka:
[tsan] Detect races on modifying accesses in Swift code

This patch allows the Swift compiler to emit calls to `__tsan_external_write` before starting any modifying access, which will cause TSan to detect races on arrays, dictionaries and other classes defined in non-instrumented modules. Races on collections from the Swift standard library and user-defined structs and a frequent cause of subtle bugs and it's important that TSan detects those on top of existing LLVM IR instrumentation, which already detects races in direct memory accesses.

Differential Revision: https://reviews.llvm.org/D31630
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/include/sanitizer/tsan_interface.h (diff)llvm-revision.src/compiler-rt/trunk/include/sanitizer/tsan_interface.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_defs.h (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_defs.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_external.cc (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_external.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_interface.h (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_interface.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_report.cc (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_report.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_report.h (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_report.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.h (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc
The file was modified/compiler-rt/trunk/test/tsan/Darwin/external-dups.cc (diff)llvm-revision.src/compiler-rt/trunk/test/tsan/Darwin/external-dups.cc
The file was added/compiler-rt/trunk/test/tsan/Darwin/external-swift.ccllvm-revision.src/compiler-rt/trunk/test/tsan/Darwin/external-swift.cc
The file was modified/compiler-rt/trunk/test/tsan/Darwin/external.cc (diff)llvm-revision.src/compiler-rt/trunk/test/tsan/Darwin/external.cc
Revision 302049 by rksimon:
[X86][LWP] Add stack folding mappings and tests for LWPINS/LWPVAL instructions
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
The file was added/llvm/trunk/test/CodeGen/X86/stack-folding-lwp.llllvm-revision.src/llvm/trunk/test/CodeGen/X86/stack-folding-lwp.ll
Revision 302048 by rksimon:
Silence a 'enum and non-enum used in conditional' warning.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Revision 302047 by deadalnix:
[DAGCombine] (addcarry (add|uaddo X, Y), 0, Carry) -> (addcarry X, Y, Carry)

Summary: Do the transform when the carry isn't used. It's a pattern exposed when legalizing large integers.

Reviewers: jyknight, nemanjai, mkuper, spatel, RKSimon, zvi, bkramer

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32755
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/addcarry.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/addcarry.ll