[Clang] Fix write-to-global TimePassesIsEnabled race condition in BackendConsumer ctor (#200102)
When multiple threads launch multiple clang::CompilerInstance to compile
sources, there is no crash but thread-sanitizer reports race condition
in simultaneously writing to global variables llvm::TimePassesIsEnabled
and llvm::TimePassesPerRun in BackendConsumer constructor.
This PR fixes it using ManagedStatic SmartMutex and SmartScopedLock.
[WebAssembly] Handle wide mask reductions in performSETCCCombine (#189358)
This extends `performSETCCCombine` to handle wide fixed-length mask
reductions such as `v32i1` and `v64i1`.
Small mask reductions already had good combines, but `v32i1`/`v64i1`
cases still fell back to scalar bitmask materialization. This change
adds a wide-mask path using chunked `wasm_anytrue` / `wasm_alltrue`,
while preserving the existing small-mask combines.
For example, a reduction like
%1 = icmp eq <32 x i16> %v, zeroinitializer
%2 = bitcast <32 x i1> %1 to i32
%3 = icmp ne i32 %2, 0
now avoids scalar bitmask reconstruction.
Fixed: https://github.com/llvm/llvm-project/issues/187294
stand: Revert the EFI loader back to strict mode
The change to relaxed mode has had too many unintended breakages. Revert
back to strict mode until that works for all the cases that are
currently broken.
Fixes: 784150fd2535, d69fc3a9dc71
PR: 295289
Sponsored by: Netflix
[BOLT][DebugInfo] Make parallel DWARF debug names generation deterministic(1/2) (#197670)
This change makes BOLT's split DWARF rewriting path produce
deterministic debug names output when processing CUs in parallel.
Previously, several pieces of state used while building `.debug_names`
and updating DWO names were populated during parallel CU processing.
This could make CU/TU index assignment, cross-
CU DIE lookup, and duplicate DWO name disambiguation depend on thread
scheduling order, which in turn could lead to non-reproducible output
across runs.
The patch moves DWO name collection into a deterministic pre-processing
step, pre-allocates debug names CU / foreign TU slots before concurrent
processing, protects cross-CU DIE tracking
with a mutex, and adds a stable tie-breaker when sorting accelerator
table entries. It also centralizes creation of the DWO output directory
before parallel work starts.
This improves reproducibility of BOLT output, makes debug info rewriting
less sensitive to parallel execution order, and avoids subtle
[8 lines not shown]
sysutils/trusted-firmware-a-imx8mq: add 2.6
This package provides mainline TF-A for the NXP i.MX 8M Quad platform,
for example used by u-boot for the Google's Coral Dev Board.
CI: add concurrency support to zfs-arm
The zfs-arm workflow was the only build/test workflow without a
concurrency block, so superseded runs were not cancelled.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Closes #18608
CI: apt-get update before purging host packages
The package removal ran against a stale package index and failed to
fetch a package that had been removed from the repository. Refresh
the index first.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Closes #18607
Closes #18609
racket-minimal: update to 9.2
- The match form checks that when non-linear patterns (patterns
where the same variable is used multiple times) are used with ...,
the two parts of the matched value actually are equal. Additionally,
match rejects non-linear patterns where one use of the variable is
used with ... and another is not. This repair could cause existing
code to fail.
- Typed Racket types for the asin and acos procedures correctly
handle situations where the function produces a complex number,
avoiding unsound results that were previously possible. This repair
could cause existing code to fail at compile time.
- The #%foreign-inline core syntactic form provides unsafe access
to facilities provided at the linklet layer by a Racket
implementation. This means that any code that handles all core
forms by enumeration will need to be updated.
[34 lines not shown]
racket: update to 9.2
- The match form checks that when non-linear patterns (patterns
where the same variable is used multiple times) are used with ...,
the two parts of the matched value actually are equal. Additionally,
match rejects non-linear patterns where one use of the variable is
used with ... and another is not. This repair could cause existing
code to fail.
- Typed Racket types for the asin and acos procedures correctly
handle situations where the function produces a complex number,
avoiding unsound results that were previously possible. This repair
could cause existing code to fail at compile time.
- The #%foreign-inline core syntactic form provides unsafe access
to facilities provided at the linklet layer by a Racket
implementation. This means that any code that handles all core
forms by enumeration will need to be updated.
[34 lines not shown]
bsdinstall: script: Fix scripted DISTRIBUTIONS
Restore exporting DISTRIBUTIONS to make it available to other scripts.
Reviewed by: imp, asomers
Fixes: dc14ae4217a0 ("bsdinstall: do pkgbase installations with the "script" command")
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D57319
(cherry picked from commit 283959bbe0863917c4fc3200a92d1055a4c89bdc)
devel/protobuf: Stop requiring gcc13
Upstream's bugfix for this is in 35.0, and it builds with gcc10.
Avoiding gcc13 is good just for avoiding, but it also allows qgis4 to
build on NetBSD 10, instead of failing due to the woes of varying
libstdc++. Leave the comment for now, until we're sure this is fixed.