Changes

Summary

  1. [lldb/DWARF] Ignore debug info pointing to the low addresses (details)
  2. [docs] Fix hyperlink (details)
  3. [lldb/test] Remove quote/unquote steps from the make invocations (details)
  4. [lldb] Improve assert message in TestCPPAccelerator (details)
  5. [X86] Remove X86ProcFamilyEnum::IntelSLM (details)
  6. [lldb] [Process/Utility] Define qN regs on ARM via helper macro (details)
  7. consteval if does not form a discarded statement (details)
  8. [CostModel][X86] Add costs for multiply-by-pow2 constants (details)
  9. [SLP][X86] Improve SLP tests for division/multiplication by +/- pow2 (details)
  10. [libunwind] Use the from-scratch testing configuration by default (details)
  11. [SelectionDAG] Fix getVectorSubVecPointer for scalable subvectors. (details)
  12. [lldb] [Process/Linux] Support arbitrarily-sized FPR writes on ARM (details)
  13. [lldb] [Process/Utility] Fix value_regs/invalidate_regs for ARM (details)
  14. [lldb] [ABI/X86] Support combining xmm* and ymm*h regs into ymm* (details)
  15. [NewPM][test] Avoid using -enable-new-pm=1 since -passes implies new PM (details)
  16. [NewPM][test] Use -passes syntax in SpeculativeExecution lit tests (details)
  17. [NewPM][test] Use -passes syntax in BoundsChecking lit tests (details)
  18. [NewPM][test] Use -passes syntax in VectorCombine lit tests (details)
  19. [NewPM][test] Only use -passes syntax in Scalarizer lit tests (details)
Commit ffbff6c511ba230954013eca8d824a66f6b4f9a5 by pavel
[lldb/DWARF] Ignore debug info pointing to the low addresses

specifically, ignore addresses that point before the first code section.

This resurrects D87172 with several notable changes:
- it fixes a bug where the early exits in InitializeObject left
  m_first_code_address "initialized" to LLDB_INVALID_ADDRESS (0xfff..f),
  which caused _everything_ to be ignored.
- it extends the line table fix to function parsing as well, where it
  replaces a similar check which was checking the executable permissions
  of the section. This was insufficient because some
  position-independent elf executables can have an executable segment
  mapped at file address zero. (What makes this fix different is that it
  checks for the executable-ness of the sections contained within that
  segment, and those will not be at address zero.)
- It uses a different test case, with an elf file with near-zero
  addresses, and checks for both line table and function parsing.

Differential Revision: https://reviews.llvm.org/D112058
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/lit.local.cfg
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
The file was addedlldb/test/Shell/SymbolFile/DWARF/x86/dead-code-filtering.yaml
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Commit f45d7407168d08c4d80216ca13feb1e1c21ad6bb by sven.vanhaastregt
[docs] Fix hyperlink
The file was modifiedclang/docs/UsersManual.rst
Commit 551d118805c808936956e464dc21e05acb478f78 by pavel
[lldb/test] Remove quote/unquote steps from the make invocations

None of the commands we run really rely on shell features. Running them
with shell=False, simplifies the code as there is no need for elaborate
quoting.

Differential Revision: https://reviews.llvm.org/D111990
The file was modifiedlldb/packages/Python/lldbsuite/test/builders/builder.py
The file was modifiedlldb/packages/Python/lldbsuite/test/builders/darwin.py
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit 956df6fa620a0ca75fd6e62b5318fb4d14304a4f by Raphael Isemann
[lldb] Improve assert message in TestCPPAccelerator

`log` is just some IO object that gets printed as `<_io.TextIOWrapper = filename`
but the intention here was to print the actual found log contents.
The file was modifiedlldb/test/API/lang/cpp/accelerator-table/TestCPPAccelerator.py
Commit 9fc523d114085d194da90ef108c16c931c40ae38 by llvm-dev
[X86] Remove X86ProcFamilyEnum::IntelSLM

Replace X86ProcFamilyEnum::IntelSLM enum with a TuningUseSLMArithCosts flag instead, matching what we already do for Goldmont.

