SuccessChanges

Summary

  1. Increase timeout to find a dSYM in macos DownloadObjectAndSymbolFile (details)
  2. [SVE][NFC] Replace some TypeSize comparisons in non-AArch64 Targets (details)
  3. [TargetLowering] Replace Log2_32_Ceil with Log2_32 in SimplifySetCC ctpop combine. (details)
  4. [yaml2obj/obj2yaml] - Add support of 'Size' and 'Content' keys for all sections. (details)
  5. [libc][NFC] Add probability distributions for memory function sizes (details)
  6. [yaml2obj] - Allow specifying no tags to create empty sections in few cases. (details)
  7. [NFC] Correct name of profile function to Profile in APValue (details)
  8. [Statepoints] Unlimited tied operands. (details)
  9. [AMDGPU] Add objdump invalid metadata testcase (details)
  10. [lldb] Explicitly test the template argument SB API (details)
  11. [CodeGen][X86] Emit fshl/fshr ir intrinsics for shiftleft128/shiftright128 ms intrinsics (details)
  12. [AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector tests (details)
  13. [AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector support (details)
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/NVPTX/NVPTXISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMCallLowering.cpp
The file was modifiedllvm/lib/Target/MSP430/MSP430ISelLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.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/SystemZ/SystemZISelLowering.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/SystemZ/SystemZTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.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/hash-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/relr-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/stack-sizes.yaml
The file was addedllvm/test/tools/yaml2obj/ELF/group.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/llvm-addrsig-section.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/arm-exidx-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/linker-options.yaml
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/include/llvm/ObjectYAML/ELFYAML.h
The file was addedllvm/test/tools/yaml2obj/ELF/reloc-sec.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/gnu-hash-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/verneed-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/llvm-deplibs-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/note-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/call-graph-profile-section.yaml
The file was addedllvm/test/tools/yaml2obj/ELF/nobits.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/verdef-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/mips-abi-flags.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/test/tools/yaml2obj/ELF/dynamic-section-raw-content.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.cpp
The file was addedlibc/benchmarks/MemorySizeDistributions.h
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/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/note-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/llvm-addrsig-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/hash-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/gnu-hash-section.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/stack-sizes.yaml
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/lib/AST/APValue.cpp
The file was modifiedclang/include/clang/AST/APValue.h
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/Makefile
The file was addedlldb/test/API/lang/cpp/template-arguments/main.cpp
The file was addedlldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py
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/test/Transforms/AggressiveInstCombine/masked-cmp.ll
The file was modifiedllvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp