SuccessChanges

Summary

  1. [mlir][SPIRV] Adding an attribute to capture configuration for cooperative matrix operations. (details)
  2. llvm-symbolizer: Ensure non-zero exit when an error is printed (details)
  3. [AMDGPU] Pre-commit test for D89187 (details)
  4. Fix typeo in attach failed error message. (details)
  5. llvm-symbolizer: Exit non-zero when DWARF parsing errors have been rendered (details)
  6. Fix llvm-symbolizer assembly-based test to require x86 and specify x86 when assembling (details)
  7. Revert "[LLD] Set alignment as part of Characteristics in TLS table." (details)
  8. [LLD] Set alignment as part of Characteristics in TLS table. (details)
  9. Increase timeout to find a dSYM in macos DownloadObjectAndSymbolFile (details)
  10. [SVE][NFC] Replace some TypeSize comparisons in non-AArch64 Targets (details)
  11. [TargetLowering] Replace Log2_32_Ceil with Log2_32 in SimplifySetCC ctpop combine. (details)
  12. [yaml2obj/obj2yaml] - Add support of 'Size' and 'Content' keys for all sections. (details)
  13. [libc][NFC] Add probability distributions for memory function sizes (details)
  14. [yaml2obj] - Allow specifying no tags to create empty sections in few cases. (details)
  15. [NFC] Correct name of profile function to Profile in APValue (details)
  16. [Statepoints] Unlimited tied operands. (details)
  17. [AMDGPU] Add objdump invalid metadata testcase (details)
  18. [lldb] Explicitly test the template argument SB API (details)
  19. [CodeGen][X86] Emit fshl/fshr ir intrinsics for shiftleft128/shiftright128 ms intrinsics (details)
  20. [AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector tests (details)
  21. [AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector support (details)
  22. [DebugInstrRef] Support recording of instruction reference substitutions (details)
Commit 6d9a72ec80bbf4cfe10c81c944542ca195fc8d02 by ravishankarm
[mlir][SPIRV] Adding an attribute to capture configuration for cooperative matrix operations.

Each hardware that supports SPV_C_CooperativeMatrixNV has a list of
configurations that are supported natively. Add an attribute to
specify the configurations supported to the `spv.target_env`.

Reviewed By: antiagainst, ThomasRaoux

Differential Revision: https://reviews.llvm.org/D89364
The file was modifiedmlir/lib/Dialect/SPIRV/TargetAndABI.cpp
The file was modifiedmlir/test/Dialect/SPIRV/target-and-abi.mlir
The file was modifiedmlir/include/mlir/Dialect/SPIRV/TargetAndABI.td
Commit 338dd138ea4a70b52ab48e0c8aa38ec152b3569a by dblaikie
llvm-symbolizer: Ensure non-zero exit when an error is printed

(this doesn't cover all cases - libDebugInfoDWARF has a default error
handler that prints errors without any exit code handling - I'll be
following up with a patch for that after this)
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
The file was modifiedllvm/test/tools/llvm-symbolizer/input-base.test
The file was modifiedllvm/test/tools/llvm-symbolizer/sym.test
The file was modifiedllvm/test/DebugInfo/symbolize-missing-file.test
The file was modifiedllvm/test/DebugInfo/symbolize-macho-universal-unknown-arch.test
Commit 75357ebc5017ac2f8e2be3fd098b23641a15a487 by carl.ritson
[AMDGPU] Pre-commit test for D89187
The file was addedllvm/test/CodeGen/AMDGPU/sgpr-phys-copy.mir
Commit b19856881c1624df8b667d672193be52dfa23846 by Jason Molenda
Fix typeo in attach failed error message.
<rdar://problem/70296751>
The file was modifiedlldb/tools/debugserver/source/RNBRemote.cpp
Commit a7b209a6d40d77b43a38664b1fe64513587f24c6 by dblaikie
llvm-symbolizer: Exit non-zero when DWARF parsing errors have been rendered
The file was addedllvm/test/tools/llvm-symbolizer/invalid-dwarf.s
The file was modifiedllvm/lib/DebugInfo/Symbolize/Symbolize.cpp
The file was modifiedllvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
Commit 1de0199748ef2a20cd146c100ea1b8e6726c4767 by dblaikie
Fix llvm-symbolizer assembly-based test to require x86 and specify x86 when assembling
The file was modifiedllvm/test/tools/llvm-symbolizer/invalid-dwarf.s
Commit f87c98def86be7b737799e9980af2a0b77e9bc28 by me
Revert "[LLD] Set alignment as part of Characteristics in TLS table."

Revert individual wip commits and will instead follow up with a
single commit with all the changes. Makes cherry-picking easier
and will contain all the right tags.

This reverts commit 32a4ad3b6ce6028a371b028cf06fa5feff9534bf.
This reverts commit 7fe13af676678815989a6d0ece684687953245e7.
This reverts commit 51fbc1bef657bb0f5808986555ec3517a84768c4.
This reverts commit f80950a8bb985c082b26534b0e157447bf803935.
This reverts commit 0778cad9f325df4d7b32b22f3dba201a16a0b8fe.
This reverts commit 8b70d527d7ec1c8b9e921177119a0d906ffad4f0.
The file was modifiedllvm/include/llvm/Object/COFF.h
The file was modifiedlld/test/COFF/tls-alignment-32.ll
The file was modifiedlld/COFF/Writer.cpp
The file was modifiedlld/test/COFF/tls-alignment-64.ll
Commit 6a73d6564a3c7d0757692aa93bdef5be0c8f01a5 by me
[LLD] Set alignment as part of Characteristics in TLS table.

Fixes https://bugs.llvm.org/show_bug.cgi?id=46473

LLD wasn't previously specifying any specific alignment in the TLS table's Characteristics field so the loader would just assume the default value (16 bytes). This works most of the time except if you have thread locals that want specific higher alignments (e.g. 32 as in the bug) *even* if they specify an alignment on the thread local. This change updates LLD to take the max alignment from tls section.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D88637
The file was modifiedlld/COFF/Writer.cpp
The file was modifiedlld/test/COFF/tls-alignment-64.ll
The file was modifiedllvm/include/llvm/Object/COFF.h
The file was modifiedlld/test/COFF/tls-alignment-32.ll
Commit af5504edd6815d085de8aa66efcd7150d6315a51 by Jason Molenda
Increase timeout to find a dSYM in macos DownloadObjectAndSymbolFile

With a large dSYM over a slow home connection, the two minute timeout
would sometimes be exceeded, and we haven't seen instances of a
long timeout causing people any problems, so we're bumping it up.

640 seconds ought to be enough for anyone.

<rdar://problem/67759526>
The file was modifiedlldb/source/Symbol/LocateSymbolFileMacOSX.cpp
Commit 47f2dc7e5ff945f72264837bcad8595042c5e84f by david.sherwood
[SVE][NFC] Replace some TypeSize comparisons in non-AArch64 Targets

In most of lib/Target we know that we are not dealing with scalable
types so it's perfectly fine to replace TypeSize comparison operators
with their fixed width equivalents, making use of getFixedSize()
and so on.

Differential Revision: https://reviews.llvm.org/D89101
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/Target/MSP430/MSP430ISelLowering.cpp
The file was modifiedllvm/lib/Target/Mips/MipsCallLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMCallLowering.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/Mips/MipsISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modifiedllvm/lib/Target/Sparc/SparcISelLowering.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp
Commit 50c9f1e11d18aa2a784a2e2f9676e7c3e356f5ad by craig.topper
[TargetLowering] Replace Log2_32_Ceil with Log2_32 in SimplifySetCC ctpop combine.

This combine can look through (trunc (ctpop X)). When doing this
it tries to make sure the trunc doesn't lose any information
from the ctpop. It does this by checking that the truncated type
has more bits that Log2_32_Ceil of the ctpop type. The Ceil is
unnecessary and pessimizes non-power of 2 types.

For example, ctpop of i256 requires 9 bits to represent the max
value of 256. But ctpop of i255 only requires 8 bits to represent
the max result of 255. Log2_32_Ceil of 256 and 255 both return 8
while Log2_32 returns 8 for 256 and 7 for 255

The code with popcnt enabled is a regression for this test case,
but it does match what already happens with i256 truncated to i9.
Since power of 2 is more likely, I don't think it should block
this change.

Differential Revision: https://reviews.llvm.org/D89412
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/ctpop-combine.ll
Commit 400103f3d5f1f1d3e7dd02531f9db71a049ac507 by grimar
[yaml2obj/obj2yaml] - Add support of 'Size' and 'Content' keys for all sections.

Many sections either do not have a support of `Size`/`Content` or support just a
one of them, e.g only `Content`.

`Section` is the base class for sections. This patch adds `Content` and `Size` members
to it and removes similar members from derived classes. This allows to cleanup and
generalize the code and adds a support of these keys for all sections (`SHT_MIPS_ABIFLAGS`
is a only exception, it requires unrelated specific changes to be done).

I had to update/add many tests to test the new functionality properly.

Differential revision: https://reviews.llvm.org/D89039
The file was modifiedllvm/test/tools/yaml2obj/ELF/stack-sizes.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/hash-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/llvm-addrsig-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/linker-options.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/dynamic-section-raw-content.yaml
The file was addedllvm/test/tools/yaml2obj/ELF/reloc-sec.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/llvm-deplibs-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/verneed-section.yaml
The file was addedllvm/test/tools/yaml2obj/ELF/group.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/sht-symtab-shndx.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/versym-section.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/verdef-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/note-section.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/mips-abi-flags.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/arm-exidx-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/gnu-hash-section.yaml
The file was addedllvm/test/tools/yaml2obj/ELF/nobits.yaml
The file was modifiedllvm/include/llvm/ObjectYAML/ELFYAML.h
The file was modifiedllvm/test/tools/yaml2obj/ELF/call-graph-profile-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/relr-section.yaml
Commit c400e01c6295f45e395bdeff5e6c37bd5777aa98 by gchatelet
[libc][NFC] Add probability distributions for memory function sizes

This patch adds memory function size distributions sampled from different applications running in production.
This will be used to benchmark and compare memory functions implementations.

Differential Revision: https://reviews.llvm.org/D89401
The file was addedlibc/benchmarks/MemorySizeDistributions.h
The file was addedlibc/benchmarks/MemorySizeDistributions.cpp
The file was modifiedlibc/benchmarks/CMakeLists.txt
Commit d8bb30c5518054c787b4278ab5a4ab371d86defe by grimar
[yaml2obj] - Allow specifying no tags to create empty sections in few cases.

Currently we have a few sections that
does not support specifying no keys for them. E.g. it is required that one
of "Content", "Size" or "Entries" key is present. There is no reason to
have this restriction. We can allow this and emit an empty section instead.

This opens road for a simplification and generalization of the code in `validate()`
that is discussed in the D89039 thread.

Depends on D89039.

Differential revision: https://reviews.llvm.org/D89391
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/stack-sizes.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/llvm-addrsig-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/gnu-hash-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/note-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/hash-section.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
Commit 53122ce2b39f5fb52c7a5933cc4cf32aad43568f by tyker
[NFC] Correct name of profile function to Profile in APValue

Capitalize the profile function of APValue such that it can be used by FoldingSetNodeID

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D88643
The file was modifiedclang/include/clang/AST/APValue.h
The file was modifiedclang/lib/AST/APValue.cpp
Commit 8c2b69d53a3234b24003929235cd2b4de62240dd by dantrushin
[Statepoints] Unlimited tied operands.

Current limit on amount of tied operands (15) sometimes is too low
for statepoint. We may get couple dozens of gc pointer operands on
statepoint.
Review D87154 changed format of statepoint to list every gc pointer
only once, which makes it trivial to find tiedness relation between
statepoint operands: defs are mapped 1-1 to gc pointer operands passed
on registers.

Reviewed By: skatkov

Differential Revision: https://reviews.llvm.org/D87915
The file was modifiedllvm/lib/CodeGen/MachineInstr.cpp
Commit 0ff4bc38ab088e75d15c4f1b76be67a9a64e8bae by sebastian.neubauer
[AMDGPU] Add objdump invalid metadata testcase

Checks that metadata and invalid message are printed.

Differential Revision: https://reviews.llvm.org/D89375
The file was addedllvm/test/tools/llvm-readobj/ELF/note-amdgpu-invalid.s
Commit 82ed18601dbc816e1f64407a926602f95bbeda32 by Raphael Isemann
[lldb] Explicitly test the template argument SB API
The file was addedlldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py
The file was addedlldb/test/API/lang/cpp/template-arguments/main.cpp
The file was addedlldb/test/API/lang/cpp/template-arguments/Makefile
Commit d7fa9030d47fa62ad443717f4d1c8da4096a1d6c by llvm-dev
[CodeGen][X86] Emit fshl/fshr ir intrinsics for shiftleft128/shiftright128 ms intrinsics

Now that funnel shift handling is pretty good, we can use the intrinsics directly and avoid a lot of zext/trunc issues.

https://godbolt.org/z/YqhnnM

Differential Revision: https://reviews.llvm.org/D89405
The file was modifiedclang/test/CodeGen/X86/ms-x86-intrinsics.c
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit 196bee9648a9b6f395c524b01be22898e7c3df33 by llvm-dev
[AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector tests
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/masked-cmp.ll
Commit fadd152317598aa71538948613ce24b094c5c7c2 by llvm-dev
[AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector support

Replace m_ConstantInt with m_APInt to support uniform vectors (with no undef elements)

Adding non-undef support would involve some refactoring of the MaskOps struct but this might still be worth it.
The file was modifiedllvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/masked-cmp.ll
Commit c521e44defb53d38a46f39e29870c628f25d124a by jeremy.morse
[DebugInstrRef] Support recording of instruction reference substitutions

Add a table recording "substitutions" between pairs of <instruction,
operand> numbers, from old pairs to new pairs. Post-isel optimizations are
able to record the outcome of an optimization in this way. For example, if
there were a divide instruction that generated the quotient and remainder,
and it were replaced by one that only generated the quotient:

  $rax, $rcx = DIV-AND-REMAINDER $rdx, $rsi, debug-instr-num 1
  DBG_INSTR_REF 1, 0
  DBG_INSTR_REF 1, 1

Became:

  $rax = DIV $rdx, $rsi, debug-instr-num 2
  DBG_INSTR_REF 1, 0
  DBG_INSTR_REF 1, 1

We could enter a substitution from <1, 0> to <2, 0>, and no substitution
for <1, 1> as it's no longer generated.

This approach means that if an instruction or value is deleted once we've
left SSA form, all variables that used the value implicitly become
"optimized out", something that isn't true of the current DBG_VALUE
approach.

Differential Revision: https://reviews.llvm.org/D85749
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/include/llvm/CodeGen/MIRYamlMapping.h
The file was modifiedllvm/lib/CodeGen/MIRParser/MIRParser.cpp
The file was addedllvm/test/DebugInfo/MIR/InstrRef/substitusions-roundtrip.mir
The file was modifiedllvm/lib/CodeGen/MIRPrinter.cpp
The file was modifiedllvm/lib/CodeGen/MachineFunction.cpp