FailedChanges

Summary

  1. Portable Python script across version Have all classes derive from object: that's implicitly the default in Python3, it needs to be done explicilty in Python2. Differential Revision: https://reviews.llvm.org/D55121
  2. Portable Python script across Python version Python2 supports the two following equivalent construct raise ExceptionType, exception_value and raise ExceptionType(exception_value) Only the later is supported by Python3. Differential Revision: https://reviews.llvm.org/D55195
  3. [Analyzer] Actually check for -model-path being a directory The original patch (r348038) clearly contained a typo and checked for '-ctu-dir' twice.
  4. [Analysis] Properly prepare test env in test/Analysis/undef-call.c The test expectes the '%T/ctudir' to be present, but does not create it.
  5. [clang] Do not read from 'test/SemaCXX/Inputs' inside 'test/AST' Our integrate relies on test inputs being taken from the same diretory as the test itself.
  6. ARM: use target-specific SUBS node when combining cmp with cmov. This has two positive effects. First, using a custom node prevents recombination leading to an infinite loop since the output DAG is notionally a little more complex than the input one. Using a flag-setting instruction also allows the subtraction to be folded with the related comparison more easily. https://reviews.llvm.org/D53190
  7. [NFC][AArch64] Split out backend features This patch splits backend features currently hidden behind architecture versions. For example, currently the only way to activate complex numbers extension is targeting an v8.3 architecture, where after the patch this extension can be added separately. This refactoring is required by the new command lines proposal: http://lists.llvm.org/pipermail/llvm-dev/2018-September/126346.html Reviewers: DavidSpickett, olista01, t.p.northover Subscribers: kristof.beyls, bryanpkc, javed.absar, pbarrio Differential revision: https://reviews.llvm.org/D54633
  8. [OpenCL][Sema] Improve BuildResolvedCallExpr handling of builtins Summary: This is a follow-up on https://reviews.llvm.org/D52879, addressing a few issues. This: - adds a FIXME for later improvement for specific builtins: I previously have only checked OpenCL ones and ensured tests cover those. - fixed the CallExpr type. Reviewers: riccibruno Reviewed By: riccibruno Subscribers: yaxunl, Anastasia, kristina, svenvh, cfe-commits Differential Revision: https://reviews.llvm.org/D55136
  9. [CMake] Add LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR for custom dSYM target directory on Darwin Summary: When using `LLVM_EXTERNALIZE_DEBUGINFO` in LLDB, the default dSYM location for the shared library in LLDB.framework is inside the framework bundle. With `LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR` we can easily fix that. I consider it a useful feature to be able to set a global output directory for external debug info (rather then having a target-specific one). Only implemented for Darwin so far. Reviewers: beanz, aprantl Reviewed By: aprantl Subscribers: mgorny, aprantl, #lldb, lldb-commits, llvm-commits Differential Revision: https://reviews.llvm.org/D55114
  10. [RISCV] Fix test/MC/Disassembler/RISCV/invalid-instruction.txt after rL347988 The test for [0x00 0x00] failed due to the introduction of c.unimp. This particular test is unnecessary now that c.unimp was defined (and is tested in test/MC/RISCV/rv32c-valid.s).
  11. [CMake] Store path to vendor-specific headers in clang-headers target property Summary: LLDB.framework wants a copy these headers. With this change LLDB can easily glob for the list of files: ``` get_target_property(clang_include_dir clang-headers RUNTIME_OUTPUT_DIRECTORY) file(GLOB_RECURSE clang_vendor_headers RELATIVE ${clang_include_dir} "${clang_include_dir}/*") ``` By default `RUNTIME_OUTPUT_DIRECTORY` is unset for custom targets like `clang-headers`. Reviewers: aprantl, JDevlieghere, davide, friss, dexonsmith Reviewed By: JDevlieghere Subscribers: mgorny, #lldb, cfe-commits, llvm-commits Differential Revision: https://reviews.llvm.org/D55128
  12. [llvm-dwarfdump] - Stop printing the bogus empty section name on invalid dwarf. When there is no .debug_addr section for some reason, llvm-dwarfdump would print the bogus empty section name when dumping ranges in .debug_info: DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x0) rangelist = 0x00000004 [0x0000000000000000, 0x0000000000000001) "" [0x0000000000000000, 0x0000000000000002) "") That happens because of the code which uses 0 (zero) as a section index as a default value. The code should use -1ULL instead because technically 0 is a valid zero section index in ELF and -1ULL is a special constant used that means "no section available". This is mostly a fix for the overall correctness/safety of the code, but a test case is provided too. Differential revision: https://reviews.llvm.org/D55113
  13. [ARM][MC] Move information about variadic register defs into tablegen Currently, variadic operands on an MCInst are assumed to be uses, because they come after the defs. However, this is not always the case, for example the Arm/Thumb LDM instructions write to a variable number of registers. This adds a property of instruction definitions which can be used to mark variadic operands as defs. This only affects MCInst, because MachineInstruction already tracks use/def per operand in each instance of the instruction, so can already represent this. This property can then be checked in MCInstrDesc, allowing us to remove some special cases in ARMAsmParser::isITBlockTerminator. Differential revision: https://reviews.llvm.org/D54853
  14. [ARM][Asm] Debug trace for the processInstruction loop In the Arm assembly parser, we first match an instruction, then call processInstruction to possibly change it to a different encoding, to match rules in the architecture manual which can't be expressed by the table-generated matcher. This adds debug printing so that this process is visible when using the -debug option. To support this, I've added a new overload of MCInst::dump_pretty which takes the opcode name as a StringRef, since we don't have an InstPrinter instance in the assembly parser. Instead, we can get the same information directly from the MCInstrInfo. Differential revision: https://reviews.llvm.org/D54852
  15. [KMSAN] Enable -msan-handle-asm-conservative by default This change enables conservative assembly instrumentation in KMSAN builds by default. It's still possible to disable it with -msan-handle-asm-conservative=0 if something breaks. It's now impossible to enable conservative instrumentation for userspace builds, but it's not used anyway.
