SuccessChanges

Summary

  1. [DebugInfo] Avoid an infinite loop with a truncated pre-v5 .debug_str_offsets.dwo. (details)
  2. [NFCI][SimpleLoopUnswitch] Adjust CostKind query (details)
  3. [SVE] Fix bug in SVEIntrinsicOpts::optimizePTest (details)
  4. [AMDGPU] Enable .rodata for amdpal os (details)
  5. [lldb] Fix a crash when tab-completion an empty line in a function with only one local variable (details)
Commit 95fad44e34c3c20263961a715571d798d90921f6 by ikudrin
[DebugInfo] Avoid an infinite loop with a truncated pre-v5 .debug_str_offsets.dwo.

dumpStringOffsetsSection() expects the size of a contribution to be
correctly aligned. The patch adds the corresponding verifications for
pre-v5 cases.

Differential Revision: https://reviews.llvm.org/D85739
The file was addedllvm/test/DebugInfo/X86/dwarfdump-str-offsets-v4-invalid.s
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFUnit.cpp
Commit 725400f9933fe58273d4500d8d6a77a438c43798 by sam.parker
[NFCI][SimpleLoopUnswitch] Adjust CostKind query

When getUserCost was transitioned to use an explicit CostKind,
TCK_CodeSize was used even though the original kind was implicitly
SizeAndLatency so restore this behaviour. We now only query for
CodeSize when optimising for minsize.

I expect this to not change anything as, I think all, targets will
currently return the same value for CodeSize and SizeLatency. Indeed
I see no changes in the test suite for Arm, AArch64 and X86.

Differential Revision: https://reviews.llvm.org/D85829
The file was addedllvm/test/Transforms/SimpleLoopUnswitch/ARM/nontrivial-unswitch-cost.ll
The file was modifiedllvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
The file was addedllvm/test/Transforms/SimpleLoopUnswitch/ARM/lit.local.cfg
Commit 6c7957c9901714b7ad0a8d2743a8c431b57fd0c9 by david.sherwood
[SVE] Fix bug in SVEIntrinsicOpts::optimizePTest

The code wasn't taking into account that the two operands
passed to ptest could be identical and was trying to erase
them twice.

Differential Revision: https://reviews.llvm.org/D85892
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsic-opts-ptest.ll
The file was modifiedllvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp
Commit 9aa0ff77bdc762b70123192d7f0bd3e95bc83788 by sebastian.neubauer
[AMDGPU] Enable .rodata for amdpal os

PAL recently got support for multiple ELF sections and relocations,
therefore we can now use .rodata sections instead of forcing constants
into .text.

Differential Revision: https://reviews.llvm.org/D85895
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/global-value.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/global-constant.ll
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
Commit bbe3c479a6adf0abfe5d111e9ba206daa5a1eb2b by Raphael Isemann
[lldb] Fix a crash when tab-completion an empty line in a function with only one local variable

When LLDB sees only one possible completion for an input, it will add a trailing
space to the completion to signal that to the user. If the current argument is
quoted, that also means LLDB needs to add the trailing quote to finish the
current argument first.

In case the user is in a function with only one local variable and is currently
editing an empty line in the multiline expression editor, then we are in the
unique situation where we can have a unique completion for an empty input line.
(In a normal LLDB session this would never occur as empty input would just list
all the possible commands).

In this special situation our check if the current argument needs to receive a
trailing quote will crash LLDB as there is no current argument and the
completion code just unconditionally tries to access the current argument. This
just adds the missing check if we even have a current argument before we check
if we need to add a terminating quote character.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D85903
The file was modifiedlldb/source/Host/common/Editline.cpp
The file was modifiedlldb/test/API/commands/expression/multiline-completion/TestMultilineCompletion.py
The file was modifiedlldb/test/API/commands/expression/multiline-completion/main.c