SuccessChanges

Summary

  1. AMDGPU/GlobalISel: Simplify code (details)
  2. AMDGPU/GlobalISel: Fix missing scc imp-def on scalar and/or/xor (details)
  3. AMDGPU/GlobalISel: Fix misuse of div_scale intrinsics (details)
  4. Mips: Make test resistant to future changes (details)
  5. AMDGPU: Fix repeated word in comment (details)
  6. [lldb] Fix ARM32 inferior calls (details)
  7. [lldb] [testsuite] Fix Linux fail: (details)
  8. [lldb] Fix -Wstringop-truncation in PythonReadline.cpp (details)
  9. Customize simplified dumping and matching of LambdaExpr (details)
Commit d688a6739df527d14dfe578d8bc97439d3884a73 by arsenm2
AMDGPU/GlobalISel: Simplify code
This can directly access the register bank, and doesn't need to get it
through the ID.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
Commit dff3f8d74240144c35e78978a73646aa34faf400 by arsenm2
AMDGPU/GlobalISel: Fix missing scc imp-def on scalar and/or/xor
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-and.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-xor.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-or.mir
Commit 42a26445f9e68d55bcc4b8d1b4ced83a56d7743c by arsenm2
AMDGPU/GlobalISel: Fix misuse of div_scale intrinsics
Confusingly, the intrinsic operands do not match the instruction/custom
node. The order is shuffled, and the 3rd operand is an immediate to
select operands.
I'm not 100% sure I did this right, but fdiv still doesn't select end to
end and it will be easier to tell when it does. This at least avoids an
assertion in RegBankSelect and allows hitting the fallback on selection.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fdiv.mir
Commit f9677c47573f7933dd6ea6fe3086fb58e159969a by arsenm2
Mips: Make test resistant to future changes
This seems to have been relying on extra spills being inserted in these
blocks to increase the code size to trigger branch relaxation. This
broke when these spills were avoided. Add some asm to pad the size of
the blocks to make it not matter.
The file was modifiedllvm/test/CodeGen/Mips/branch-relaxation-with-hazard.ll
Commit 4af68667088cca5342babd1be4a72731f472bf25 by arsenm2
AMDGPU: Fix repeated word in comment
The file was modifiedllvm/include/llvm/IR/IntrinsicsAMDGPU.td
Commit df6879ec0227a8a5e5697e505201d0f4444f03a4 by jan.kratochvil
[lldb] Fix ARM32 inferior calls
  echo -e '#include <unistd.h>\nint main(void){\nsync();return
0;}'|./bin/clang -g -x c -;./bin/lldb -o 'file ./a.out' -o 'b main' -o r
-o 'p (void)sync()'
Actual:
  error: Expression can't be run, because there is no JIT compiled
function
Expected:
  <nothing, sync() has been executed>
This patch has been checked by:
D71707: clang-tidy: new bugprone-pointer-cast-widening
https://reviews.llvm.org/D71707
Casting from 32-bit `void *` to `uint64_t` requires an intermediate
`uintptr_t` cast otherwise the pointer gets sign-extended:
  echo -e '#include <stdio.h>\n#include <stdint.h>\nint main(void){void
