[MLIR][SCFToOpenMP] Fix crash when lowering vector reductions (#173978)
This patch fixes a crash in the SCF to OpenMP conversion pass when
encountering scf.parallel with vector reductions.
- Extracts scalar element types for bitwidth calculations.
- Uses DenseElementsAttr for vector splat initializers.
- Bypasses llvm.atomicrmw for vector types (not supported in LLVM IR).
Fixes #173860
---------
Co-authored-by: Aniket Singh <amiket.singh.3200.00 at gmail.com>
[clang][c23] Avoid assertion on an invalid static constexpr variable (#175927)
In C static variables should have constant expressions in initializers
so we were checking this twice for constexpr variables and failing with
an assertion that was makes sure we don't do it.
This patch postpones the check just like it is done for file
scope constexpr variables in C already.
Fixes https://github.com/llvm/llvm-project/issues/173605
(cherry picked from commit 5b0270cb72f707f55e2ff5e97fc938afb3b81053)
[AMDGPU] Limit allocation of lo128 registers for occupancy
Parent change allows allocation of lo128 VGPRs from all 4 banks.
That may result in the undesired allocation leaving a hole of
maximum 128 registers in case if for example v0-v127 are allocated,
and v128-v255 are free.
Limit the available allocation order to the occupancy. Both hard
occupancy limits and occupancy achieved during scheduling are
considered. That is better to spill a register than to drop occupancy
in this case.
[analyzer] Invalidate the object in opaque ctor calls regardless if an arg refers to it (#170887)
The conservative call invalidation logic is a bit complicated, and would
deserve some refactoring.
When a call has some arguments, we escape them. Except, if its a pointer
to constant storage - because we assume that the program honors
const-correctness.
In that case, it puts it in the "Preserved" list to keep its contents.
However, if we had a constructor call that's job is to initialize an
object had a const pointer/reference parameter then the invalidation
didn't take place.
This meant that if the object was on the stack, that we start warning
about uninitialized fields when accessed. (See the example) Similar
could be achieved on the heap of course.
We should have honored the fact that the constructor should initialize
[9 lines not shown]
InstCombine: Introduce nsz flag on minimum/maximum in SimplifyDemandedFPClass (#173898)
Alive isn't particularly happy with this in the case where
one of the inputs could be zero, but I think
it's wrong: https://alive2.llvm.org/ce/z/dF7V6k
nsz shouldn't permit introducing a -0 result where
there wasn't one in the input here.
worklows/release-tasks: Remove the release-lit workflow (#174644)
This hasn't been working for a while, and I think we should wait until
lit is part of the llvm organization on pypi before we start trying to
automate its release again.
(cherry picked from commit a331728c7a68a08c621070b9cab5cf1f72b425e2)
[Serialization] Complete only needed partial specializations
It is unclear (to me) why this needs to be done "for safety", but
this change significantly improves the effectiveness of lazy loading.
Reviewed as part of https://github.com/llvm/llvm-project/pull/133057
Reapply "[libc++] Optimize std::find_if" (#175903) (#175921)
#175913 removed that `__builtin_assume_dereferenceable(ptr, 0)` implies
`ptr != nullptr`, which should allow us to use the builtin with LLVM 23.
This reverts commit 776c09c212e945fdceeae240b42c38df3dd34727.
[FMV][AArch64] Release notes for clang/llvm 22
Clang (support level upgraded to Release in ACLE)
- Resolver functions can use the PAC and BTI hardening settings.
- Users can override function version priority.
- Unreachable functions versions are diagnosed and ignored.
LLVM (bug fix and improvements in IPO/GlobalOpt)
- Fixed static resolution of indirect calls to versioned functions,
by separating unrelated caller versions which were mixed together.
- Improved the accuracy of the algorithm for low version counts.
vio: Support MTU feature
Add support for the VIRTIO_NET_F_MTU which allows to get the hardmtu
from the hypervisor. Also set the current mtu to the same value. The
virtio standard is not clear if that is recommended, but Linux does
this, too.
Use ETHER_MAX_HARDMTU_LEN as upper hardmtu limit instead of MAXMCLBYTES,
as this seems to be more correct.
If the hypervisor requests a MTU larger than ETHER_MAX_HARDMTU_LEN,
redo feature negotiation without VIRTIO_NET_F_MTU.
With this commit, OpenBSD finally works on Apple Virtualization.
Input and testing from @helg
ok jan@