audio/praat: update to 7.0.01, latest upstream
Praat 7 has some breaking changes -- the location for configuration
has changed, and scripts are now trust-checked by praat.
While here, patch out the vendored version of zlib and use
the FreeBSD base-system one. The other externals should
probably get the same treatment.
Audio doesn't play (on FreeBSD 15, in KDE Plasma), but it
doesn't error out either.
Reported-by: portscout
[compiler-rt] Add version info to Windows runtime DLLs (#216408)
Windows runtime DLLs built by compiler-rt currently do not include
VERSIONINFO metadata. This leaves fields such as FileVersion,
ProductName, and ProductVersion empty in Windows file properties.
LLVM and Clang already use windows_version_resource.rc to add this
metadata to Windows executables and shared libraries. compiler-rt uses a
separate CMake helper for runtime libraries, so its DLLs do not inherit
that support.
Add compiler-rt support for attaching the shared LLVM Windows version
resource to MSVC shared runtime targets. The resource file is copied to
a target-specific file before being added as a source, so each DLL can
use its own source properties.
Use LLVMVersion.cmake to fill in the version fields. This gives runtime
DLLs such as clang_rt.asan_dynamic-x86_64.dll FileVersion and
ProductVersion values matching the LLVM version.
[2 lines not shown]
[Transforms] Infer attributes for posix_memalign
posix_memalign writes the allocated pointer through its first argument but does not retain the address of that output slot. Model the contract with noundef, nounwind, willreturn, captures(none), writeonly, and arg/inaccessible/errno memory effects.
The missing capture information caused Attributor to treat an alloca passed to posix_memalign as escaped, preventing noalias inference at a later callback call site. Test both the inferred declaration attributes and the OpenMP callback-lifetime case that exposed the missing model.
[OpenMP] Seed noalias for host callback captures
The generic Attributor can derive noalias and the related lifetime facts for callback-mapped capture arguments, but OpenMPOpt does not seed AANoAlias in its restricted host run. Consequently capture-container loads remain in loops under dereferenceable-at-point semantics.
Seed AANoAlias for pointer arguments mapped to broker operands by callback metadata. Existing call-site reasoning checks every callback and direct call site and rejects escaped or aliased slots. LICM can then hoist immutable capture-container loads without changing the callback ABI or adding an OpenMP-specific hoisting transform.
Add LLVM, Clang, and Flang coverage for pointer, scalar, and aggregate captures together with escaped, duplicated, unmapped, and unknown-use negatives.
[Attributor] Check callback broker argument aliases correctly
AbstractCallSite uses separate callback argument and broker operand numbers. AANoAliasCallSiteArgument currently skips the callback argument number while iterating broker operands, which can skip an unrelated operand and incorrectly infer noalias for aliased callback arguments.
Skip the mapped call-site operand instead. Add a duplicated-operand regression where the callback and broker argument numbers differ.
[lldb][NativePDB] Build parent map on demand (#216821)
Currently, the PDB plugin builds a map from nested structs to parents,
because such a mapping is not available in the TPI stream. To do this,
we're walking the entire TPI stream. If that stream is large, this can
take time. We've been doing this in `InitializeObject`, so it
immediately ran. Inside the same function, we're also scanning the
basenames of types for `FindTypes`.
When the debugger starts, we usually don't need this information, as we
don't create/query any types at that point. Thus, I made this lazy.
Running `build-rel/bin/lldb build-dbg/bin/lldb -o r -o q -- -o q` goes
from 8.8s to 7.6s. The majority of time is still spent in
`Symtab::InitNameIndexes` preloading symbols. We could try to
parallelize that if we have some worker threads to spare. Which, in this
case, we do.
Firewall: NAT: Source NAT: fix port alias and well known port usage in target_port (#10793)
* Firewall: NAT: Source NAT: fix port alias usage in target_port
* Add use statements for BooleanField and ProtocolField
[PowerPC][Clang] fix IEEE f128 complex div/mul use IBM f128 libcalls on powerpc (#218151)
fixes https://github.com/llvm/llvm-project/issues/216820
Previously the IBM f128 libcall was used also for IEEE f128 complex
mul/div.
[clang][bytecode] Add `StringPointer` (#216736)
This is a new pointer type that points to a string literal. We do not
allocate any memory for it but we _can_ read from it.
A `StringPointer` only consists of a `StringLiteral` (or rather a
"Base", which can also be a `PredefinedExpr`), and an ID which is only
increased on `GetStringPtr` ops. This way we can know whether two
literals have been created via the same evaluation. This is needed for
the "overlapping string literals" diagnostics, particularly in the loop
case:
```c++
constexpr bool different_in_loop(bool b = false) {
if (b) return false;
const char *p[2] = {};
for (const char *&r : p)
r = "hello";
[4 lines not shown]
www/phpgroupware: Deprecate, upstream is dead
The GNU Project has decommissioned the package (Savannah reports
"Development Status: 9 - Decommissioned"), the last release on
SourceForge dates back to 2010, git.savannah.gnu.org no longer carries
the repository, and no active fork exists. The phpgroupware.org domain
has lapsed and now redirects to an unrelated site, so point WWW at the
Savannah project page instead.
arm64: Fix the indentation of ID_AA64ISAR2_EL1
Some ID_AA64ISAR2_EL1 fields values are incorrectly indented. Values
have an extra space before the macro to make scanning for them easier.
Add this extra space to the two fields that were missing it.
Sponsored by: Arm Ltd
arm64: Use decimal values for op and CR macros
Using hex here breaks the instruction generated by MRS_REG_ALT_NAME.
Switch to a decimal value.
Sponsored by: Arm Ltd
[AArch64][GISel] Allow import of DAG FCVT/CVTF patterns using fixedpoint immediate (#215812)
Currently, fp_to_int(fmul) patterns only work for DAG, this is due to
the use of fixedpoint immediate type which GISel could not import.
Add GlobalISel matchers for fixed-point immediates, allowing these
patterns to be imported and used during instruction selection.
I originally added these to allow fp_to_int(fmul) fold DAG patterns from
this [PR](https://github.com/llvm/llvm-project/pull/210987) to import,
but this also enables fdiv(int_to_fmul) folds to work in GISel
[AArch64] Reject non-scalable types in named Z-register constraints (#217551)
LLVM currently handles typed named Z-register constraints
inconsistently. Depending on the operand type and whether SVE is
available, compilation may succeed, crash, or trigger an assertion.
Reject typed Z-register operands when SVE or streaming SVE is
unavailable, and reject non-scalable operand types. Preserve the
existing behavior for untyped Z-register clobbers.
Fixes #169027
[AArch64][Atomics] Add test file for testing <1xTy> store atomics (#216028)
Currently, there exists no testing for <1xTy> store atomic.
These used to throw a widening legalization error but was fixed due to
this [PR](https://github.com/llvm/llvm-project/pull/197618)
Add these tests for AArch64 to ensure regression does not occur.
Note: Currently <1xi64> has a instruction selection issue and this is
why it has not been added.
A future patch will fix this case.
[AArch64][SelectionDAG] Optimise ADDLV reductions inserted into zero vector (#215814)
{U/S}ADDLV instruction inserts result into lane 0 and clear unused lanes
to zero, so we can just return the result as a vector without extra
insert into a zeroed vector.
Add patterns that recognize the redundant zero vector insert and remove
it.
Add middleware support for LIO ALUA HA
Wire up the middleware side of LIO ALUA high-availability: load
lio_ha.ko with per-node addresses on service start, manage ALUA
state across failover events, clean up STANDBY configfs on pool
export, and add pre-flight validation that targets have static
initiator ACLs before ALUA can be enabled.
For each target, create a portal-less phantom TPG carrying the peer
node's controller group so that a single RTPG response from any
connected port lists both ALUA groups. Write tpgt_N/rtpi explicitly
before enable so that relative target port IDs in RTPG match the
tag formula (portal.tag on Node A, portal.tag + 32000 on Node B)
rather than being auto-assigned sequentially by the kernel.
ALUA group states are driven by role and ha_state:
MASTER + synced local=OPTIMIZED remote=NONOPTIMIZED
MASTER + connected local=OPTIMIZED remote=TRANSITIONING
[4 lines not shown]
[AMDGPU] Reject SDWA forms the subtarget cannot encode (#218592)
isConvertibleToSDWA only checked the base opcode, so it could still fold
into an SDWA form the target cannot encode and crash later
[mlir] Build llvm.mlir.constant attributes from the result type
Many conversion patterns created `llvm.mlir.constant` with a value attribute
whose type does not match the result type. The most common case was pairing an
`index`-typed attribute with the converted index type:
llvm.mlir.constant(1 : index) : i64
but there were also plain width and signedness mismatches, e.g. NVGPU's
`makeI64Const` built `i64` constants from `i32` attributes, and the NVVM
`fdiv` expansion used `ui32` attributes on `i32` values.
Translation to LLVM IR ignores the attribute type and uses the result type, so
the emitted IR was correct, but the attribute type is meaningless in this state
and anything that reads it back sees the wrong type. Derive the attribute from
the result type in every case; where the result is the converted index type the
existing `createIndexAttrConstant` helper does this already, so use it. In
`ArithToLLVM`, retype the value attribute when the type converter maps `index`
to a different integer type, and fail the match rather than reinterpret a
[5 lines not shown]
[flang][CodeGen] Fix element type of folded insert_on_range initializers (#218587)
`GlobalOpConversion` folds a full-range `fir.insert_on_range` into a
dense constant. When the inserted value comes from a `fir.convert`, the
fold reached through the conversion and built the dense attribute from
the type of the *source* constant. For a `logical(4)` array initialized
to `.true.` this produced
```
llvm.mlir.constant(dense<true> : vector<32768xi1>) : !llvm.array<32768 x i32>
```
where the attribute element type `i1` disagrees with the result element
type `i32`. Translation to LLVM IR ignores the attribute type and uses
the result type, so the emitted global is still correct today, but the
IR is malformed and any consumer that trusts the attribute type sees the
wrong element width.
Build the dense attribute from the converted element type instead. A
[9 lines not shown]