[InstCombine] Fold shl of constant by cttz into multiply of lowest set bit (#214517)
Currently, `C << cttz(X, true)` generates a DeBruijn lookup table on
RV64I (13 instructions).
And this patch adds a fold in InstCombine:
`C << cttz(X, true) --> (-X & X) * C`
This reduces the instruction count from 13 to 3 on RV64I.
The fold requires that cttz has a single use (to avoid increasing
instruction count)
Alive2 proof: https://alive2.llvm.org/ce/z/TmWxrT
clang/AMDGPU: Stop passing redundant -target-cpu to cc1
Now that the exact target is encoded in the triple's subarch field,
-target-cpu is redundant. This avoids polluting the resultant IR with
unwanted "target-cpu" attributes. The net result is the desired codegen
when compiling libraries for a major subarch and linking it into a
program compiled for a specific arch. e.g., compiling for "gfx9-generic"
would pollute the IR with "target-cpu"="gfx9-generic", so codegen
would ultimately be performed for the generic target even after
linking into the concrete gfx9 cpu. The specialization will now be
achieved by merging the triples without the linker or optimization
passes needing to fixup function attributes.
AMDGPU: Start using subarch in attributor instead of subtarget
Avoid querying the subtarget for functions when the relevant
properties are known from the triple. The various subtarget
group size functions should also be decoupled from the subtarget,
but those are trickier to untangle.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
clang: Start using new amdgpu subarch triples
Fixup invocations using --target=amdgcn + -mcpu to introduce
the subarch in the triple.
For offload toolchains, a single toolchain is constructed for the
top level amdgpu architecture, and the effective triple is used for
target specific tool invocations.
The specifics of the resource directory layout are tbd. This does
try to find resources in the subarch named directory. The paths
are searched at toolchain creation time, so that does not work
when there are multiple subarches.
Fixes #154925
[Clang] Support friend declarations with a dependent nested-name-specifier (#208345)
Fixes https://github.com/llvm/llvm-project/issues/104057
---
This patch adds support for friend declarations with a dependent NNS
croc: Update to 11.1.1
What's Changed
fix: coloring by @schollz in #1240
docs(README.md): fix stale Go version requirement in README (Go 1.25+) by @Fawz-Haaroon in #1242
chore: upgrade to v11 by @schollz in #1246
fix: web load phrase faster by @schollz in #1247
fix: tests by @schollz in #1248
AMDGPU: Start using subarch in attributor instead of subtarget
Avoid querying the subtarget for functions when the relevant
properties are known from the triple. The various subtarget
group size functions should also be decoupled from the subtarget,
but those are trickier to untangle.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
clang/AMDGPU: Stop passing redundant -target-cpu to cc1
Now that the exact target is encoded in the triple's subarch field,
-target-cpu is redundant. This avoids polluting the resultant IR with
unwanted "target-cpu" attributes. The net result is the desired codegen
when compiling libraries for a major subarch and linking it into a
program compiled for a specific arch. e.g., compiling for "gfx9-generic"
would pollute the IR with "target-cpu"="gfx9-generic", so codegen
would ultimately be performed for the generic target even after
linking into the concrete gfx9 cpu. The specialization will now be
achieved by merging the triples without the linker or optimization
passes needing to fixup function attributes.
clang: Start using new amdgpu subarch triples
Fixup invocations using --target=amdgcn + -mcpu to introduce
the subarch in the triple.
For offload toolchains, a single toolchain is constructed for the
top level amdgpu architecture, and the effective triple is used for
target specific tool invocations.
The specifics of the resource directory layout are tbd. This does
try to find resources in the subarch named directory. The paths
are searched at toolchain creation time, so that does not work
when there are multiple subarches.
Fixes #154925
pnpm: update to 12.0.0-rc.3
Pkgsrc changes:
* Use pre-release RC tag instead of release tag.
* One more patch for NetBSD support.
pnpm 12.0.0-rc.4 needs to wait for pkgsrc Rust updating to v1.97.1.
AArch64: Use MIPatternMatch in PostLegalizerCombiner ext checks (#216512)
Replace the getVRegDef + opcode-check idiom with mi_match. Add an
m_GSExtInReg matcher for G_SEXT_INREG, which has an extra immediate
operand and so does not fit the plain unary-op matcher shape.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
X86: Fix optimizeCompareInstr crash on a compare from an undef register
getVRegDef returns null for undef sources, so the assert would fire.
Found by AI while working on other stuff.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
PeepholeOpt: Fix crash on copy from an undef register
Fix ValueTracker looking at the def chain of an undef subregister.
Found by AI while working on something else.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
p5-Log-Log4perl: update to 1.58.
1.58 2026-08-14
- fix Log::Log4perl::Catalyst losing log messages when two Catalyst apps
share a process - thanks @fleetfootmike
p5-Crypt-DES: update to 2.09.
2.09 2026-08-10
[Significant Changes since 2.08]
- Essentially 2.08-TRIAL with minor documentation and test updates
- Add a Security Considerations section to the pod
- Clarify module recommendations
- Move new Module::Whatever to Module::Whatever->new() in pod and tests
[Detailed Changes]
- 6d8a719 Increment the version for a release
- 8aa5583 Update .gitignore
- e4255e8 Update README
- bfc70b5 Add a Security Considerations section and clarifiy recommendations
- 6f3c622 Modernize module new() in tests
- 061b73a Fix over item back pod with blank lines
- cefb17d Modernize new() calling and fix missing SYNOPSIS
- 40eb31b Add a Changes file
[17 lines not shown]
converters/pecl-igbinary-session: New port: Replacement for the standard PHP serializer (+session support)
Igbinary is a drop in replacement for the standard PHP serializer.
Instead of time and space consuming textual representation, igbinary
stores PHP data structures in a compact binary form. Savings are
significant when using memcached or similar memory based storages for
serialized data.
This port supports sessions, a feature that is only available when the
session module is statically compiled into PHP. This port patch igbinary
to use the dynamically compiled session module.
WWW: https://pecl.php.net/package/igbinary