Revision 348127 by serge_sans_paille:
Portable Python script across version

Have all classes derive from object: that's implicitly the default in Python3,
it needs to be done explicilty in Python2.

Differential Revision: https://reviews.llvm.org/D55121
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/bindings/python/clang/cindex.pyclang.src/bindings/python/clang/cindex.py
The file was modified/cfe/trunk/docs/tools/dump_format_style.pyclang.src/docs/tools/dump_format_style.py
The file was modified/cfe/trunk/tools/scan-view/share/Reporter.pyclang.src/tools/scan-view/share/Reporter.py
The file was modified/cfe/trunk/tools/scan-view/share/ScanView.pyclang.src/tools/scan-view/share/ScanView.py
The file was modified/cfe/trunk/utils/ABITest/ABITestGen.pyclang.src/utils/ABITest/ABITestGen.py
The file was modified/cfe/trunk/utils/ABITest/TypeGen.pyclang.src/utils/ABITest/TypeGen.py
The file was modified/cfe/trunk/utils/analyzer/CmpRuns.pyclang.src/utils/analyzer/CmpRuns.py
The file was modified/cfe/trunk/utils/modfuzz.pyclang.src/utils/modfuzz.py
The file was modified/cfe/trunk/utils/token-delta.pyclang.src/utils/token-delta.py
Revision 348126 by serge_sans_paille:
Portable Python script across Python version

Python2 supports the two following equivalent construct

raise ExceptionType, exception_value
and
raise ExceptionType(exception_value)

Only the later is supported by Python3.

Differential Revision: https://reviews.llvm.org/D55195
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/tools/scan-view/share/ScanView.pyclang.src/tools/scan-view/share/ScanView.py
The file was modified/cfe/trunk/utils/ABITest/ABITestGen.pyclang.src/utils/ABITest/ABITestGen.py
The file was modified/cfe/trunk/utils/ABITest/Enumeration.pyclang.src/utils/ABITest/Enumeration.py
The file was modified/cfe/trunk/utils/ABITest/TypeGen.pyclang.src/utils/ABITest/TypeGen.py
The file was modified/cfe/trunk/utils/analyzer/SATestBuild.pyclang.src/utils/analyzer/SATestBuild.py
The file was modified/cfe/trunk/utils/token-delta.pyclang.src/utils/token-delta.py
Revision 348125 by ibiryukov:
[Analyzer] Actually check for -model-path being a directory

