LLVM/project 542a324llvm/lib/Target/WebAssembly WebAssemblyInstrBulkMemory.td

[WebAssembly] Fix memory operand names for memory.copy in tablegen. NFC (#220115)

The first immediate is the destination memory index and the second is
the source memory index according to the WebAssembly specification and
`LowerMemcpy` in `WebAssemblyISelLowering.cpp`.
DeltaFile
+7-7llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td
+7-71 files

LLVM/project 4bb34eacompiler-rt/lib/sanitizer_common CMakeLists.txt sanitizer_new_operators.inc

[sanitizer_common] Add operator new chain-handling framework (#201151)

Groundwork for #196388

[sanitizer_common] Add operator new chain-handling framework

Implement the operator new wrapper machinery required by
[new.delete.single]/3+/4 in shared sanitizer_common files so every
sanitizer can reuse it (avoids ~130 lines of duplication).

sanitizer_new_handler.h provides three main templates in namespace
__sanitizer (plus a NORETURN InvokeOnExhausted wrapper used internally):

  * RunNewHandlerChain<Alloc>(alloc)
      Runs std::get_new_handler() in a loop until either the
      allocation succeeds or the chain is exhausted (returns nullptr).

  * NewImplThrowing<Alloc, OnExhausted>(alloc, on_exhausted)
      Throwing operator new: runs the chain; on exhaustion either

    [66 lines not shown]
DeltaFile
+122-0compiler-rt/lib/sanitizer_common/sanitizer_new_handler.h
+114-0compiler-rt/lib/sanitizer_common/sanitizer_new_operators.inc
+2-0compiler-rt/lib/sanitizer_common/CMakeLists.txt
+238-03 files

FreeBSD/src ee44a57sys/kern kern_umtx.c

umtx: use a distribution-fair multiplier for the chain hash

  umtxq_hash() multiplies the key by 0x9E370001 and keeps the high bits.  That
  constant is 0x9E37 * 2^16 + 1, so it degenerates for keys whose spacing carries
  trailing zero bits: at a 64 KiB stride it puts 128 of 512 parked waiters onto a
  single chain mutex, and at 16 KiB and up it uses only a handful of the 512
  chains.  Base-system consumers never hit this because libthr places its own wait
  words 128 bytes apart, but a Linux-ABI runtime waiting on addresses it allocates
  itself lands squarely on the floor.  Switch to 0x61C88647, which leaves at most 3
  waiters per chain at the same stride; Linux made this exact change in 2016, after
  judging the sparse constants "actively bad for hashing".

Approved by:    adrian (mentor)
Reviewed by:    kib, adrian, emaste
Differential Revision:  https://reviews.freebsd.org/D58337

Signed-off-by: Nick Price <nprice at FreeBSD.org>
DeltaFile
+2-2sys/kern/kern_umtx.c
+2-21 files

LLVM/project f487a5allvm/test/Transforms/LoopVectorize/RISCV reg-usage-maxbandwidth.ll tail-folding-reduction-cost.ll, llvm/test/Transforms/LoopVectorize/VPlan/RISCV vplan-vp-intrinsics-reduction.ll

[LV] Auto generate RISCV analysis tests. NFC (#219879)

This patch re-generate some analysis RISCV tests by automatic update
scripts to make tests easier to update.
DeltaFile
+209-171llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics-reduction.ll
+75-77llvm/test/Transforms/LoopVectorize/RISCV/reg-usage.ll
+14-11llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reduction-cost.ll
+1-0llvm/test/Transforms/LoopVectorize/RISCV/reg-usage-maxbandwidth.ll
+299-2594 files

OpenBSD/ports PhdUw13games/boswars distinfo Makefile, games/boswars/patches patch-SConstruct patch-make_py

   update boswars to 2.8

   Includes official Python 3 support, removes BDEP on scons and fixes the
   included images so that we don't need to adjust them manually with optipng
   anymore.
VersionDeltaFile
1.9+43-0games/boswars/pkg/PLIST
1.33+13-18games/boswars/Makefile
1.1+24-0games/boswars/patches/patch-fabricate_py
1.1+12-0games/boswars/patches/patch-make_py
1.8+2-2games/boswars/distinfo
1.11+0-0games/boswars/patches/patch-SConstruct
+94-206 files

LLVM/project 576d63cclang/lib/Sema SemaOpenMP.cpp

One more place
DeltaFile
+3-2clang/lib/Sema/SemaOpenMP.cpp
+3-21 files

FreeBSD/src 742c549sys/dev/bxe bxe.c

bxe(4): don't feed a zero page size to ilog2 during ILT init

FreeBSD's bxe hardwires CNIC_SUPPORT() to 0, so bxe_ilt_set_info()
never enters the block that initializes the SRC and TM ILT clients.
Those two clients are left zeroed (page_size 0, flags 0), yet
ecore_ilt_init_page_size() calls ecore_ilt_init_client_psz() for all
four clients unconditionally. For SRC and TM that evaluates
ILOG2(page_size >> 12), i.e. ilog2(0). On an INVARIANTS kernel ilog2()
asserts "ilog argument must be nonzero" and panics the machine the
first time the interface is brought up (bxe_init -> bxe_nic_load ->
bxe_init_hw -> ecore_ilt_init_page_size). On a non-INVARIANTS kernel
it silently programs a bogus page-size register instead.

Restore the else branch that upstream Linux bnx2x carries: when CNIC
is not supported, mark the SRC and TM clients with ILT_CLIENT_SKIP_INIT
and ILT_CLIENT_SKIP_MEM so ecore_ilt_init_client_psz() skips them.

Root-caused from a crash dump on a BCM57810 (device 0x168e): the ILT
clients showed CDU and QM populated and SRC and TM zeroed with no skip

    [6 lines not shown]
DeltaFile
+5-0sys/dev/bxe/bxe.c
+5-01 files

LLVM/project c9b3b35llvm/lib/ExecutionEngine ExecutionEngine.cpp, llvm/unittests/ExecutionEngine ExecutionEngineTest.cpp

formatting

Created using spr 1.3.7
DeltaFile
+2-2llvm/lib/ExecutionEngine/ExecutionEngine.cpp
+1-0llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
+3-22 files

LLVM/project 49a3eb2llvm/unittests/ExecutionEngine ExecutionEngineTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1-1llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
+1-11 files

LLVM/project f162d3bllvm/unittests/ExecutionEngine ExecutionEngineTest.cpp

formatting

Created using spr 1.3.7
DeltaFile
+1-1llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
+1-11 files

LLVM/project 56ba19bllvm/unittests/ExecutionEngine ExecutionEngineTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1-1llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
+1-11 files

LLVM/project 05c9d36llvm/unittests/ExecutionEngine ExecutionEngineTest.cpp

formatting

Created using spr 1.3.7
DeltaFile
+1-1llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
+1-11 files

LLVM/project 9e1c789clang/lib/ScalableStaticAnalysis/Analyses/EntityPointerLevel EntityPointerLevel.cpp, clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations CppBoundedBuffers.cpp

Reland "[SSAF][clang-reforge] Add end-to-end clang-reforge tests (#219085)"

This reverts commit 459dffa2ef4af2e3fd96ff35a235a301bdeeb32c

The new test added in the original PR uses 'clang-apply-replacements'
conditionally now. It checks if the tool is available before using it.
When the tool is not there, it only checks against replacement offsets
and texts.

Final step of:
rdar://185840466
DeltaFile
+672-0clang/test/Analysis/Scalable/source-edit-generation/cpp-bounded-buffers-replacements.cpp
+25-9clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations/CppBoundedBuffers.cpp
+22-4clang/unittests/ScalableStaticAnalysis/SourceTransformation/CppBoundedBuffersTest.cpp
+8-0clang/test/Analysis/Scalable/source-edit-generation/lit.local.cfg
+1-1clang/lib/ScalableStaticAnalysis/Analyses/EntityPointerLevel/EntityPointerLevel.cpp
+728-145 files

LLVM/project 5aae245llvm/lib/Transforms/Vectorize VPlanUtils.cpp VPlanPatternMatch.h, llvm/test/Transforms/LoopVectorize/VPlan vplan-scev-address-idioms.ll

[VPlan] Compute SCEV for ptrtoaddr. (#219848)

SCEV models ptrtoaddr via getPtrToAddrExpr. Mirror that in
getSCEVExprForVPValue. ptrtoint stays unmodelled, as createSCEV returns
an unknown for it.

Adds m_PtrToAddr to VPlanPatternMatch.
DeltaFile
+5-4llvm/test/Transforms/LoopVectorize/VPlan/vplan-scev-address-idioms.ll
+6-0llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
+5-0llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+16-43 files

FreeBSD/ports 8de92acnet/telemt distinfo, net/telemt/files patch-src_config_tests_load__basic__tests_defaults__access__tests.rs patch-src_config_types_general.rs

net/telemt: Update 3.4.24 => 3.5.5

Port changes:
- Use telemt/telemt user/group for running the process
- Install /var/db/telemt directory for accounting files

Changelogs:
- https://github.com/telemt/telemt/releases/tag/3.4.25
- https://github.com/telemt/telemt/releases/tag/3.5.0
- https://github.com/telemt/telemt/releases/tag/3.5.1
- https://github.com/telemt/telemt/releases/tag/3.5.2
- https://github.com/telemt/telemt/releases/tag/3.5.3
- https://github.com/telemt/telemt/releases/tag/3.5.4
- https://github.com/telemt/telemt/releases/tag/3.5.5

Commit log:
https://github.com/telemt/telemt/compare/3.4.24...3.5.5

PR:             297927

    [2 lines not shown]
DeltaFile
+18-0net/telemt/files/patch-src_maestro_listeners_plan.rs
+17-0net/telemt/files/patch-src_config_types_general__impl.rs
+9-5net/telemt/distinfo
+5-7net/telemt/files/telemt.in
+11-0net/telemt/files/patch-src_config_types_general.rs
+10-0net/telemt/files/patch-src_config_tests_load__basic__tests_defaults__access__tests.rs
+70-124 files not shown
+82-1810 files

LLVM/project cba8a3bmlir/lib/Tools/mlir-pdll-lsp-server CMakeLists.txt

[mlir] Fix mlir-pdll-lsp-server link.

This is the same fix TableGenLspServerLib got in 9e469ced42cd.
This addresses the mlir-pdll-lsp-server instance of #152371.

MLIRPdllLspServerLib transitively needs LLVMTableGen, which is not part of
libLLVM.so, so MLIRPDLLParser already brings in static LLVMSupport. Linking the dylib here as well gives mlir-pdll-lsp-server two copies of LLVMSupport. Linking still succeeds, but with assertions view-output.test fails. The test trips over the two copies having different Hashing.h seeds, which is a separate defect to be addressed in another PR.

It has not shown up in CI because it needs the dylib and assertions at the same time, which rarely coincide. It also only became reachable once a3a25996b114 moved the LSP transport into libLLVM.so.
DeltaFile
+3-0mlir/lib/Tools/mlir-pdll-lsp-server/CMakeLists.txt
+3-01 files

LLVM/project b74db1bclang/lib/CIR/CodeGen CIRGenDecl.cpp, clang/test/CIR/CodeGen partial-array-cleanup.cpp

[CIR] Teach partial-array-destruction to work with arrays-of-records (#220045)

We currently assume that a partial-array destruction was a 1D array.
This is incorrect, as it can obviously be a MD array.

This patch comprehends the destruction across the array by using the
same begin/end iterators, but deleting these as element nodes.

Classic codegen does a full descent into the array types to do this
destruction, but I believe that is a side-effect of how it is going
through it. Treating arrays as contiguous and flattening the iterators
is effectively identical.

Note: Claude helped me extensively on the test, I believe all the
check-lines are correct, but I also pushed to make sure we got the full
structure checking correctly, so I hope this shows the differences above
properly.
DeltaFile
+365-0clang/test/CIR/CodeGen/partial-array-cleanup.cpp
+18-8clang/lib/CIR/CodeGen/CIRGenDecl.cpp
+383-82 files

LLVM/project 891e284compiler-rt/lib/ubsan/device ubsan_device_rpc.cpp ubsan_device_report.cpp, compiler-rt/lib/ubsan/offload ubsan_offload_rpc.cpp ubsan_offload_report.cpp

[compiler-rt] Rename ubsan_device to ubsan_offload

The host interceptor and GPU handler library serve offload, not a
generic device sanitizer. Keep the Apple add_ubsan_device_testsuite name.
DeltaFile
+0-368compiler-rt/lib/ubsan/device/ubsan_device_hsa.cpp
+368-0compiler-rt/lib/ubsan/offload/ubsan_offload_hsa.cpp
+0-343compiler-rt/lib/ubsan/device/ubsan_device_report.cpp
+343-0compiler-rt/lib/ubsan/offload/ubsan_offload_report.cpp
+0-241compiler-rt/lib/ubsan/device/ubsan_device_rpc.cpp
+241-0compiler-rt/lib/ubsan/offload/ubsan_offload_rpc.cpp
+952-95227 files not shown
+1,948-1,94933 files

LLVM/project 58ef32eclang/lib/Driver/ToolChains CommonArgs.cpp, clang/test/Driver fsanitize-undefined-offload.c

Device only and -shared fix
DeltaFile
+26-0clang/test/Driver/fsanitize-undefined-offload.c
+15-9clang/lib/Driver/ToolChains/CommonArgs.cpp
+41-92 files

LLVM/project 4945db9llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Analysis/ScalarEvolution addrec-vs-start-monotonic.ll

[SCEV] Use AddRec monotonicity in isKnownViaNonRecursiveReasoning. (#218280)

Monotonic AddRecs are never less than their start value; use that in
when reasoning about predicates involving an AddRec and its start value.

Improves results in a few cases on llvm-opt-benchmark-nightly:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/996

PR: https://github.com/llvm/llvm-project/pull/218280
DeltaFile
+318-0llvm/test/Analysis/ScalarEvolution/addrec-vs-start-monotonic.ll
+198-0llvm/test/Transforms/IndVarSimplify/addrec-vs-start-monotonic.ll
+26-0llvm/lib/Analysis/ScalarEvolution.cpp
+542-03 files

LLVM/project c1aa393bolt/include/bolt/Core Exceptions.h, bolt/lib/Core Exceptions.cpp

[BOLT] Parse .eh_frame CFI programs on demand to reduce memory

BOLT read the entire .eh_frame up front via DwCtx->getEHFrame(), which
parses and caches the CFI instruction program of every CIE/FDE in the
binary for the whole run. On a large binary, this dominated
file-object discovery: CFIProgram::parse accounted for ~6.5 GB and the
cached DWARFDebugFrame ~6.9 GB of live memory. Yet the CFI programs
are only consumed in CFIReaderWriter::fillCFIInfoFor, and only for the
functions BOLT actually disassembles. discoverFileObjects itself needs
nothing but each FDE's address and range for function-boundary checks.

Here we parse .eh_frame for its index only, and decode each function's
CFI program on demand, lazily, only for the functions that really need
it. In a large binary, DWARFDebugFrame::parse drops from 6922.2 MB
to 587.6 MB, the residual being the lightweight FDE/CIE index (entries
without instruction programs), and readSpecialSections falls from
7078.7 MB to 738.6 MB on the tested binary for which BOLT's RSS is
about 80-120GB.
DeltaFile
+26-8bolt/lib/Core/Exceptions.cpp
+20-5bolt/lib/Rewrite/RewriteInstance.cpp
+21-3bolt/include/bolt/Core/Exceptions.h
+67-163 files

LLVM/project 11a5053llvm/include/llvm/DebugInfo/DWARF DWARFContext.h DWARFDebugFrame.h, llvm/include/llvm/DebugInfo/DWARF/LowLevel DWARFCFIProgram.h

[DebugInfo] Allow .eh_frame CFI programs to be parsed lazily (#214895)

BOLT read the entire .eh_frame up front via DwCtx->getEHFrame(), which
parses and caches the CFI instruction program of every CIE/FDE in the
binary for the whole run. On a large binary, this dominated file-object
discovery: CFIProgram::parse accounted for ~6.5 GB and the cached
DWARFDebugFrame ~6.9 GB of live memory (from 5 to 10% of total anon peak
RSS).

This new interface allows DebugInfo's users to optionally parse CFIs on
demand, only when necessary. On BOLT, this is an important lever to
manage memory utilization when processing large binaries. A real use
case is also implemented in llvm-dwarfdump: it now decodes CFIs lazily,
so if a user requests a dump of a specific entry, only that entry is
decoded. If another entry in that section is invalid, we don't error
anymore as that entry won't be decoded if the user did not request it.
DeltaFile
+79-0llvm/test/tools/llvm-dwarfdump/X86/debug_frame_invalid_cfi_program.s
+70-3llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
+35-16llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
+44-2llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
+12-5llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
+5-0llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFCFIProgram.h
+245-266 files

OpenBSD/src Qk9u2Dusys/nfs nfs_vfsops.c

   NULL kernel pointers in nfs statfs(2) mount_info

   nfs differs from other filesystems in that mount arguments can come from
   both user and kernel space.

   nfs_mount() sets args->fh to a kernel pointer.  When root is on nfs,
   nfs_boot_getfh() also sets addr and hostname to kernel pointers.

   problem found and changes suggested by Andrew Griffiths
   ok miod@ millert@ deraadt@
VersionDeltaFile
1.136+4-1sys/nfs/nfs_vfsops.c
+4-11 files

LLVM/project f2872a8llvm/docs/CommandGuide llvm-objdump.md llvm-profdata.md

[docs] Finish MyST migration for remaining CommandGuide docs
DeltaFile
+73-80llvm/docs/CommandGuide/llvm-nm.md
+57-89llvm/docs/CommandGuide/llvm-offload-binary.md
+33-42llvm/docs/CommandGuide/llvm-pdbutil.md
+19-26llvm/docs/CommandGuide/llvm-remarkutil.md
+10-15llvm/docs/CommandGuide/llvm-profdata.md
+9-11llvm/docs/CommandGuide/llvm-objdump.md
+201-26326 files not shown
+257-34432 files

LLVM/project 24e976fbolt/include/bolt/Core BinaryContext.h, bolt/lib/Core BinaryContext.cpp

[BOLT] Fix data race on the shared .dwp DWARF context

As noted by labrinea, 775dc9b8bf58 ("[BOLT] Create and release .dwo
DWARF contexts incrementally") releases every DWO context at the end
of readDebugInfo, leaving the bucket threads of the DWARF rewrite to
re-open them on demand. With a .dwp package that moved the first touch
of a shared context into the parallel phase, and multiple threads
compete for it, in a race for the abbrev table, causing intermittent
failures in dwarf5-ftypes-dwp-input-dwo-output.test.

Open the split CUs of a package up front, from a single thread, and
resolve the abbreviation table of every unit in it. This is not
relevant for the non-dwp case, which is unaffected.
DeltaFile
+15-0bolt/lib/Core/BinaryContext.cpp
+8-1bolt/include/bolt/Core/BinaryContext.h
+5-0bolt/lib/Rewrite/DWARFRewriter.cpp
+28-13 files

NetBSD/pkgsrc-wip 387a9e1forgejo-runner Makefile, forgejo-runner/files forgejo-runner.sh

forgejo-runner: register missing dependencies

devel/git-base is necessary to clone the code of the actions, and
lang/nodejs is required to perform them.
DeltaFile
+5-1forgejo-runner/Makefile
+3-0forgejo-runner/files/forgejo-runner.sh
+8-12 files

FreeBSD/src 533918ctools/tools/nanobsd/embedded pandaboard.cfg

nanobsd: Remove pandaboard.cfg

Pandaboard (sys/arm/ti/omap4) is removed due to lack of HW.
Remove the pandaboard config file for nanobsd aswell.

Approved by: imp, jlduran, manu(mentor)
Diffrential revision: https://reviews.freebsd.org/D54319
DeltaFile
+0-35tools/tools/nanobsd/embedded/pandaboard.cfg
+0-351 files

OpenBSD/ports V1in0MOconverters/p5-Convert-Color distinfo Makefile

   update p5-Convert-Color to 0.18
VersionDeltaFile
1.17+4-2converters/p5-Convert-Color/Makefile
1.8+2-2converters/p5-Convert-Color/distinfo
+6-42 files

OpenBSD/ports SR3PqgQdevel Makefile

   +p5-meta
VersionDeltaFile
1.2609+1-0devel/Makefile
+1-01 files

OpenBSD/ports ymIW3Imdevel/p5-meta distinfo Makefile, devel/p5-meta/pkg PLIST DESCR

   Initial revision
VersionDeltaFile
1.1+21-0devel/p5-meta/Makefile
1.1+7-0devel/p5-meta/pkg/PLIST
1.1+6-0devel/p5-meta/pkg/DESCR
1.1+2-0devel/p5-meta/distinfo
1.1.1.1+0-0devel/p5-meta/pkg/PLIST
1.1.1.1+0-0devel/p5-meta/pkg/DESCR
+36-02 files not shown
+36-08 files