This just leaves X86ProcFamilyEnum::IntelAtom to replace with general Tuning/Feature flags and we can finally get rid of the old X86ProcFamilyEnum enum.

Differential Revision: https://reviews.llvm.org/D112079
The file was modifiedllvm/lib/Target/X86/X86.td
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.h
The file was modifiedllvm/lib/Target/X86/X86Subtarget.h
Commit 6561c074c072beb6c8e400a62bd5943a1f26a72a by mgorny
[lldb] [Process/Utility] Define qN regs on ARM via helper macro

Add a FPU_QREG macro to define qN registers.  This is a piece-wise
attempt of reconstructing D112066 with the goal of figuring out which
part of the larger change breaks the buildbot.

Differential Revision: https://reviews.llvm.org/D112066
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterInfos_arm.h
Commit ab2ca8496d54573de1c8bec204009567ba2b4086 by aaron
consteval if does not form a discarded statement

When we added support for if consteval, we accidentally formed a discarded
statement evaluation context for the branch-not-taken. However, a discarded
statement is a property of an if constexpr statement, not an if consteval
statement (https://eel.is/c++draft/stmt.if#2.sentence-2). This turned out to
cause issues when deducing the return type from a function with a consteval if
statement -- we wouldn't consider the branch-not-taken when deducing the return
type.

This fixes PR52206.

Note, there is additional work left to be done. We need to track discarded
statement and immediate evaluation contexts separately rather than as being
mutually exclusive.
The file was addedclang/test/SemaCXX/cxx2b-consteval-if.cpp
The file was modifiedclang/lib/Parse/ParseStmt.cpp
Commit 5b395bd633632b9f87f4d853095cb1a090a1efe6 by llvm-dev
[CostModel][X86] Add costs for multiply-by-pow2 constants

These are folded to left shifts in the backend.

We should be able to extend this for multiply-by-negpow2 after D111968 has landed to resolve PR51436
The file was modifiedllvm/test/Analysis/CostModel/X86/mul.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
Commit a3c05982ac05637a8f40207db83c04a1710033d5 by llvm-dev
[SLP][X86] Improve SLP tests for division/multiplication by +/- pow2

Add PR51436 test as well as some basic multiply tests, and include SSE2 division coverage
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/powof2div.ll
The file was addedllvm/test/Transforms/SLPVectorizer/X86/powof2mul.ll
Commit 5a8ad80b6fa5cbad58b78384f534b78fca863e7f by Louis Dionne
[libunwind] Use the from-scratch testing configuration by default

This commit switches libunwind from using the complicated logic in
libc++'s testing configuration to a from-scratch configuration.
I tried to make sure that all cases that were handled in the old
config were handled by this one too, so hopefully this shouldn't
break anyone. However, if you encounter issues with this change,
please let me know and feel free to revert if I don't reply quickly.

This change was engineered to be easily revertable.

Differential Revision: https://reviews.llvm.org/D112082
The file was modifiedlibunwind/CMakeLists.txt
Commit be6c8dc765c32a79c0c9b0e6720e3b22d226e478 by sander.desmalen
[SelectionDAG] Fix getVectorSubVecPointer for scalable subvectors.

When inserting a scalable subvector into a scalable vector through
the stack, the index to store to needs to be scaled by vscale.
Before this patch, that didn't yet happen, so it would generate the
wrong offset, thus storing a subvector to the incorrect address
and overwriting the wrong lanes.

For some insert:
  nxv8f16 insert_subvector(nxv8f16 %vec, nxv2f16 %subvec, i64 2)

The offset was not scaled by vscale:
  orr     x8, x8, #0x4
  st1h    { z0.h }, p0, [sp]
  st1h    { z1.d }, p1, [x8]
  ld1h    { z0.h }, p0/z, [sp]

And is changed to:
  mov x8, sp
  st1h { z0.h }, p0, [sp]
  st1h { z1.d }, p1, [x8, #1, mul vl]
  ld1h { z0.h }, p0/z, [sp]

Differential Revision: https://reviews.llvm.org/D111633
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-insert-vector.ll
Commit 192331b890e238a8ede4e61e6c5294e7eaa365fd by mgorny
[lldb] [Process/Linux] Support arbitrarily-sized FPR writes on ARM

Support arbitrarily-sized FPR writes on ARM in order to fix writing qN
registers directly.  Currently, writing them works only by accident
due to value_regs splitting them into smaller writes via dN and sN
registers.

Differential Revision: https://reviews.llvm.org/D112131
The file was modifiedlldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
Commit 99277a81f807e6f4c63ececdb6974d6d5f1f3562 by mgorny
[lldb] [Process/Utility] Fix value_regs/invalidate_regs for ARM

Fix incorrect values for value_regs, and incomplete values for
invalidate_regs in RegisterInfos_arm.  The value_regs entry needs
to list only one base (i.e. larger) register that needs to be read
to get the value for this register, while invalidate_regs needs to list
all other registers (including pseudo-register) whose values would
change when this register is written to.

7a8ba4ffbeecb5070926b80bb839a4d80539f1ac fixed a similar problem
for ARM64.

Differential Revision: https://reviews.llvm.org/D112066
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterInfos_arm.h
Commit f290efc32622cc59566ec7ac13e74a039b6047c2 by mgorny
[lldb] [ABI/X86] Support combining xmm* and ymm*h regs into ymm*

gdbserver does not expose combined ymm* registers but rather XSAVE-style
split xmm* and ymm*h portions.  Extend value_regs to support combining
multiple registers and use it to create user-friendly ymm* registers
that are combined from split xmm* and ymm*h portions.

Differential Revision: https://reviews.llvm.org/D108937
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
The file was modifiedlldb/include/lldb/lldb-private-types.h
The file was modifiedlldb/source/Target/DynamicRegisterInfo.cpp
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
The file was modifiedlldb/source/Plugins/ABI/X86/ABIX86.cpp
Commit a413663d8fea6700076010b7e4458b03a8bfb8b4 by bjorn.a.pettersson
[NewPM][test] Avoid using -enable-new-pm=1 since -passes implies new PM
The file was modifiedllvm/test/Transforms/PhaseOrdering/openmp-opt-module.ll
The file was modifiedllvm/test/Transforms/LICM/no-hoist-prof.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/limit.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/nofree-attributor.ll
The file was modifiedllvm/test/CodeGen/PowerPC/opt-builtins-ppc-xlcompat-cas.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/AMDGPU/uniform-unswitch.ll
The file was modifiedllvm/test/Transforms/SampleProfile/remarks-hotness.ll
Commit 57bd67abfcb8799cbee204e5fd92fe60bce3f9bf by bjorn.a.pettersson
[NewPM][test] Use -passes syntax in SpeculativeExecution lit tests

The legacy PM is deprecated, so use the new PM syntax in lit tests
running the speculative-execution pass.
The file was modifiedllvm/test/Transforms/SpeculativeExecution/spec-other-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SpeculativeExecution/PR46267.ll
The file was modifiedllvm/test/Transforms/SpeculativeExecution/spec-other.ll
The file was modifiedllvm/test/Transforms/SpeculativeExecution/spec-compares.ll
The file was modifiedllvm/test/Transforms/SpeculativeExecution/spec-calls.ll
The file was modifiedllvm/test/Transforms/SpeculativeExecution/spec-casts.ll
The file was modifiedllvm/test/Transforms/SpeculativeExecution/spec.ll
Commit 15f1fb5a302d7b4b1405c0414c661ef3de7ff18d by bjorn.a.pettersson
[NewPM][test] Use -passes syntax in BoundsChecking lit tests

The legacy PM is deprecated, so use the new PM syntax in lit tests
running the bounds-checking pass.
The file was modifiedllvm/test/Instrumentation/BoundsChecking/simple.ll
The file was modifiedllvm/test/Instrumentation/BoundsChecking/opt.ll
The file was modifiedllvm/test/Instrumentation/BoundsChecking/many-trap.ll
The file was modifiedllvm/test/Instrumentation/BoundsChecking/simple-32.ll
The file was modifiedllvm/test/Instrumentation/BoundsChecking/many-traps-2.ll
The file was modifiedllvm/test/Instrumentation/BoundsChecking/phi.ll
Commit 5e4dbd7a2fb095a6c25ec4758b806571c033e88e by bjorn.a.pettersson
[NewPM][test] Use -passes syntax in VectorCombine lit tests

The legacy PM is deprecated, so use the new PM syntax in lit tests
running the vector-combine pass.
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
The file was modifiedllvm/test/Transforms/VectorCombine/Hexagon/load-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/scalarize-cmp.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/shuffle-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/AMDGPU/as-transition-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/scalarize-vector-gep.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop-with-constant-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/vscale-bitcast-shuffle-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/shuffle.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/extract-binop-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop-with-constant.ll
The file was modifiedllvm/test/Transforms/VectorCombine/Hexagon/load.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/load-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/no-sse-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/scalarize-cmp-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/load-insert-store.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/extract-cmp.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/extract-binop.ll
The file was modifiedllvm/test/Transforms/VectorCombine/AMDGPU/as-transition.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/load-widening.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/no-sse.ll
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/extract-cmp-binop.ll
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/vscale-bitcast-shuffle.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop-inseltpoison.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/load.ll
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/load-extract-insert-store-scalarization.ll
Commit e9320b1a95a69652bba9b3ba66900b1c0e8f6b0a by bjorn.a.pettersson
[NewPM][test] Only use -passes syntax in Scalarizer lit tests

With legacy PM being deprecated it should be enough to verify the
scalarizer pass using the new-PM syntax when invoking opt.
The file was modifiedllvm/test/Transforms/Scalarizer/basic.ll
The file was modifiedllvm/test/Transforms/Scalarizer/global-bug-2.ll
The file was modifiedllvm/test/Transforms/Scalarizer/global-bug.ll
The file was modifiedllvm/test/Transforms/Scalarizer/basic-inseltpoison.ll
The file was modifiedllvm/test/Transforms/Scalarizer/dbgloc-bug-inseltpoison.ll
The file was modifiedllvm/test/Transforms/Scalarizer/phi-unreachable-pred.ll
The file was modifiedllvm/test/Transforms/Scalarizer/cache-bug.ll
The file was modifiedllvm/test/Transforms/Scalarizer/constant-insertelement.ll
The file was modifiedllvm/test/Transforms/Scalarizer/dbginfo.ll
The file was modifiedllvm/test/Transforms/Scalarizer/scatter-order.ll
The file was modifiedllvm/test/Transforms/Scalarizer/crash-bug.ll
The file was modifiedllvm/test/Transforms/Scalarizer/dbgloc-bug.ll
The file was modifiedllvm/test/Transforms/Scalarizer/constant-extractelement.ll
The file was modifiedllvm/test/Transforms/Scalarizer/variable-extractelement.ll
The file was modifiedllvm/test/Transforms/Scalarizer/phi-bug.ll
The file was modifiedllvm/test/Transforms/Scalarizer/variable-insertelement.ll
The file was modifiedllvm/test/Transforms/Scalarizer/store-bug.ll
The file was modifiedllvm/test/Transforms/Scalarizer/phi-bug-inseltpoison.ll
The file was modifiedllvm/test/Transforms/Scalarizer/vector-gep.ll
The file was modifiedllvm/test/Transforms/Scalarizer/order-bug.ll
The file was modifiedllvm/test/Transforms/Scalarizer/intrinsics.ll
The file was modifiedllvm/test/Transforms/Scalarizer/order-bug-inseltpoison.ll

Summary

  1. Fixed plistlib API usage (details)
Commit 87eb0317d4e495863e865d701f099a0ec5b634be by kosov.pavel
Fixed plistlib API usage

plistlib API required the file object opened in the binary mode.
Test command: lnt checkformat tests/SharedInputs/sample-a-small.plist
Related to: https://reviews.llvm.org/D109235

Reviewed By: thopre

Differential Revision: https://reviews.llvm.org/D112136

Huawei Russian Research Institute, Saint-Petersburg
The file was modifiedlnt/formats/PlistFormat.py (diff)