The original patch (r348038) clearly contained a typo and checked
for '-ctu-dir' twice.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cppclang.src/lib/Frontend/CompilerInvocation.cpp
Revision 348124 by ibiryukov:
[Analysis] Properly prepare test env in test/Analysis/undef-call.c

The test expectes the '%T/ctudir' to be present, but does not create it.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Analysis/undef-call.cclang.src/test/Analysis/undef-call.c
Revision 348123 by ibiryukov:
[clang] Do not read from 'test/SemaCXX/Inputs' inside 'test/AST'

Our integrate relies on test inputs being taken from the same diretory as the
test itself.
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/test/AST/Inputs/std-coroutine.hclang.src/test/AST/Inputs/std-coroutine.h
The file was modified/cfe/trunk/test/AST/coroutine-source-location-crash.cppclang.src/test/AST/coroutine-source-location-crash.cpp
Revision 348122 by Tim Northover:
ARM: use target-specific SUBS node when combining cmp with cmov.

This has two positive effects. First, using a custom node prevents
recombination leading to an infinite loop since the output DAG is notionally a
little more complex than the input one. Using a flag-setting instruction also
allows the subtraction to be folded with the related comparison more easily.

https://reviews.llvm.org/D53190
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.cppllvm.src/lib/Target/ARM/ARMISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.hllvm.src/lib/Target/ARM/ARMISelLowering.h
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrInfo.tdllvm.src/lib/Target/ARM/ARMInstrInfo.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrThumb.tdllvm.src/lib/Target/ARM/ARMInstrThumb.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrThumb2.tdllvm.src/lib/Target/ARM/ARMInstrThumb2.td
The file was modified/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-casts.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-casts.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/cmp.llllvm.src/test/CodeGen/ARM/cmp.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/select.llllvm.src/test/CodeGen/ARM/select.ll
Revision 348121 by dnsampaio:
[NFC][AArch64] Split out backend features

This patch splits backend features currently
hidden behind architecture versions.

For example, currently the only way to activate
complex numbers extension is targeting an v8.3
architecture, where after the patch this extension
can be added separately.

This refactoring is required by the new command lines proposal:
http://lists.llvm.org/pipermail/llvm-dev/2018-September/126346.html

Reviewers: DavidSpickett, olista01, t.p.northover

Subscribers: kristof.beyls, bryanpkc, javed.absar, pbarrio

Differential revision: https://reviews.llvm.org/D54633
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64.tdllvm.src/lib/Target/AArch64/AArch64.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.tdllvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.tdllvm.src/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.hllvm.src/lib/Target/AArch64/AArch64Subtarget.h
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64SystemOperands.tdllvm.src/lib/Target/AArch64/AArch64SystemOperands.td
The file was modified/llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cppllvm.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
The file was modified/llvm/trunk/test/MC/AArch64/armv8.2a-at.sllvm.src/test/MC/AArch64/armv8.2a-at.s
The file was removed/llvm/trunk/test/MC/AArch64/armv8.2a-mmfr2.sllvm.src/test/MC/AArch64/armv8.2a-mmfr2.s
The file was modified/llvm/trunk/test/MC/AArch64/armv8.2a-persistent-memory.sllvm.src/test/MC/AArch64/armv8.2a-persistent-memory.s
The file was modified/llvm/trunk/test/MC/AArch64/armv8.3a-complex.sllvm.src/test/MC/AArch64/armv8.3a-complex.s
The file was modified/llvm/trunk/test/MC/AArch64/armv8.3a-js.sllvm.src/test/MC/AArch64/armv8.3a-js.s
The file was modified/llvm/trunk/test/MC/AArch64/armv8.3a-signed-pointer.sllvm.src/test/MC/AArch64/armv8.3a-signed-pointer.s
The file was modified/llvm/trunk/test/MC/AArch64/armv8.4a-flag.sllvm.src/test/MC/AArch64/armv8.4a-flag.s
The file was modified/llvm/trunk/test/MC/AArch64/armv8.4a-ldst.sllvm.src/test/MC/AArch64/armv8.4a-ldst.s
The file was modified/llvm/trunk/test/MC/AArch64/armv8.4a-tlb.sllvm.src/test/MC/AArch64/armv8.4a-tlb.s
The file was modified/llvm/trunk/test/MC/AArch64/armv8.4a-trace.sllvm.src/test/MC/AArch64/armv8.4a-trace.s
Revision 348120 by mantognini:
[OpenCL][Sema] Improve BuildResolvedCallExpr handling of builtins

