UnstableChanges

Summary

  1. [lldb] Add lldb reproducer test stage (details)
  2. Fix missing '\' in pipeline (details)
Commit 9adbdf08e1374ca52eb3f9bf6227b9ab6e0a3ce9 by Jonas Devlieghere
[lldb] Add lldb reproducer test stage
The file was modifiedzorg/jenkins/jobs/jobs/lldb-cmake (diff)
Commit a286f239d9544e995d8436a57199d4923306a7ca by Jonas Devlieghere
Fix missing '\' in pipeline
The file was modifiedzorg/jenkins/jobs/jobs/lldb-cmake (diff)

Summary

  1. [AArch64TTI] AArch64 supports NT vector stores through STNP. (details)
  2. [lldb/Reproducer] Mark some driver tests  as unsupported for lldb-repro (details)
  3. Replace old-style cast of null pointer with nullptr (details)
  4. [lldb/Test] Add check-lldb-repro target (details)
  5. [lldb/Test] Fix type in add_lit_testsuite (details)
  6. [lldb/Docs] Document testing strategies for the reproducers (details)
  7. [RISCV] Fix evaluating %pcrel_lo against global and weak symbols (details)
  8. [llvm/Transforms] Fix warning: private field 'MSSA' is not used (details)
  9. [test] Fix lld/test/ELF/riscv-pcrel-hilo-error.s after D73211 (details)
  10. [LV] Fix predication for branches with matching true and false succs. (details)
  11. AMDGPU/GlobalISel: Remove redundant or patterns (details)
  12. AMDGPU/GlobalISel: Fix generated wave64 checks (details)
