[IR] Mark reduction intrinsics as nocreateundeforpoison (#184173)
In investigating #156233, it came up that select folds like here:
https://alive2.llvm.org/ce/z/Y6jzj6 cannot be carried out, or easily
fixed for now, because integer reductions do not propagate noundef, even
if their arguments are noundef. This patch adds this propagation.
py-xml2rfc: updated to 3.32.0
3.32.0
New Features
- Drop support for Python 3.9
Bug Fixes
- Remove duplicate anchors from authors
- text: Avoid word breaks
py-apycula: updated to 0.30
0.30
Bump Yosys version
Add msgspec to Docker image
Fix examples.
Only push Docker image on push to master
Restructure CI: consolidate chipdb, split examples by board
optimize python packer
Replace pickle with msgspec MessagePack serialization
Speed up CI with ccache for yosys/nextpnr builds
Revert CI to upstream nextpnr
Clean up chipdb generation pipeline
Add a primitive comparison tool.
BUGFIX. Restore PLL routing.
ping(8): Fix pr_iph() to use ntohs() for ip_off field
The ip_off (flags + fragment offset) is a 16-bit field, so we should use
ntohs() instead of ntohl() to read it.
See also: https://reviews.freebsd.org/D38479
Makefile.inc1: Fix build-all/install-all/buildportschroot log directory
The log directory was ${GENLOGDIR} which hardcoded the "/usr/obj"
top-level directory. If user defines a custom MAKEOBJDIRPREFIX, the
GENLOGDIR would become wrong. Fix the issue by replacing GENLOGDIR with
DESTDIRBASE. In addition, remove the unnecessary 'mkdir ${GENLOGDIR}'.
While there, change the 'ldconfig' command in chroot to be
'/bin/sh -c "rcrestart ldconfig"', aligning with the one used in
nrelease/Makefile.
[clang][Sema] Fix initialization of GRO when GRO-return type mismatches (CWG2563) (#179156)
This patch implements one piece of proposed solution to
[CWG2563](https://cplusplus.github.io/CWG/issues/2563.html):
> get-return-object-invocation is as follows:
> ...
> otherwise, get-return-object-invocation initializes a variable with
the exposition-only name gro as if by
> decltype(auto) gro = promise.get_return_object();
Close #98744
[Clang][NFCI] Make unchanged global state const (#183478)
To avoid modifications to global state that does not currently need to
be modified, this patch makes a selection of trivial cases const. This
aims to help preserve the intention of these variables and reduce the
potential mutable global state surface of clang.
---------
Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
[Clang][NFCI] Initialize PredefinedNames immediately (#183295)
In isPredefinedUnsafeLibcFunc the set of predefined names is initialized
lazily. However, this pattern is redundant as function-scope static
variables are initialized on first pass through the control flow. This
commit makes the variable constant, makes it a non-heap object, and
initializes it immediately. This has the following benefits:
- The initialization pattern cleaner and potentially easier for the
compiler to optimize.
- Making the variable const avoids it being used as mutable global
state.
- Having immediate initialization removes a potential race condition.
Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
virtio: Fix cpu_lfence() wrong placement in virtqueue_dequeue()
The cpu_lfence() should be placed just after reading the 'used->idx',
before the 'vq_used_cons_idx' equality check and 'used->ring[]' access.
This is the correct use pattern of lfence.
More importantly, this fix an infinite loop in virtqueue_poll() that
happened when GCC 12.5 inlined the whole virtqueue_dequeue(). GCC
thought 'vq->vq_ring.used->idx' wouldn't change during the loop, so
hoisted the 'if (vq->vq_used_cons_idx == vq->vq_ring.used->idx)' into
its own loop and thus an infinite loop.
Maybe it's better to use atomic ops to read the 'vq_ring.used->idx' and
'vq_ring.used->flags' fields, which are updated by the host side. Need
to investigate this later.
OpenVPN: Add validation for selecting username as CN without setting any authentication (#9878)
Added validation to openvpn to ensure a user can't select username as CN without setting any authentication when adding/editing an openvpn instance.