[SLP] Recompute copyable operand deps for duplicate copyable nodes
A bundle may duplicate a previously built node that has copyable elements
(same schedulable instructions, different copyable lane) while the parent
node also has copyable elements. An operand modeled as a copyable element
in the previous node is then used directly by the new node, which is not
registered in the tree yet. Recomputing that operand's direct
dependencies at this point misses the direct use, so the scheduler
decrements the operand more times than its dependency count and trips the
unscheduled-deps assertion.
Defer recomputation of such operand dependencies via
RecalcCopyableOperandDeps and redo it at the next bundle scheduling, when
the duplicate node is part of the tree. Also clear and recompute the
direct dependencies of bundles whose user is a gather node referenced
through EdgeIdx == UINT_MAX in scheduleBlock, so combined gather
sub-entries get correct dependencies against the full tree.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/200564
[bazel] Fix compiler-rt:interception (#200561)
- Add `-DCOMPILER_RT_BUILD_PROFILE_ROCM=1`
- Prune `"lib/sanitizer_common/*.S"`, it means `*.inc.S`
- Add `-fvisibility=hidden`
Bazel doesn't add `-gline-tables-only` by default. Add flags to CMake
side to align the build to Bazel.
- `-DCOMPILER_RT_HAS_G_FLAG=OFF`
- `-DCOMPILER_RT_HAS_GLINE_TABLES_ONLY_FLAG=OFF`
pixman: drop support for MMX on x86
LLVM has dropped the ability to generate vectorized code using compiler
intrinsics for chips with MMX but without SSE2. The pixman library
detects available CPU features at runtime and will either fall back
to the generic implementation or use the SSE2 or SSSE3 code paths.
ok kettenis@ matthieu@ jsg@
libroken: Rename static pidfile_path to rk_pidfile_path
This is odd because libroken uses pidfile(3) AND it's own pidfile system.
So potentially it's managing two pidfiles.
libutil.h owns the pidfile namespace (other OS expose other names which
may conflict) so rename the local vars to rk_pidfile_*.
pidfile: Add functionality for use in sandboxing
pidfile_fd() returns the file descriptor of the locked pidfile so it can
be limited in sandboxes like Capsicum.
pidfile_unremoveable() will avoid unlink(2) being called at program exit
to avoid tripping any sandboxes like Pledge which may restrict it or
it's just not reachable anymore if the program is in a chroot(2).
pidfile_path() returns the path of the locked pidfile so it can be removed
by a process than can reach it if pidfile_unremoveable() has been called.
pidfile_unlock() just releases the resources held by the locked pidfile.
This is lighter weight than pidfile_clean() as it avoids a lseek and read.
- Reduce delays for MII access.
- Fix multicast filter setup (and thus IPv6).
- Align MAC address setup code with other drivers.
- Create bus_dma map with BUS_DMA_ALLOCNOW to prevent failures
when loading the map.