Commit 39ae86ab72d706704ea70f85aa82c623cd99219d by flo
[AArch64TTI] AArch64 supports NT vector stores through STNP.
This patch adds a custom implementation of isLegalNTStore to AArch64TTI
that supports vector types that can be directly stored by STNP. Note
that the implementation may not catch all valid cases (e.g. because the
vector is a multiple of 256 and could be broken down to multiple valid
256 bit stores), but it is good enough for LV to vectorize loops with NT
stores, as LV only passes in a vector with 2 elements to check. LV seems
to also be the only user of isLegalNTStore.
We should also do the same for NT loads, but before that we need to
ensure that we properly lower LDNP of vectors, similar to D72919.
Reviewers: dmgreen, samparker, t.p.northover, ab
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D73158
The file was addedllvm/test/Transforms/LoopVectorize/AArch64/nontemporal-load-store.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
Commit 83a093b8ecc8a8e3a4420dc5385dca57e8016109 by Jonas Devlieghere
[lldb/Reproducer] Mark some driver tests  as unsupported for lldb-repro
These test are checking for diagnostics printed by the driver. During
replay we only replay the SB API calls made by the driver, so it's
expected that these messages aren't displayed.
The file was modifiedlldb/test/Shell/Driver/LocalLLDBInit.test
The file was modifiedlldb/test/Shell/Driver/TestRepl.test
The file was modifiedlldb/test/Shell/Driver/TestCore.test
The file was modifiedlldb/test/Shell/Driver/TestFile.test
Commit d42baff45d9700a199982ba0ac04dbc6c6d911bb by joerg
Replace old-style cast of null pointer with nullptr
The file was modifiedlibcxx/src/locale.cpp
Commit 9be5c13538898c7632c2de7300de9479688a2460 by Jonas Devlieghere
[lldb/Test] Add check-lldb-repro target
This adds a new target check-lldb-repro which runs the shell tests with
the lldb-repo utility. It runs the shell tests twice, once while
capturing a reproducer and then again by replaying that reproducer.
The file was modifiedlldb/test/Shell/CMakeLists.txt
Commit 9b5a9f2fab17d52debce2cde26e94610deeb034c by Jonas Devlieghere
[lldb/Test] Fix type in add_lit_testsuite
The new test suite should be called check-lldb-repro rather than
check-lldb.
The file was modifiedlldb/test/Shell/CMakeLists.txt
Commit 48490e3247af93eaf576a7bf1c1f6b7450fe6d54 by Jonas Devlieghere
[lldb/Docs] Document testing strategies for the reproducers
Document the different ways we test the reproducers. This is mostly to
describe the new check-lldb-repro target.
The file was modifiedlldb/docs/resources/reproducers.rst
Commit 3f5976c97dbfefb4669abcf968bd79a9a64c18e0 by jrtc27
[RISCV] Fix evaluating %pcrel_lo against global and weak symbols
Summary: Previously, we would erroneously turn %pcrel_lo(label), where
label has a %pcrel_hi against a weak symbol, into %pcrel_lo(label +
offset), as evaluatePCRelLo would believe the target independent logic
was going to fold it. Moreover, even if that were fixed,
shouldForceRelocation lacks an MCAsmLayout and thus cannot evaluate the
%pcrel_hi fixup to a value and check the symbol, so we would then
erroneously constant-fold the
%pcrel_lo whilst leaving the %pcrel_hi intact. After D72197, this same
sequence also occurs for symbols with global binding, which is triggered
in real-world code.
Instead, as discussed in D71978, we introduce a new FKF_IsTarget flag to
avoid these kinds of issues. All the resolution logic happens in one
place, with no coordination required between RISCAsmBackend and
RISCVMCExpr to ensure they implement the same logic twice. Although the
implementation of %pcrel_hi can be left as target independent, we make
it target dependent to ensure that they are handled identically to
%pcrel_lo, otherwise we risk one of them being constant folded but the
other being preserved. This also allows us to properly support fixup
pairs where the instructions are in different fragments.
Reviewers: asb, lenary, efriedma
Reviewed By: efriedma
Subscribers: arichardson, hiraditya, rbar, johnrusso, simoncook,
sabuasal, niosHD, kito-cheng, shiva0217, MaskRay, zzheng, edward-jones,
rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei,
psnobl, benna, Jim, s.egerton, pzheng, sameer.abuasal, apazos,
luismarques, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73211
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h
The file was modifiedllvm/test/MC/RISCV/pcrel-fixups.s
The file was modifiedllvm/test/MC/RISCV/pcrel-lo12-invalid.s
The file was modifiedllvm/include/llvm/MC/MCAsmBackend.h
The file was modifiedllvm/test/MC/RISCV/rv64i-aliases-valid.s
The file was modifiedllvm/include/llvm/MC/MCFixupKindInfo.h
The file was modifiedllvm/test/MC/RISCV/rv32i-aliases-valid.s
The file was modifiedllvm/lib/MC/MCAssembler.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h
The file was modifiedllvm/test/MC/RISCV/rv32i-valid.s
Commit cf2b498d284004b82ac6ce94bdd5528e65b9e194 by Jonas Devlieghere
[llvm/Transforms] Fix warning: private field 'MSSA' is not used
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit ddfe8751b16a1d57b0586fb48d1109c98234bc3f by jrtc27
[test] Fix lld/test/ELF/riscv-pcrel-hilo-error.s after D73211
The file was modifiedlld/test/ELF/riscv-pcrel-hilo-error.s
Commit f14f2a856802e086662d919e2ead641718b27555 by flo
[LV] Fix predication for branches with matching true and false succs.
Currently due to the edge caching, we create wrong predicates for
branches with matching true and false successors. We will cache the
condition for the edge from the true successor, and then lookup the same
edge (src and dst are the same) for the edge to the false successor.
If both successors match, the condition should always be true. At the
moment, we cannot really create constant VPValues, but we can just
create a true condition as X | !X. Later passes will clean that up.
Fixes PR44488.
Reviewers: rengolin, hsaito, fhahn, Ayal, dorit, gilr
Reviewed By: Ayal
Differential Revision: https://reviews.llvm.org/D73079
The file was addedllvm/test/Transforms/LoopVectorize/pr44488-predication.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 4d14772f5c2938b8a266d626a73fd7c7cf3ebba5 by arsenm2
AMDGPU/GlobalISel: Remove redundant or patterns
These ended up with higher priority than or3 patterns in a future patch.
This also fixes the using VOP2 forms.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUGISel.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-or.mir
Commit e05025637781b446ffa0071793e3f9ec63e38346 by arsenm2
AMDGPU/GlobalISel: Fix generated wave64 checks
This inexplicably managed to pass locally without the updated wave64
checks.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-or.mir

Summary

  1. [lldb] Add lldb reproducer test stage (details)
  2. Fix missing '\' in pipeline (details)
Commit 9adbdf08e1374ca52eb3f9bf6227b9ab6e0a3ce9 by Jonas Devlieghere
[lldb] Add lldb reproducer test stage
The file was modifiedzorg/jenkins/jobs/jobs/lldb-cmake
Commit a286f239d9544e995d8436a57199d4923306a7ca by Jonas Devlieghere
Fix missing '\' in pipeline
The file was modifiedzorg/jenkins/jobs/jobs/lldb-cmake