[AMDGPU] IGroupLP: Avoid repeating reachability checks in greedy algorithm (#182463)
In the greedy pipeline solver, the group cost is found using the
addEdges function and the edges must be removed from the DAG after
processing each group. The best group edges are then reinserted using
the same function. This repeats the costly reachability checks inside
the function which become problematic for pipelines with many
SchedGroups.
The algorithm is changed to remember the best group edges instead of
recomputing them. Additionally, SchedGroup::tryAddEdge is refactored to
avoid a redundant cycle check which is already performed by DAG->addEdge.
[AArch64][GlobalISel] Limit srem by const of small sizes. (#184066)
The code in SignedDivisionByConstantInfo::get can only handle bitwidths
>= 3. This adds a check for bitwidth==1 for urem too, although it will
already have been simplified.
[libc] Reland add getc, ungetc, fflush to enable libc++ iostream on baremetal (#183556)
After https://github.com/llvm/llvm-project/pull/168931 landed getc,
ungetc and fflush are still missing at link time while trying to make
libc++ std::cout work with LLVM libc on baremetal.
ungetc implementation is very minimal only to cover the current standard
streams implementation from the patch above.
The original PR https://github.com/llvm/llvm-project/pull/175530 caused
build failure on Windows because of too long command line in the
generated *.bat file which was fixed by
https://github.com/llvm/llvm-project/issues/182374
[AMDGPU] IGroupLP: Refactor SchedGroup::initSchedGroup (NFC) (#184122)
There are three overloaded SchedGroup::initSchedGroup functions, two of
which are only used for specific types of SchedGroups, namely
SCHED_BARRIER and SCHED_GROUP_BARRIER. This seems to have a led to some
confusion since the different functions perform checks which are not
needed for their intended restricted use cases. Furthermore, there are
several wrong comments surrounding those functions.
Simplify the functions and inline the actual initialization parts of the
SCHED_BARRIER and SCHED_GROUP_BARRIER variants at their only call sites.
Extract a function that finds the candidate SUnits for a given
SchedGroup and use this instead of initSchedGroup. Fix comments.
[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.