*p=(void *)0x80000000;unsigned long long ull=(unsigned long
long)p;unsigned long long ull2=(unsigned long
long)(uintptr_t)p;printf("p=%p ull=0x%llx
ull2=0x%llx\\n",p,ull,ull2);return 0;}'|gcc -Wall -m32 -x c -;./a.out
<stdin>: In function ‘main’:
<stdin>:3:66: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
p=0x80000000 ull=0xffffffff80000000 ull2=0x80000000
With debug output: Actual:
  IRMemoryMap::WriteMemory (0xb6ff8640, 0xffffffffb6f82158, 0x112) went
to [0xb6ff8640..0xb6ff86b3)
Code can be run in the target.
Found function, has local address 0xffffffffb6f84000 and remote address
0xffffffffffffffff
Couldn't disassemble function : Couldn't find code range for function
_Z12$__lldb_exprPv
Sections:
[0xb6f84000+0x3c]->0xb6ff9020 (alignment 4, section ID 0, name .text)
...
HandleCommand, command did not succeed
error: Expression can't be run, because there is no JIT compiled
function
Expected:
  IRMemoryMap::WriteMemory (0xb6ff8640, 0xb6faa15c, 0x128) went to
[0xb6ff8640..0xb6ff86c3)
IRExecutionUnit::GetRemoteAddressForLocal() found 0xb6fac000 in
[0xb6fac000..0xb6fac040], and returned 0xb6ff9020 from
[0xb6ff9020..0xb6ff9060].
Code can be run in the target.
Found function, has local address 0xb6fac000 and remote address
0xb6ff9020
Function's code range is [0xb6ff9020+0x40]
...
Function data has contents:
0xb6ff9020: 10 4c 2d e9 08 b0 8d e2 08 d0 4d e2 00 40 a0 e1
...
Function disassembly:
0xb6ff9020: 0xe92d4c10   push   {r4, r10, r11, lr}
Differential revision: https://reviews.llvm.org/D71498
The file was modifiedlldb/source/Plugins/Process/POSIX/CrashReason.cpp
The file was modifiedlldb/source/Core/PluginManager.cpp
The file was modifiedlldb/source/Expression/IRExecutionUnit.cpp
The file was modifiedlldb/source/Expression/IRMemoryMap.cpp
The file was modifiedlldb/source/Host/common/HostInfoBase.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
Commit 4706a60e8a071f0c6a686c45ed08c7bab0bb8446 by jan.kratochvil
[lldb] [testsuite] Fix Linux fail:
Unwind/thread-step-out-ret-addr-check.test
D71372 introduced: `Unwind/thread-step-out-ret-addr-check.test` failing
on Fedora 30 Linux x86_64.
[lldb] Add additional validation on return address in 'thread step-out'
https://reviews.llvm.org/D71372
One problem is the underscored `_nonstandard_stub` in the `.s` file but
not in the LLDB command:
(lldb) breakpoint set -n nonstandard_stub
Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.
(lldb) process launch
Process 21919 exited with status = 0 (0x00000000)
Process 21919 launched:
'/home/jkratoch/redhat/llvm-monorepo-clangassert/tools/lldb/test/Unwind/Output/thread-step-out-ret-addr-check.test.tmp'
(x86_64)
(lldb) thread step-out
error: invalid thread
(lldb) _
Another problem is that Fedora Linux has executable stack by default and
all programs indicate non-executable stack by `PT_GNU_STACK`, after
fixing the underscore I was getting:
(lldb) thread step-out
Process 22294 exited with status = 0 (0x00000000)
(lldb) _
A different approach was tried as:
[lldb] Refactor thread-step-out-ret-addr-check test to use .data
instead of stack variable
https://reviews.llvm.org/D71789
Differential revision: https://reviews.llvm.org/D71784
The file was modifiedlldb/test/Shell/Unwind/Inputs/thread-step-out-ret-addr-check.s
The file was modifiedlldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test
Commit 1805d1f87d7835b237f85bfb0595d1f411ebf1bf by pavel
[lldb] Fix -Wstringop-truncation in PythonReadline.cpp
The size is known and the truncation is deliberate -- use memcpy instead
of strncpy.
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp
Commit 5a79cfa32d62f018607438a30b7acb49c2ab97f3 by steveire
Customize simplified dumping and matching of LambdaExpr
Reviewers: aaron.ballman
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71680
The file was modifiedclang/lib/ASTMatchers/ASTMatchFinder.cpp
The file was modifiedclang/unittests/AST/ASTTraverserTest.cpp
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
The file was modifiedclang/include/clang/AST/ASTNodeTraverser.h