[NVPTX] Add intrinsics for ff/f16/bf16 to ue5m3 conversions (#218677)
This patch adds the following intrinsics for `ff/f16/bf16` to `ue5m3`
conversions introduced in PTX 9.4:
- `cvt{.rn,.rz,.rp}{.satfinite}.ue5m3x2.f32`
- `cvt{.rn,.rz}{.satfinite}.scaled::n1::ue8m0.ue5m3x2.f32`
- `cvt{.rn,.rz,.rp}{.satfinite}.ue5m3x2{.f16x2,.bf16x2}`
- `cvt{.rn,.rz}{.satfinite}.scaled::n1::ue8m0.ue5m3x2{.f16x2,.bf16x2}`
Tests have been verified through `ptxas-13.4`.
PTX ISA Reference:
https://docs.nvidia.com/cuda/developer-preview/13.4/parallel-thread-execution/index.html#data-movement-and-conversion-instructions-cvt
---------
Signed-off-by: DharuniRAcharya <dharunira at nvidia.com>
flang-rt: improve endian conversion performance (#218302)
Improve endian conversion performance in the flang runtime.
This patch updates the implementation of endian conversion in
flang-rt/lib/runtime/unit.cpp and adds a driver test for endian
conversion handling.
The modified helper functions were not unit-tested directly because
they have internal linkage.
Addresses #208193.
[SLP][modularisation][NFC] Move full-vector width helpers to SLPTypeUtils (2/2)
Move the following BoUpSLP-independent helpers out of SLPVectorizer.cpp
into SLPVectorizer/SLPTypeUtils.{h,cpp}:
getFullVectorNumberOfElements
getFloorFullVectorNumberOfElements
getMaskedDivRemType
hasFullVectorsOrPowerOf2
They build on the type helpers moved in (1/2). Behavior is unchanged.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
security/libgcrypt: Rephrase AVX512 description
It has been reported that the phrase "support for 14 and 15" is
ambiguous to some. Add "FreeBSD" to the description.
[SLP][modularisation][NFC] Move full-vector width helpers to SLPTypeUtils (2/2)
Move the following BoUpSLP-independent helpers out of SLPVectorizer.cpp
into SLPVectorizer/SLPTypeUtils.{h,cpp}:
getFullVectorNumberOfElements
getFloorFullVectorNumberOfElements
getMaskedDivRemType
hasFullVectorsOrPowerOf2
They build on the type helpers moved in (1/2). Behavior is unchanged.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
[SLP][modularisation][NFC] Move type/width helpers to SLPTypeUtils (1/2)
Move the following BoUpSLP-independent type/width helpers out of
SLPVectorizer.cpp into a new SLPVectorizer/SLPTypeUtils.{h,cpp}:
isValidElementType
getValueType
getWidenedType
SLPReVec is made non-static and extern-declared in SLPTypeUtils.cpp so
the moved helpers can reference it; behavior is unchanged.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
[alpha.webkit.UncountedLocalVarsChecker] Support obtaining guardian's value via operator* (#219647)
This PR fixes a bug in alpha.webkit.UncountedLocalVarsChecker that it
wasn't allowing a guardian variable's getter to be called when
initializing a raw pointer/reference.
Also fix a bug that operator* wasn't recognized as a valid getter on a
smart pointer.
---------
Co-authored-by: BalΓ‘zs Benics <benicsbalazs at gmail.com>
[Clang][Flang] Enable loop interchange by default at >O1 opt levels (#216920)
PR #124911 enabled the LoopInterchange pass by default in the LLVM
optimization pipeline (the PipelineTuningOptions default used by opt),
but the clang and flang frontends override that default and keep it off.
As a result, driving the compiler through clang or flang never runs loop
interchange unless -floop-interchange is passed explicitly.
Default -floop-interchange on in both frontends so they match the LLVM
pipeline default. opt enables the pass unconditionally
(PipelineTuningOptions::LoopInterchange defaults to true); the
optimization level gating happens naturally because the pass only lives
in the module optimization pipeline, so it runs at -O1 and above and is
absent at -O0. The decision is made in the frontend (-cc1/-fc1) for both
clang and flang, mirroring -funroll-loops; the flang driver only
forwards an explicit -f[no-]loop-interchange. An explicit
-fno-loop-interchange keeps it off at any level.
Compile-time impact is largely due to enablement of the new pass:
https://llvm-compile-time-tracker.com/?config=Overview&stat=instructions%3Au&remote=madhur13490
[clang][bytecode] Avoid `getSource()` calls in `diagnoseNonConstVariable()` (#219869)
There were some cases when `Loc` was not used. Avoid calling
`getSource()` in those cases.
[Coro][IR] Model memory effects of coro.alloc and coro.begin more precisely (#219870)
Consider the following code:
``` LLVM
%hdl1 = call ptr @llvm.coro.begin(token %coro.outer, ptr %mem1)
store ptr %hdl1, ptr %alloca, align 8
call i1 @llvm.coro.alloc(token %coro.inner)
call ptr @llvm.coro.begin(token %coro.inner, ptr %mem2)
%hdl1.ld = load ptr, ptr %alloca, align 8
%resumer = call ptr @llvm.coro.subfn.addr(ptr %hdl1.ld, i8 0)
invoke void %resumer(ptr %hdl1.ld)
```
The pattern occurs inside nested coroutines. Adding `memory(none)`
attributes allows GVN to replace the store-load with direct references
to `coro.begin`, thus enabling further optimizations. We can simplify
#57852 into single `ret 0` after this change.
[RISCV] Add further constraints on vsetvli intrinsics range (#219417)
The spec also mandates:
- `ceil(AVL / 2) β€ vl β€ VLMAX if AVL < (2 * VLMAX)`
- `vl = VLMAX if AVL β₯ (2 * VLMAX)`
This also reworks the constraints to be based on ConstantRange so `vl =
AVL if AVL β€ VLMAX` is no longer restricted to constants.
net/samba424: fix fortity and when python3 is disabled
Samba 4.24 doesn't build with Fortify feature.
When Python3 is disabled fix the cleanup commands
PR: 294595
Reported by: Rafe <mondo.debater_0q at icloud.com>
Reported by: Denis Shaposhnikov <dsh at bamus.cz>
Approved by: samba (kiwi)
Sponsored by: Klara, Inc.
vendor/lutok: import 0.6.2
This version contains several minor changes related to documentation and
new C++ standards conformance (C++-20+ is now required to build the
project).
This change also uses the version from the official release tarball whereas
the prior imported version (0.4) was committed directly from a git clone.
Obtained from: https://github.com/freebsd/lutok/releases/tag/lutok-0.6.2
[libc++] Do not define std::nothrow with VCRuntime ABI (#217694)
Avoid defining `std::nothrow` in libc++ when `_LIBCPP_ABI_VCRUNTIME` is
enabled.
VCRuntime already owns and provides `std::nothrow`, just as it owns the
global new/delete ABI.
Assisted-by: codex (for the test)