Summary:
This is a follow-up on https://reviews.llvm.org/D52879, addressing a few issues.

This:
- adds a FIXME for later improvement for specific builtins: I previously have only checked OpenCL ones and ensured tests cover those.
- fixed the CallExpr type.



Reviewers: riccibruno

Reviewed By: riccibruno

Subscribers: yaxunl, Anastasia, kristina, svenvh, cfe-commits

Differential Revision: https://reviews.llvm.org/D55136
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaExpr.cppclang.src/lib/Sema/SemaExpr.cpp
Revision 348118 by stefan.graenitz:
[CMake] Add LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR for custom dSYM target directory on Darwin

Summary: When using `LLVM_EXTERNALIZE_DEBUGINFO` in LLDB, the default dSYM location for the shared library in LLDB.framework is inside the framework bundle. With `LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR` we can easily fix that. I consider it a useful feature to be able to set a global output directory for external debug info (rather then having a target-specific one). Only implemented for Darwin so far.

Reviewers: beanz, aprantl

Reviewed By: aprantl

Subscribers: mgorny, aprantl, #lldb, lldb-commits, llvm-commits

Differential Revision: https://reviews.llvm.org/D55114
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/AddLLVM.cmakellvm.src/cmake/modules/AddLLVM.cmake
Revision 348117 by asb:
[RISCV] Fix test/MC/Disassembler/RISCV/invalid-instruction.txt after rL347988

The test for [0x00 0x00] failed due to the introduction of c.unimp.

This particular test is unnecessary now that c.unimp was defined (and is
tested in test/MC/RISCV/rv32c-valid.s).
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/MC/Disassembler/RISCV/invalid-instruction.txtllvm.src/test/MC/Disassembler/RISCV/invalid-instruction.txt
Revision 348116 by stefan.graenitz:
[CMake] Store path to vendor-specific headers in clang-headers target property

Summary:
LLDB.framework wants a copy these headers. With this change LLDB can easily glob for the list of files:
```
get_target_property(clang_include_dir clang-headers RUNTIME_OUTPUT_DIRECTORY)
file(GLOB_RECURSE clang_vendor_headers RELATIVE ${clang_include_dir} "${clang_include_dir}/*")
```

By default `RUNTIME_OUTPUT_DIRECTORY` is unset for custom targets like `clang-headers`.

Reviewers: aprantl, JDevlieghere, davide, friss, dexonsmith

Reviewed By: JDevlieghere

Subscribers: mgorny, #lldb, cfe-commits, llvm-commits

Differential Revision: https://reviews.llvm.org/D55128
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Headers/CMakeLists.txtclang.src/lib/Headers/CMakeLists.txt
Revision 348115 by grimar:
[llvm-dwarfdump] - Stop printing the bogus empty section name on invalid dwarf.

When there is no .debug_addr section for some reason,
llvm-dwarfdump would print the bogus empty section name when dumping ranges
in .debug_info:

DW_AT_ranges [DW_FORM_rnglistx]   (indexed (0x0) rangelist = 0x00000004
    [0x0000000000000000, 0x0000000000000001) ""
    [0x0000000000000000, 0x0000000000000002) "")

