1. [MachineVerifier]  Improve checks of target instructions operands. (details)
  2. [NFC] Tidy-ups to TimeProfiler.cpp (details)
  3. Mark some tests as xfail on AArch64 Linux (details)
  4. [LiveDebugValues] Introduce entry values of unmodified params (details)
  5. ImplicitNullChecks: Don't add a dead definition of DepMI as live-in (details)
  6. Temporarily run machine-verifier once in test/CodeGen/SPARC/fp128.ll, so (details)
  7. [asan] Remove debug locations from alloca prologue instrumentation (details)
  8. [lldb] Move register info "augmentation" from gdb-remote into ABI (details)
  9. [lldb] Remove tab from (details)
  10. [DWARF] Add support for parsing/dumping section indices in location (details)
  11. Fixup 6d18e53: xfail properly (details)
  12. [clang][CodeGen] Make use of cc1 instead of clang in the tests (details)
  13. [lldb][NFC] Test going up/down one line in the multiline expression (details)
  14. [OpenCL] Fix mangling of single-overload builtins (details)
  15. [CodeGen] Move ARMCodegenPrepare to TypePromotion (details)
  16. [lldb] Remove all remaining tabs from (details)
Commit 4fd8f11901b5bfb13a5fef597626dde31835873b by paulsson
[MachineVerifier]  Improve checks of target instructions operands.
While working with a patch for instruction selection, the splitting of a
large immediate ended up begin treated incorrectly by the backend. Where
a register operand should have been created, it instead became an
immediate. To my surprise the machine verifier failed to report this,
which at the time would have been helpful.
This patch improves the verifier so that it will report this type of
This patch XFAILs CodeGen/SPARC/fp128.ll, which has been reported at
Review: thegameg, arsenm, fhahn
The file was addedllvm/test/MachineVerifier/verify-regops.mir
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
The file was modifiedllvm/test/CodeGen/SPARC/fp128.ll
Commit df943a7a08102ed3d1f632e88b24a024a7c4ba81 by russell.gallop
[NFC] Tidy-ups to TimeProfiler.cpp
Remove unused include Make fields const where possible Move
initialisation to initialiser list
Differential Revision:
The file was modifiedllvm/lib/Support/TimeProfiler.cpp
Commit 6d18e5366c9a0bffe45b179a830483b3f2ec9fa9 by diana.picus
Mark some tests as xfail on AArch64 Linux
I have either opened new bug reports for these tests, or added links to
existing bugs.
This should help make the lldb-aarch64-ubuntu buildbot green (there will
still be some unexpected passes that someone should look into, but those
can be handled later).
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/inline-stepping/
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/step-avoids-no-debug/
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/load_unload/
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/return-value/
The file was modifiedlldb/packages/Python/lldbsuite/test/linux/builtin_trap/
The file was modifiedlldb/packages/Python/lldbsuite/test/commands/expression/static-initializers/
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/thread_step_out_or_return/
The file was modifiedlldb/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/show_location/
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/breakpoint/require_hw_breakpoints/
Commit 4cfceb910692f9e894622da1b394324503667e46 by djordje.todorovic
[LiveDebugValues] Introduce entry values of unmodified params
The idea is to remove front-end analysis for the parameter's value
modification and leave it to the value tracking system. Front-end in
some cases marks a parameter as modified even the line of code that
modifies the parameter gets optimized, that implies that this will cover
more entry values even. In addition, extending the support for modified
parameters will be easier with this approach.
Since the goal is to recognize if a parameter’s value has changed, the
idea at very high level is: If we encounter a DBG_VALUE other than the
entry value one describing the same variable (parameter), we can assume
that the variable’s value has changed and we should not track its entry
value any more. That would be ideal scenario, but due to various LLVM
optimizations, a variable’s value could be just moved around from one
register to another
(and there will be additional DBG_VALUEs describing the same variable),
so we have to recognize such situation (otherwise, we will lose a lot of
entry values) and salvage the debug entry value.
Differential Revision:
The file was addedllvm/test/DebugInfo/MIR/X86/kill-entry-value-after-diamond-bbs.mir
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/param_entry_vals/basic_entry_values_x86_64/
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/param_entry_vals/basic_entry_values_x86_64/main.cpp
The file was addedllvm/test/DebugInfo/MIR/X86/propagate-entry-value-cross-bbs.mir
The file was addedllvm/test/DebugInfo/MIR/X86/entry-values-diamond-bbs.mir
The file was modifiedllvm/lib/CodeGen/LiveDebugValues.cpp
The file was addedllvm/test/DebugInfo/MIR/X86/entry-value-of-modified-param.mir
The file was modifiedllvm/test/DebugInfo/MIR/ARM/dbgcall-site-propagated-value.mir
Commit f8c0cfc24eab0f23e3ebc65b10ee4276b1f15eeb by paulsson
ImplicitNullChecks: Don't add a dead definition of DepMI as live-in
This is one of the fixes needed to reapply D68267 which improves
verification of live-in lists.
Review: craig.topper
The file was modifiedllvm/lib/CodeGen/ImplicitNullChecks.cpp
The file was modifiedllvm/test/CodeGen/X86/implicit-null-checks.mir
Commit 7b63e27cc0a940a67db84b8b8485dd8b81a2beeb by paulsson
Temporarily run machine-verifier once in test/CodeGen/SPARC/fp128.ll, so
that it XFAIL:s also without expensive checks.
The file was modifiedllvm/test/CodeGen/SPARC/fp128.ll
Commit 09667bc1920463107684a566c3f2c3cef9b156e7 by aclopte
[asan] Remove debug locations from alloca prologue instrumentation
Summary: This fixes
"Wrong debugging information with -fsanitize=address" where asan
instrumentation causes the prologue end to be computed incorrectly:
findPrologueEndLoc, looks for the first instruction with a debug
location to determine the prologue end.  Since the asan instrumentation
instructions had debug locations, that prologue end was at some
instruction, where the stack frame is still being set up.
There seems to be no good reason for extra debug locations for the asan
instrumentations that set up the frame; they don't have a natural source
location.  In the debugger they are simply located at the start of the
For certain other instrumentations like
-fsanitize-coverage=trace-pc-guard the same problem persists - that
might be more work to fix, since it looks like they rely on locations of
the tracee functions.
This partly reverts aaf4bb239487e0a3b20a8eaf94fc641235ba2c29
"[asan] Set debug location in ASan function prologue" whose motivation
was to give debug location info to the coverage callback. Its test only
ensures that the call to @__sanitizer_cov_trace_pc_guard is given the
correct source location; as the debug location is still set in
ModuleSanitizerCoverage::InjectCoverageAtBlock, the test does not break.
So -fsanitize-coverage is hopefully unaffected - I don't think it should
rely on the debug locations of asan-generated allocas.
Related revision: 3c6c14d14b40adfb581940859ede1ac7d8ceae7a
"ASAN: Provide reliable debug info for local variables at -O0."
Below is how the X86 assembly version of the added test case changes. We
get rid of some .loc lines and put prologue_end where the user code
--- 2.master.s 2019-12-02 12:32:38.982959053 +0100
+++ 2.patch.s 2019-12-02 12:32:41.106246674 +0100
@@ -45,8 +45,6 @@
.cfi_offset %rbx, -24
xorl %eax, %eax
movl %eax, %ecx
- .Ltmp2:
- .loc 1 3 0 prologue_end      # 2.c:3:0
cmpl $0, __asan_option_detect_stack_use_after_return
movl %edi, 92(%rbx)          # 4-byte Spill
movq %rsi, 80(%rbx)          # 8-byte Spill
@@ -57,9 +55,7 @@
callq __asan_stack_malloc_0
movq %rax, 72(%rbx)          # 8-byte Spill
- .loc 1 0 0 is_stmt 0         # 2.c:0:0
movq 72(%rbx), %rax          # 8-byte Reload
- .loc 1 3 0                   # 2.c:3:0
cmpq $0, %rax
movq %rax, %rcx
movq %rax, 64(%rbx)          # 8-byte Spill
@@ -72,9 +68,7 @@
movq %rax, %rsp
movq %rax, 56(%rbx)          # 8-byte Spill
- .loc 1 0 0                   # 2.c:0:0
movq 56(%rbx), %rax          # 8-byte Reload
- .loc 1 3 0                   # 2.c:3:0
movq %rax, 120(%rbx)
movq %rax, %rcx
addq $32, %rcx
@@ -99,7 +93,6 @@
movb %r8b, 31(%rbx)          # 1-byte Spill
je .LBB1_7
# %bb.5:
- .loc 1 0 0                   # 2.c:0:0
movq 40(%rbx), %rax          # 8-byte Reload
andq $7, %rax
addq $3, %rax
@@ -118,7 +111,8 @@
movl %ecx, (%rax)
movq 80(%rbx), %rdx          # 8-byte Reload
movq %rdx, 128(%rbx)
- .loc 1 4 3 is_stmt 1         # 2.c:4:3
+ .loc 1 4 3 prologue_end      # 2.c:4:3
movq %rax, %rdi
callq f
movq 48(%rbx), %rax          # 8-byte Reload
Reviewers: eugenis, aprantl
Reviewed By: eugenis
Subscribers: ormris, aprantl, hiraditya, llvm-commits
Tags: #llvm
Differential Revision:
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/local_stack_base.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
The file was addedllvm/test/Instrumentation/AddressSanitizer/debug-info-alloca.ll
Commit 2b8db387f2a616f39a077ede18c6366f2ea9f203 by pavel
[lldb] Move register info "augmentation" from gdb-remote into ABI
Summary: Previously the ABI plugin exposed some "register infos" and the
gdb-remote code used those to fill in the missing bits. Now, the
"filling in" code is in the ABI plugin itself, and the gdb-remote code
just invokes that.
The motivation for this is two-fold: a) the "augmentation" logic is
useful outside of process gdb-remote. For
instance, it would allow us to avoid repeating the register number
definitions in minidump code. b) It gives more implementation freedom
to the ABI classes. Now that
these "register infos" are essentially implementation details, classes
can use other methods to obtain dwarf/eh_frame register numbers -- for
instance they can consult llvm MC layer.
Since the augmentation code was not currently tested anywhere, I took
the opportunity to create a simple test for it.
Reviewers: jasonmolenda, clayborg, tatyana-krasnukha
Subscribers: aprantl, lldb-commits
Tags: #lldb
Differential Revision:
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/basic_eh_frame.yaml
The file was modifiedlldb/source/Target/ABI.cpp
The file was modifiedlldb/include/lldb/Target/ABI.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
Commit 46d0ec3a803021281c8d868b1487d2d5cd06f274 by Raphael Isemann
[lldb] Remove tab from
Mixing tabs and spaces makes Python exit with this error:
line 23
   return (self.getArchitecture() == "aarch64" and self.getPlatform() ==
       ^ TabError: inconsistent use of tabs and spaces in indentation
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/return-value/
Commit 1fbe8a82e1ea0168ee10079a18140135222d1d2c by pavel
[DWARF] Add support for parsing/dumping section indices in location
Summary: This does exactly what it says on the box. The only small
gotcha is the section index computation for offset_pair entries, which
can use either the base address section, or the section from the
offset_pair entry. This is to support both the cases where the base
address is relocated
(points to the base of the CU, typically), and the case where the base
address is a constant (typically zero) and relocations are on the
offsets themselves.
Reviewers: dblaikie, JDevlieghere, aprantl, SouraVX
Subscribers: hiraditya, llvm-commits, probinson
Tags: #llvm
Differential Revision:
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-debug-loc-simple.test
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_loclists.s
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDie.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
Commit 057626b4393836e11712bd694afda121d8309973 by diana.picus
Fixup 6d18e53: xfail properly
Forgot to squash this...
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/show_location/
Commit 01a26fa74a9b3ab876a7d3bf30d9aca2d5dfcc7d by kadircet
[clang][CodeGen] Make use of cc1 instead of clang in the tests
The file was modifiedclang/test/CodeGen/arm-neon-vcadd.c
Commit 4821d2a014e02b14223676c98b2ef5244eb91da8 by Raphael Isemann
[lldb][NFC] Test going up/down one line in the multiline expression
The file was addedlldb/packages/Python/lldbsuite/test/commands/expression/multiline-navigation/
Commit 6713670b17324b81cc457f3a37dbc8c1ee229b88 by sven.vanhaastregt
[OpenCL] Fix mangling of single-overload builtins
Commit 9a8d477a0e0 ("[OpenCL] Add builtin function attribute handling",
2019-11-05) stopped Clang from mangling single-overload builtins, which
is incorrect.
The file was modifiedclang/lib/Sema/SemaLookup.cpp
The file was modifiedclang/test/CodeGenOpenCL/
Commit bc76dadb3cf16c38564ccb1cc54206279b7c54bc by sam.parker
[CodeGen] Move ARMCodegenPrepare to TypePromotion
Convert ARMCodeGenPrepare into a generic type promotion pass by:
- Removing the insertion of arm specific intrinsics to handle narrow
types as we weren't using this.
- Removing ARMSubtarget references.
- Now query a generic TLI object to know which types should be
promoted and what they should be promoted to.
- Move all codegen tests into Transforms folder and testing using opt
and not llc, which is how they should have been written in the
first place...
The pass searches up from icmp operands in an attempt to safely promote
types so we can avoid generating unnecessary unsigned extends during DAG
Differential Revision:
The file was removedllvm/test/CodeGen/ARM/CGP/arm-cgp-casts.ll
The file was removedllvm/test/CodeGen/ARM/CGP/arm-cgp-signed-icmps.ll
The file was modifiedllvm/lib/Target/ARM/ARMTargetMachine.cpp
The file was removedllvm/test/CodeGen/ARM/CGP/arm-cgp-calls.ll
The file was modifiedllvm/lib/CodeGen/CodeGen.cpp
The file was addedllvm/test/Transforms/TypePromotion/ARM/wrapping.ll
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was addedllvm/test/Transforms/TypePromotion/ARM/switch.ll
The file was addedllvm/test/Transforms/TypePromotion/ARM/lit.local.cfg
The file was modifiedllvm/include/llvm/CodeGen/Passes.h
The file was modifiedllvm/lib/Target/ARM/CMakeLists.txt
The file was modifiedllvm/tools/opt/opt.cpp
The file was addedllvm/lib/CodeGen/TypePromotion.cpp
The file was removedllvm/test/CodeGen/ARM/CGP/arm-cgp-pointers.ll
The file was removedllvm/test/CodeGen/ARM/CGP/arm-cgp-icmps.ll
The file was removedllvm/test/CodeGen/ARM/CGP/arm-cgp-signed.ll
The file was addedllvm/test/Transforms/TypePromotion/ARM/calls.ll
The file was modifiedllvm/test/CodeGen/ARM/O3-pipeline.ll
The file was addedllvm/test/Transforms/TypePromotion/ARM/clear-structures.ll
The file was addedllvm/test/Transforms/TypePromotion/ARM/signed-icmps.ll
The file was removedllvm/test/CodeGen/ARM/CGP/arm-cgp-switch.ll
The file was addedllvm/test/Transforms/TypePromotion/ARM/pointers.ll
The file was addedllvm/test/Transforms/TypePromotion/ARM/casts.ll
The file was addedllvm/test/Transforms/TypePromotion/ARM/signed.ll
The file was removedllvm/test/CodeGen/ARM/CGP/clear-structures.ll
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was removedllvm/test/CodeGen/ARM/CGP/arm-cgp-phis-ret.ll
The file was removedllvm/lib/Target/ARM/ARMCodeGenPrepare.cpp
The file was removedllvm/test/CodeGen/ARM/CGP/arm-cgp-overflow.ll
The file was addedllvm/test/Transforms/TypePromotion/ARM/icmps.ll
The file was modifiedllvm/lib/Target/ARM/ARM.h
The file was addedllvm/test/Transforms/TypePromotion/ARM/phis-ret.ll
Commit b37a43d93db8c5afb3b95d803638f0536608779d by Raphael Isemann
[lldb] Remove all remaining tabs from
I assumed this was just a single typo, but it seems we actually have a
whole bunch of tabs in this file which cause Python to complain about
mixing tabs and spaces.
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/return-value/