LLVM/project af86d78llvm/lib/Target/AMDGPU GCNCreateVOPD.cpp, llvm/test/CodeGen/AMDGPU vopd3-imm-fold.ll bf16.ll

[AMDGPU] Form VOPD3 pairs with pair-local literal moves (#223431)

VOPD3 cannot encode literal operands, but its src0 can read scalar
registers. In this PR, we try to allow to form a pair with one distinct
non-inline constant value by moving that value to a free SGPR. If both
components use the same value, one move serves both, but we reject pairs
that need two different values, since that doesn't buy us anything.
Ffunctions without tracked liveness, and functions optimized for size
are also rejected.

With this change, `GCNCreateVOPD` checks every adjacent pair before it
selects a greedy non-overlapping pair. This lets an infeasible pair fall
through to the overlapping next one. We use one reverse liveness walk to
find an SGPR that is free over each pair-local range. Disjoint selected
pairs can reuse the same SGPR. Each accepted pair adds at most one
`S_MOV_B32` for the one instruction removed by fusion.

The post-RA scheduler uses the same matcher policy, so it will not
cluster a two-value pair that the create pass cannot build.

    [4 lines not shown]
DeltaFile
+383-393llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.ll
+326-308llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp-fp8-hw.ll
+433-0llvm/test/CodeGen/AMDGPU/vopd3-imm-fold.mir
+225-181llvm/test/CodeGen/AMDGPU/bf16.ll
+373-0llvm/test/CodeGen/AMDGPU/vopd3-imm-fold.ll
+201-26llvm/lib/Target/AMDGPU/GCNCreateVOPD.cpp
+1,941-90847 files not shown
+3,280-2,06253 files

LLVM/project 36f2ef2mlir/include/mlir/Dialect/Affine/Analysis AffineAnalysis.h, mlir/lib/Dialect/Affine/Analysis AffineAnalysis.cpp

[MLIR][Affine] Refactor dependence testing to work on relations, not just on operations (#223188)

This change is effectively NFC for all users of affine dependence
analysis in the tree or outside. It performs a minor refactoring of the
API to allow more general usage.

`checkMemrefAccessDependence` takes two `MemRefAccess`es, each wrapping
an operation, so it can only be asked about accesses that already exist.
A transformation deciding whether to make a change has the opposite
question: whether the accesses it is about to create would depend on
each other. Loop fusion is one -- whether the stores of a slice would
still be one-to-one in the loops it is about to be placed under settles
whether their parallelism survives it, and it has to know before it
fuses.

Nothing in the dependence analysis needs the operations. Everything from
the point where the two access relations are in hand -- inverting one,
composing, adding the ordering constraints, testing the result for
emptiness -- is already relation-only. Split that out as

    [12 lines not shown]
DeltaFile
+32-12mlir/lib/Dialect/Affine/Analysis/AffineAnalysis.cpp
+29-0mlir/include/mlir/Dialect/Affine/Analysis/AffineAnalysis.h
+61-122 files

FreeBSD/ports 653a9d0sysutils/fwup distinfo Makefile

sysutils/fwup: Update 1.16.0 => 1.17.1

Changelogs:
https://github.com/fwup-home/fwup/releases/tag/v1.17.0
https://github.com/fwup-home/fwup/releases/tag/v1.17.1

Improve port:
- Switch from USE_GITHUB to prepared by upstream tarball.
- Remove unnecessary dependencies.
- Remove unnecessary GNU_CONFIGURE_MANPREFIX.

PR:             298592
Sponsored by:   UNIS Labs
Co-authored-by: rottlog <rottlogg at proton.me>
DeltaFile
+8-19sysutils/fwup/Makefile
+3-3sysutils/fwup/distinfo
+11-222 files

LLVM/project 3626563llvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVOptWInstrs.cpp, llvm/lib/Target/RISCV/GISel RISCVCallLowering.cpp

[RISCV][GISel] Record SExt32 arguments for RISCVOptWInstrs. (#224154)

RISCVOptWinstrs can do a better job if its know what arguments are
already sign extended.

Assisted-by: Claude
DeltaFile
+294-0llvm/test/CodeGen/RISCV/GlobalISel/sextw-removal.ll
+33-0llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
+4-17llvm/test/CodeGen/RISCV/GlobalISel/rv64zbb.ll
+5-7llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
+2-4llvm/test/CodeGen/RISCV/GlobalISel/rv64zbkb.ll
+2-1llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+340-296 files

NetBSD/pkgsrc-wip 664d409. Makefile, mage PLIST DESCR

mage: Add new package for mage version 1.17.2.

This is a pretty simple Go package. Tested on Debian and FreeBSD.
DeltaFile
+14-0mage/Makefile
+5-0mage/distinfo
+5-0mage/COMMIT_MSG
+3-0mage/DESCR
+2-0mage/PLIST
+1-0Makefile
+30-06 files

FreeBSD/ports b7d3db0net/zapret2 Makefile distinfo

net/zapret2: Update 1.0.5.1 => 1.0.5.2

Approved by:            yuri@ (maintainer)
Differential Revision:  https://reviews.freebsd.org/D59750
DeltaFile
+3-3net/zapret2/distinfo
+1-1net/zapret2/Makefile
+4-42 files

FreeBSD/ports 97f922fmultimedia/smelter Makefile distinfo

multimedia/smelter: update 0.3.1 → 0.6.0

(cherry picked from commit 94e3ee3046ddd75fcaabacdf84924cedf0607f1a)
DeltaFile
+61-55multimedia/smelter/distinfo
+32-29multimedia/smelter/Makefile
+93-842 files

LLVM/project 577ab84llvm/lib/Target/AMDGPU SIRegisterInfo.cpp

Merge branch 'users/mssefat/anti-hints-pr3-amdgpu-apply' into users/mssefat/anti-hints-pr4-amdgpu-pre-ra
DeltaFile
+11-8llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+11-81 files

LLVM/project c409adellvm/lib/Target/AMDGPU SIRegisterInfo.cpp

Addressed reveiw
DeltaFile
+11-8llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+11-81 files

LLVM/project 1a87171llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, mlir/test/Target/LLVMIR openmp-teams.mlir

[OpenMPIRBuilder] Use generic pointers for outlined teams arguments (#222176)

createFakeIntVal models the thread and bound id arguments of the
function
outlined for a teams region as allocas. When the target's alloca address
space is not zero these were passed on as-is, so the outlined function
took
addrspace(5) pointers while __kmpc_fork_teams calls it with generic
ones.

Cast the alloca to address space zero when it is passed as a pointer,
which
only affects targets with a non-zero alloca address space such as
AMDGPU.
DeltaFile
+26-0mlir/test/Target/LLVMIR/openmp-teams.mlir
+7-0llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+33-02 files

FreeBSD/ports 33d6bd6graphics/filament Makefile distinfo, graphics/filament/files patch-filament_backend_src_PlatformFactory.cpp

graphics/filament: update 1.74.1 → 1.77.0

ChangeLog: https://github.com/google/filament/releases/tag/v1.77.0
DeltaFile
+47-8graphics/filament/files/patch-filament_backend_src_PlatformFactory.cpp
+6-3graphics/filament/pkg-plist
+3-3graphics/filament/distinfo
+1-1graphics/filament/Makefile
+57-154 files

FreeBSD/ports 0185429. MOVED, misc Makefile

misc/py-python-pygtrie: move to misc/py-pygtrie; update 2.5.0 → 2.6.2
DeltaFile
+24-0misc/py-pygtrie/Makefile
+4-0misc/py-pygtrie/pkg-descr
+3-0misc/py-pygtrie/distinfo
+1-1misc/Makefile
+1-0MOVED
+33-15 files

FreeBSD/ports b64544bmath/gap distinfo Makefile, math/gap/files patch-pkg-simpcomp-configure

math/gap: update 4.14.0 → 4.16.1

30+ port options were added for all compiled packages.
This is in addition to non-compiled packages that come with
the base GAP.

ChangeLog: https://github.com/gap-system/gap/blob/v4.16.1/CHANGES.md
DeltaFile
+22,697-10,125math/gap/pkg-plist
+108-11math/gap/Makefile
+10-8math/gap/files/patch-pkg-simpcomp-configure
+3-3math/gap/distinfo
+22,818-10,1474 files

OpenBSD/src Js3gV38usr.sbin/rtrctl rtrctl.8

   availale -> available
VersionDeltaFile
1.2+3-3usr.sbin/rtrctl/rtrctl.8
+3-31 files

LLVM/project c622900llvm/lib/Target/SPIRV SPIRVBuiltins.td, llvm/test/CodeGen/SPIRV/instructions scalar-integer-arithmetic.ll

[SPIR-V] Add missing __spirv_SMod builtin mapping (#223796)
DeltaFile
+18-0llvm/test/CodeGen/SPIRV/instructions/scalar-integer-arithmetic.ll
+1-0llvm/lib/Target/SPIRV/SPIRVBuiltins.td
+19-02 files

LLVM/project 91b1408llvm/include/llvm/CodeGen ResetMachineFunctionPass.h, llvm/lib/CodeGen ResetMachineFunctionPass.cpp

comments
DeltaFile
+8-3llvm/include/llvm/CodeGen/ResetMachineFunctionPass.h
+1-1llvm/lib/CodeGen/ResetMachineFunctionPass.cpp
+9-42 files

DragonFlyBSD/src d1bc137sys/vm vm_page.h

kernel - Update comments on PG_BUSY rules with page wirings

* Adjust code comments to reflect that a vm_page's wire_count can transition
  from 1->0 without being busied under certain circumstances.

* The pmap system is allowed to do this when removing pages because other
  references to the page are still present and there will be no race
  against a vm_page freeing operation.
DeltaFile
+6-2sys/vm/vm_page.h
+6-21 files

NetBSD/pkgsrc BJHv0oJdoc TODO

   doc/TODO: update bind

   + bind-9.20.29.
VersionDeltaFile
1.27928+2-2doc/TODO
+2-21 files

NetBSD/src 4BSXazLdoc 3RDPARTY

   new bind and unbound.
VersionDeltaFile
1.2248+5-5doc/3RDPARTY
+5-51 files

LLVM/project 839093dllvm/lib/IR AsmWriter.cpp

[IR] Avoid collecting COMDATs for non-module printing (#221460)

`AssemblyWriter` scans every global object in its constructor to collect
referenced COMDATs. That collection is only used when printing a
complete module, but the constructor also runs for standalone value and
instruction printing.

Move COMDAT emission into `printModule()`. Print each group at its first
global-object use and keep only a local set to avoid duplicate
declarations.

On `bench/sqlite/original/shell.ll` from `llvm-opt-benchmark`, the
median `opt -passes=dot-cfg` time dropped from 1.65 s to 0.40 s, about
4.1x faster. All 687 generated DOT files matched after normalizing
process-specific node IDs.
DeltaFile
+10-15llvm/lib/IR/AsmWriter.cpp
+10-151 files

OpenBSD/ports 1Rkv9Wgnet/tailscale Makefile distinfo

   Update to tailscale-1.102.4

   From Adriano Barbosa (maintainer)
VersionDeltaFile
1.70+2-2net/tailscale/distinfo
1.73+1-1net/tailscale/Makefile
+3-32 files

LLVM/project c899487flang-rt/include/flang-rt/runtime tools.h, flang-rt/lib/runtime environment.cpp assign.cpp

[flang-rt] Copy out only the modified suffix of an argument temporary (#222101)

`CopyOutAssign` currently copies the whole temporary back over the
original unconditionally. When the effective argument is not definable —
a named constant, for example — and the callee, conformingly, never
modified it, that copy-back stores unmodified bytes into storage that
may be read-only. With this change, `CopyOutAssign` scans the temporary
for the first element whose bit pattern differs from the original and
copies back only from that element through the end, in one fused pass:
an unmodified copy-out performs no stores at all, so compiler-generated
copy-out can never be the reason a conforming program writes into
read-only storage. The comparison is bitwise, which is exact here
because the temporary was created as a bitwise copy by `CopyInAssign`:
unmodified elements compare equal even for NaNs and padding bytes, which
a value comparison would misjudge.

The change is performance-neutral in practice (measurements summarized
in a comment below): copy-out's destination is essentially always
discontiguous — the temporary exists only because the actual argument

    [11 lines not shown]
DeltaFile
+231-0flang-rt/unittests/Runtime/Assign.cpp
+161-0flang-rt/lib/runtime/tools.cpp
+18-1flang-rt/lib/runtime/assign.cpp
+17-0flang/docs/RuntimeEnvironment.md
+15-0flang-rt/include/flang-rt/runtime/tools.h
+13-0flang-rt/lib/runtime/environment.cpp
+455-12 files not shown
+467-28 files

OpenBSD/src R5cb6zWsys/arch/amd64/conf Makefile.amd64

   update the list of amdgpu files to build with sse

   following the linux Makefiles it is amd/display/dc/dml*
   and dcn401_soc_and_ip_translator.c

   dml2_top_legacy.c is excluded as we don't build it

   prompted by a shorter diff from daniel@
VersionDeltaFile
1.146+56-28sys/arch/amd64/conf/Makefile.amd64
+56-281 files

DragonFlyBSD/src ab80faasys/vm vm_fault.c

kernel - Fix cryptsetup bug / fix bug in mlockall()

* mlockall() uncovererd an old bug in the VM system that was previously
  masked by other code.  The VM system going way way back assumed that
  wired pages were already wired and that at worst only a zero-fill was
  needed, so the TRYPAGER() macro checked for the case.

  However, when issuing a mlockall(), the refactored VM system uses
  vm_fault() to bring in missing wired pages to satisfy the request,
  was hitting the old condition, and doing a zero-fill instead.

* This caused cryptsetup() (one of the few programs to actually use
  mlockall()) to seg-fault under typical conditions.

* Fix by removing that part of the conditional.  Regardless of the
  wiring flags, the pager is still tried for non-default VM objects.

Reported-by: mneumann, aly
DeltaFile
+8-7sys/vm/vm_fault.c
+8-71 files

LLVM/project f144b3eclang/lib/Parse Parser.cpp, clang/lib/Sema SemaModule.cpp

[clang][Modules] make ActOnPrivateModuleFragmentDecl return non-null on success.  (#223757)

his code
```cpp
module;
module :private;
export module Foo;
```
a Private module fragment here is illegal because it can only be
declared in a primary module interface unit, instead of raising an error
clang crashed because of this assertion
```cpp
  assert((!getLangOpts().CPlusPlusModules ||
          SeenGMF == (bool)this->TheGlobalModuleFragment) &&
         "mismatched global module state");
``` 
the mismatch happened because `ParseModuleDecl` assigned ImporState
wether or not it was semantically correct:
```cpp

    [12 lines not shown]
DeltaFile
+8-5clang/lib/Parse/Parser.cpp
+5-0clang/test/Modules/mismatched_global_module_sate.cppm
+2-1clang/lib/Sema/SemaModule.cpp
+15-63 files

DragonFlyBSD/src 3d7bc73sys/platform/pc64/x86_64 pmap.c

kernel - Fix pmap wiring bug

* Fix a pmap wiring accounting bug.  The refactored wiring and pmap code
  expects only a single increment for a pmap wiring when the "W" bit
  transitions from 0 to 1, plus a count on the vm_page.

Found-by: Claude Sonnet 5 (aly)
DeltaFile
+2-3sys/platform/pc64/x86_64/pmap.c
+2-31 files

OpenBSD/ports ie9GGc6infrastructure/db user.list

   Comment out _ntopng following port removal
VersionDeltaFile
1.491+2-2infrastructure/db/user.list
+2-21 files

OpenBSD/ports mIVMdRbsysutils/moor Makefile distinfo

   Update to moor-2.19.1

   From Lydia Sobot (maintainer)
VersionDeltaFile
1.14+2-2sysutils/moor/distinfo
1.14+1-1sysutils/moor/Makefile
+3-32 files

NetBSD/src 0cqUwx5sys/kern uipc_usrreq.c

   uipc_usrreq: Fix unix-domain socket inode assignment.

   1. `if (unp->unp_ino == 0) unp->unp_ino = unp_ino++' would assign
      zero the first time around by mistake, and then assign nonzero
      after that.  `if (unp->unp_ino == 0) unp->unp_ino = ++unp_ino'
      avoids this silliness.

   2. Make the ++unp_ino part atomic.

   PR kern/60729: incosistent st_ino from the first stat(2) on a socket
VersionDeltaFile
1.210+25-5sys/kern/uipc_usrreq.c
+25-51 files

LLVM/project 86b7f51llvm/include/llvm/Transforms/IPO Attributor.h, llvm/lib/Transforms/IPO AttributorAttributes.cpp

[Attributor] Only seed live internal callees during deduction (#222226)

When a basic block becomes live, assumeLive marks its internal callees
live to seed attributes for deduction. Currently, this also happens when
a liveness AA is initialized during MANIFEST or CLEANUP, after the
fixed-point iteration has finished.

In CGSCC runs, cleanup can query the liveness of a shared caller for
each callee SCC. Seeding all internal callees in that caller's live blocks
can then cause quadratic initialization work.

Restrict this bulk seeding to SEEDING and UPDATE. Continue recording
live blocks and allow on-demand attribute queries in the later stages.
DeltaFile
+55-0llvm/test/Transforms/Attributor/cleanup-no-seeding.ll
+12-1llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+8-2llvm/include/llvm/Transforms/IPO/Attributor.h
+75-33 files