That happens because of the code which uses 0 (zero) as a section index as a default value.
The code should use -1ULL instead because technically 0 is a valid zero section index
in ELF and -1ULL is a special constant used that means "no section available".

This is mostly a fix for the overall correctness/safety of the code,
but a test case is provided too.

Differential revision: https://reviews.llvm.org/D55113
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugRnglists.cppllvm.src/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp
The file was added/llvm/trunk/test/tools/llvm-dwarfdump/X86/no_debug_addr.sllvm.src/test/tools/llvm-dwarfdump/X86/no_debug_addr.s
Revision 348114 by olista01:
[ARM][MC] Move information about variadic register defs into tablegen

Currently, variadic operands on an MCInst are assumed to be uses,
because they come after the defs. However, this is not always the case,
for example the Arm/Thumb LDM instructions write to a variable number of
registers.

This adds a property of instruction definitions which can be used to
mark variadic operands as defs. This only affects MCInst, because
MachineInstruction already tracks use/def per operand in each instance
of the instruction, so can already represent this.

This property can then be checked in MCInstrDesc, allowing us to remove
some special cases in ARMAsmParser::isITBlockTerminator.

Differential revision: https://reviews.llvm.org/D54853
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MC/MCInstrDesc.hllvm.src/include/llvm/MC/MCInstrDesc.h
The file was modified/llvm/trunk/include/llvm/Target/Target.tdllvm.src/include/llvm/Target/Target.td
The file was modified/llvm/trunk/lib/MC/MCInstrDesc.cppllvm.src/lib/MC/MCInstrDesc.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrInfo.tdllvm.src/lib/Target/ARM/ARMInstrInfo.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrThumb.tdllvm.src/lib/Target/ARM/ARMInstrThumb.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrThumb2.tdllvm.src/lib/Target/ARM/ARMInstrThumb2.td
The file was modified/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cppllvm.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
The file was modified/llvm/trunk/utils/TableGen/CodeGenInstruction.cppllvm.src/utils/TableGen/CodeGenInstruction.cpp
The file was modified/llvm/trunk/utils/TableGen/CodeGenInstruction.hllvm.src/utils/TableGen/CodeGenInstruction.h
The file was modified/llvm/trunk/utils/TableGen/InstrDocsEmitter.cppllvm.src/utils/TableGen/InstrDocsEmitter.cpp
The file was modified/llvm/trunk/utils/TableGen/InstrInfoEmitter.cppllvm.src/utils/TableGen/InstrInfoEmitter.cpp
Revision 348113 by olista01:
[ARM][Asm] Debug trace for the processInstruction loop

In the Arm assembly parser, we first match an instruction, then call
processInstruction to possibly change it to a different encoding, to
match rules in the architecture manual which can't be expressed by the
table-generated matcher.

This adds debug printing so that this process is visible when using the
-debug option.

To support this, I've added a new overload of MCInst::dump_pretty which
takes the opcode name as a StringRef, since we don't have an InstPrinter
instance in the assembly parser. Instead, we can get the same
information directly from the MCInstrInfo.

Differential revision: https://reviews.llvm.org/D54852
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MC/MCInst.hllvm.src/include/llvm/MC/MCInst.h
The file was modified/llvm/trunk/lib/MC/MCInst.cppllvm.src/lib/MC/MCInst.cpp
The file was modified/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cppllvm.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
Revision 348112 by glider:
[KMSAN] Enable -msan-handle-asm-conservative by default

This change enables conservative assembly instrumentation in KMSAN builds
by default.
It's still possible to disable it with -msan-handle-asm-conservative=0
if something breaks. It's now impossible to enable conservative
instrumentation for userspace builds, but it's not used anyway.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cppllvm.src/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was modified/llvm/trunk/test/Instrumentation/MemorySanitizer/msan_asm_conservative.llllvm.src/test/Instrumentation/MemorySanitizer/msan_asm_conservative.ll
The file was modified/llvm/trunk/test/Instrumentation/MemorySanitizer/msan_x86_bts_asm.llllvm.src/test/Instrumentation/MemorySanitizer/msan_x86_bts_asm.ll