[IR] Split vector.splice into vector.splice.left and vector.splice.right (#170796)
This PR implements the first change outlined in
https://discourse.llvm.org/t/rfc-allow-non-constant-offsets-in-llvm-vector-splice/88974?u=lukel
In order to allow non-immediate offsets in the llvm.vector.splice
intrinsic, we need to separate out the "shift left" and "shift right"
modes into two separate intrinsics, which were previously determined by
whether or not the offset is positive or negative.
The description in the LangRef has also been reworded in terms of
sliding elements left or right and extracting either the upper or lower
half as opposed to extracting from a certain index, which brings it
inline with the definition of `llvm.fshr.*`/`llvm.fshl.*`.
This patch teaches AutoUpgrade.cpp to upgrade the old intrinsics into
their new equivalent one based on their offset, so existing uses of
vector.splice should still work.
[7 lines not shown]
[clang][bytecode] Fix a crash in `CheckExtern()` (#174428)
Check if the pointer field descriptor can be accessed at all before
calling `isInitialized()`, which relies on that.
Fixes https://github.com/llvm/llvm-project/issues/174382
[AMDGPU] Fix a potential use-after-erase in `AMDGPUPromoteAlloca` pass
In some cases, the placeholder itself can be used as the value for its corresponding block in `SSAUpdater`, and later used as an incoming value in another block in `GetValueInMiddleOfBlock`. If we erase it too early, this can lead to a use-after-erase. The tricky part is that it may not trigger any error right away, but can cause weird and completely unrelated issues later in the pipeline.
[libc++][NFC] Replace tag dispatch with `if constexpr` in `<any>` and `<variant>` (#173538)
Also simplify `any_cast<FunctionType>(ptr)` to directly return
`nullptr`.
[NFC][SystemZ] Update insert() API of the AssociatedDataAreaTable class
This patch updates the insert() calls of the AssociatedDataAreaTable class
to return a pair of <const MCSymbol *, uint32_t> instead of just a uint32_t.
This API change of including the MCSymbol is needed in subsequent patches
to come.
[RISCV] Add support for Xqcibi branch on immediate in RISCVRedundantCopyElimination (#174358)
This patch adds support for the `Xqcibi` branch on immediate
instructions in the `RISCVRedundantCopyElimination` pass. It removes
redundant copies of non-zero immediates where the register is implied to
have the same value as the immediate by a branch in the predecessor
basic block.
[clang][unittest] BasicTests fail to link (#174513)
DarwinSDKInfo.PlatformPrefix adds use of Triple but failed to add a link
to LLVMTargetParser, add that.
lib/libbl[ao]cklist: Use LIB_PACKAGE
This avoids e.g. utilities or ssh depending on the full blocklist
package just because they link against libblocklist.
This change moves files between packages so, until we have a proper
policy on how to handle this in release/stable branches, it should
not be MFC'd.
MFC after: never
Reviewed by: bapt
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53605
lib/libbl[ao]cklist: Use LIB_PACKAGE
This avoids e.g. utilities or ssh depending on the full blocklist
package just because they link against libblocklist.
This change moves files between packages so, until we have a proper
policy on how to handle this in release/stable branches, it should
not be MFC'd.
MFC after: never
Reviewed by: bapt
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53605
libypclnt: Move to yp package
This was previously in runtime, because pam_unix uses it and we don't
want to pull in the entire yp package as a dependency of runtime.
However, we can now use LIB_PACKAGE here to create a yp-lib package
to contain the library, which is a much more reasonable dependency.
Since libypclnt clearly belongs in the yp package, move it there.
This change moves files between packages so, until we have a proper
policy on how to handle this in release/stable branches, it should
not be MFC'd.
MFC after: never
Reviewed by: bapt
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53600
libypclnt: Move to yp package
This was previously in runtime, because pam_unix uses it and we don't
want to pull in the entire yp package as a dependency of runtime.
However, we can now use LIB_PACKAGE here to create a yp-lib package
to contain the library, which is a much more reasonable dependency.
Since libypclnt clearly belongs in the yp package, move it there.
This change moves files between packages so, until we have a proper
policy on how to handle this in release/stable branches, it should
not be MFC'd.
MFC after: never
Reviewed by: bapt
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53600
zstd: Move to a new zstd package
Zstd is a discrete, self-contained system component. To match how we
package zlib, bzip2 and xz, move it to its own package, with a separate
lib package.
Add the new package to the minimal set, since this is a core component
that users expect to be installed.
This change adds a new package to the system so, until we have a proper
policy on how to handle this in release/stable branches, it should not
be MFC'd.
MFC after: never
Reviewed by: bapt
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53603
zstd: Move to a new zstd package
Zstd is a discrete, self-contained system component. To match how we
package zlib, bzip2 and xz, move it to its own package, with a separate
lib package.
Add the new package to the minimal set, since this is a core component
that users expect to be installed.
This change adds a new package to the system so, until we have a proper
policy on how to handle this in release/stable branches, it should not
be MFC'd.
MFC after: never
Reviewed by: bapt
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53603
powerpc: Update CPUTYPE options in make.conf
Document the supported PPC/POWER CPUTYPEs in the example make.conf.
Update bsd.cpu.mk to handle CPUs newer than POWER9, and remove
32-bit CPUTYPEs since we no longer support those at all.
Reviewed by: imp, jhibbits
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D54257
powerpc: Update CPUTYPE options in make.conf
Document the supported PPC/POWER CPUTYPEs in the example make.conf.
Update bsd.cpu.mk to handle CPUs newer than POWER9, and remove
32-bit CPUTYPEs since we no longer support those at all.
Reviewed by: imp, jhibbits
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D54257