LLVM/project da10c25clang/include/clang/AST ASTDumperUtils.h TextNodeDumper.h, clang/lib/AST TextNodeDumper.cpp ASTDumper.cpp

[AST][NFC] Move AST dump colors into separate namespace (#183341)

Preparatory work for Clang AST PCH, which will include ASTDumperUtils.h.
Polluting the clang namespace with colors would lead to a collision with
clang/lib/Frontend/TextDiagnostic.cpp.
DeltaFile
+62-62clang/lib/AST/TextNodeDumper.cpp
+45-42clang/include/clang/AST/ASTDumperUtils.h
+5-5clang/lib/AST/ASTDumper.cpp
+1-1clang/include/clang/AST/TextNodeDumper.h
+113-1104 files

FreeNAS/freenas 45bdaf0src/middlewared/middlewared/plugins/smb_ util_smbconf.py, tests/unit test_smb_share.py

NAS-139988 / 26.0.0-BETA.1 / Enable SMB3 unix extensions for multiprotocol shares (#18300)

When a share is configured for multiprotocol access, for example, SMB +
NFS, SMB + local via apps or containers, etc, then we will enable the
SMB3 unix extensions so that client operating systems that support them
(for example modern Linux kernels with SMB3 POSIX support) can use
filesystem primitives that are not normally exposed through standard SMB
semantics.

Some functionality depends on the configuration of the underlying
dataset. For example, you cannot interact with POSIX ACLs on a dataset
that is not configured to support POSIX ACLs.

Windows clients that do not support the extenions will continue to
behave normally.
DeltaFile
+1-0tests/unit/test_smb_share.py
+1-0src/middlewared/middlewared/plugins/smb_/util_smbconf.py
+2-02 files

LLVM/project 545c2a7llvm/lib/Transforms/Instrumentation AddressSanitizer.cpp, llvm/test/Instrumentation/AddressSanitizer fuchsia.ll

[clang][ASan][Fuchsia] Have Fuchsia use a dynamic shadow start (#182917)

These are the compiler changes that depend on the runtime changes in
https://github.com/llvm/llvm-project/pull/183154. The runtime changes
need to have landed first. The dynamic shadow global is still set to
zero, but this will change in the future.
DeltaFile
+9-0llvm/test/Instrumentation/AddressSanitizer/fuchsia.ll
+4-3llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+13-32 files

LLVM/project a52f611lld/test/wasm large-section.test large-debug-section.test, lld/wasm OutputSections.cpp InputChunks.h

[lld][Webassembly] Avoid a signed overflow on large sections (#183225)

wasm sections sizes are specified as u32s, and thus can be as large as
4GB. wasm-ld currently stores the offset into a section as an int32_t
which overflows on large sections and results in a crash. This change
makes it a int64_t to accommodate any valid wasm section and allow
catching even larger sections instead of wrapping around.

This PR fixes the issue by storing the offset as a int64_t, as well as
adding extra checks to handle un-encodeable sections to fail instead of
producing garbage wasm binaries, and also adds lit tests to make sure it
works. I confirmed the test fails on main but passes with this fix.

This is the same as https://github.com/llvm/llvm-project/pull/178287 but
deletes the temporary files the tests create and requires the tests run
on a 64-bit platform to avoid OOM issues due to the large binaries it
creates.
DeltaFile
+37-0lld/test/wasm/large-section.test
+31-0lld/test/wasm/large-debug-section.test
+23-0lld/test/wasm/section-too-large.test
+14-1lld/wasm/OutputSections.cpp
+5-1lld/wasm/InputChunks.h
+110-25 files

LLVM/project d2d862alibc/shared/math nexttowardf16.h, libc/src/__support/math CMakeLists.txt nexttowardf16.h

[libc][math] Refactor nexttoward family to header-only (#181685)

Closes https://github.com/llvm/llvm-project/issues/181684
DeltaFile
+82-3utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+48-0libc/src/__support/math/CMakeLists.txt
+34-0libc/src/__support/math/nexttowardf16.h
+29-0libc/shared/math/nexttowardf16.h
+28-0libc/src/__support/math/nexttowardl.h
+28-0libc/src/__support/math/nexttoward.h
+249-315 files not shown
+430-4321 files

LLVM/project e07a554llvm/lib/Target/AArch64 AArch64ConditionOptimizer.cpp, llvm/test/CodeGen/AArch64 combine-comparisons-by-cse.ll aarch64-condopt-unsigned.mir

[AArch64] Extend condition optimizer to support unsigned comparisons (#144380)

We have to be extra careful to not allow unsigned wraps, however. This
also required some adjusting of the logic in adjustCmp, as well as
compare the true imm value with add or sub taken into effect.

Because SIGNED_MIN and SIGNED_MAX cannot be an immediate, we do not need
to worry about those edge cases when dealing with unsigned comparisons.
DeltaFile
+663-0llvm/test/CodeGen/AArch64/combine-comparisons-by-cse.ll
+484-0llvm/test/CodeGen/AArch64/aarch64-condopt-unsigned.mir
+69-25llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
+1,216-253 files

LLVM/project 00de858llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlan.h, llvm/test/Transforms/LoopVectorize vplan-based-stride-mv.ll

[VPlan] Implement VPlan-based stride speculation
DeltaFile
+998-1,108llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
+264-145llvm/test/Transforms/LoopVectorize/VPlan/vplan-based-stride-mv.ll
+292-3llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+43-0llvm/lib/Transforms/Vectorize/VPlan.h
+5-5llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
+7-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+1,609-1,2615 files not shown
+1,630-1,26411 files

LLVM/project 269b2cbllvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp

Capitalize again
DeltaFile
+63-61llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+63-611 files

LLVM/project 525927ellvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp

Capitalize DL
DeltaFile
+57-57llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+57-571 files

LLVM/project 8e053bellvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp

Capitalize
DeltaFile
+41-41llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+41-411 files

LLVM/project bf50461llvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp AMDGPUISelLowering.cpp, llvm/test/CodeGen/AMDGPU llvm.exp10.f64.ll llvm.exp.f64.ll

AMDGPU: Implement expansion for f64 exp

I asked AI to port the device libs reference implementation.
It mostly worked, though it got the compares wrong and also
missed a fold that happened in compiler. With that fixed I get
identical DAG output, and almost the same globalisel output (differing
by an inverted compare and select). Also adjusted some stylistic choices.
DeltaFile
+11,178-0llvm/test/CodeGen/AMDGPU/llvm.exp10.f64.ll
+10,242-0llvm/test/CodeGen/AMDGPU/llvm.exp.f64.ll
+9,987-0llvm/test/CodeGen/AMDGPU/llvm.exp2.f64.ll
+117-9llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+116-1llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+31-7llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+31,671-176 files not shown
+31,729-6512 files

LLVM/project f1a9deelldb/source/Host/windows ConnectionGenericFileWindows.cpp

[lldb][windows] refactor ConnectionGenericFile's Read and Write methods (#183332)

DeltaFile
+97-151lldb/source/Host/windows/ConnectionGenericFileWindows.cpp
+97-1511 files

LLVM/project 1e560c1llvm/lib/Transforms/Vectorize VPlanConstruction.cpp VPlanTransforms.h

[LV] Remove CheckNeededWithTailFolding from addMinimumIterationCheck. NFC (#183066)

The IV can no longer overflow with tail folding after #183080.
DeltaFile
+5-27llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+5-7llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+2-2llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+12-363 files

LLVM/project 098b19bllvm/lib/Target/SPIRV SPIRVEmitNonSemanticDI.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-function.ll

[SPIRV] Add support for emitting DebugFunction debug info instructions

This commit adds support for emitting SPIRV DebugFunction and
DebugFunctionDefinition instructions for function definitions.
DeltaFile
+218-0llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp
+40-0llvm/test/CodeGen/SPIRV/debug-info/debug-function.ll
+258-02 files

LLVM/project a0eb5afllvm/lib/Target/SPIRV SPIRVModuleAnalysis.cpp

[SPIRV] Refactor NonSemantic debug info placement logic.

Refactor the logic for determining which NonSemantic.Shader.DebugInfo.100
instructions should be placed in the global section from a whitelist
to a blacklist approach.
DeltaFile
+14-7llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+14-71 files

LLVM/project 5164085llvm/lib/Target/SPIRV SPIRVEmitNonSemanticDI.cpp

[review] Simplify CUs collection even further.
DeltaFile
+3-6llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp
+3-61 files

LLVM/project ebdc689llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlan.h, llvm/test/Transforms/LoopVectorize vplan-based-stride-mv.ll

[VPlan] Implement VPlan-based stride speculation
DeltaFile
+4,150-1,108llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
+264-145llvm/test/Transforms/LoopVectorize/VPlan/vplan-based-stride-mv.ll
+291-3llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+43-0llvm/lib/Transforms/Vectorize/VPlan.h
+5-5llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
+7-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+4,760-1,2615 files not shown
+4,781-1,26411 files

LLVM/project 752b980llvm/include/llvm/MC MCTargetOptions.h MCTargetOptionsCommandFlags.h, llvm/lib/MC MCTargetOptionsCommandFlags.cpp ELFObjectWriter.cpp

[MC] Add --reloc-section-sym option to control section symbol conversion (#182725)

When generating relocations for non-ifunc local symbols that satisfies
several conditions, the integrated assembler converts them to reference
the section symbol (STT_SECTION) instead, folding the original symbol's
offset into the addend.  This allows the original local symbol to be
omitted from .symtab, but the STT_SECTION symbol itself must be present,
so the conversion saves .symtab entries only when a section has more
than one local symbol referenced by relocations.

As GAS will likely add --reloc-section-sym, add --reloc-section-sym to
control this
conversion:

- all (default): convert all eligible local symbols.
(Note: There are many ineligible conditions, see
ELFObjectWriter::useSectionSymbol)
- internal: only convert .L prefix local symbols (usually
compiler-generated)

    [10 lines not shown]
DeltaFile
+61-0llvm/test/MC/ELF/reloc-section-sym.s
+15-0llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+11-0llvm/include/llvm/MC/MCTargetOptions.h
+9-1llvm/lib/MC/ELFObjectWriter.cpp
+3-0llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+99-15 files

LLVM/project f613521llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

ValueTracking: Move fmul constant special case to KnownFPClass (#183157)

DeltaFile
+13-27llvm/lib/Analysis/ValueTracking.cpp
+20-0llvm/lib/Support/KnownFPClass.cpp
+4-0llvm/include/llvm/Support/KnownFPClass.h
+37-273 files

LLVM/project 31e4ad5lldb/include/lldb/Target ThreadList.h ThreadPlanStepOverBreakpoint.h, lldb/source/Target ThreadList.cpp ThreadPlanStepOverBreakpoint.cpp

Revert "[lldb] Batch breakpoint step-over for threads stopped at the same sit…"

This reverts commit 94d9f1b3cbb02700d9cd3339c1dbf44c0d13b550.
DeltaFile
+0-216lldb/test/API/functionalities/gdb_remote_client/TestBatchedBreakpointStepOver.py
+1-164lldb/source/Target/ThreadList.cpp
+0-127lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
+12-21lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
+0-23lldb/include/lldb/Target/ThreadList.h
+0-19lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h
+13-5706 files

FreeNAS/freenas f008151src/middlewared/middlewared/plugins/pool_ dataset_encryption_info.py, src/middlewared/middlewared/plugins/zfs dataset_encryption.py

accept bytes for raw key
DeltaFile
+15-5src/middlewared/middlewared/plugins/zfs/dataset_encryption.py
+3-0src/middlewared/middlewared/plugins/pool_/dataset_encryption_info.py
+18-52 files

LLVM/project af1bdadlibc/shared/math nextupf16.h nextupf128.h, libc/src/__support/math CMakeLists.txt nextupf16.h

[libc][math] Refactor nextup family to header-only (#181688)

Closes https://github.com/llvm/llvm-project/issues/181687
DeltaFile
+88-3utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+57-0libc/src/__support/math/CMakeLists.txt
+32-0libc/src/__support/math/nextupf16.h
+32-0libc/src/__support/math/nextupf128.h
+29-0libc/shared/math/nextupf16.h
+29-0libc/shared/math/nextupf128.h
+267-318 files not shown
+506-4424 files

FreeNAS/freenas 845a350src/middlewared/middlewared/plugins/smb_ util_smbconf.py, tests/unit test_smb_share.py

Enable SMB3 unix extensions for multiprotocol shares

When a share is configured for multiprotocol access, for example,
SMB + NFS, SMB + local via apps or containers, etc, then we will enable
the SMB3 unix extensions so that client operating systems that support
them (for example modern Linux kernels with SMB3 POSIX support) can use
filesystem primitives that are not normally exposed through standard
SMB semantics.

Some functionality depends on the configuration of the underlying
dataset. For example, you cannot interact with POSIX ACLs on a dataset
that is not configured to support POSIX ACLs.

Windows clients that do not support the extenions will continue to
behave normally.
DeltaFile
+1-0src/middlewared/middlewared/plugins/smb_/util_smbconf.py
+1-0tests/unit/test_smb_share.py
+2-02 files

LLVM/project aa297c8llvm/lib/Target/SPIRV SPIRVEmitNonSemanticDI.cpp

[review] Simplify CUs collection even further.
DeltaFile
+2-4llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp
+2-41 files

LLVM/project 55f751ellvm/test/CodeGen/AArch64 aarch64-neonvector-tensorflow-regression.ll aarch64-addv.ll

Update tests, remove regression test
DeltaFile
+0-13llvm/test/CodeGen/AArch64/aarch64-neonvector-tensorflow-regression.ll
+6-6llvm/test/CodeGen/AArch64/aarch64-addv.ll
+2-2llvm/test/CodeGen/AArch64/bitcast-extend.ll
+8-213 files

LLVM/project 94d9f1blldb/include/lldb/Target ThreadList.h ThreadPlanStepOverBreakpoint.h, lldb/source/Target ThreadList.cpp ThreadPlanStepOverBreakpoint.cpp

[lldb] Batch breakpoint step-over for threads stopped at the same site (re-land) (#182944)

Re-land https://github.com/llvm/llvm-project/pull/180101 since it was
reverted here https://github.com/llvm/llvm-project/pull/182431 because
of a flaky test. This PR include the modified test that should pass from
https://github.com/llvm/llvm-project/pull/182415 :

When multiple threads are stopped at the same breakpoint, LLDB currently
steps each thread over the breakpoint one at a time. Each step requires
disabling the breakpoint, single-stepping one thread, and re-enabling
it, resulting in N disable/enable cycles and N individual vCont packets
for N threads. This is a common scenario for hot breakpoints in
multithreaded programs and scales poorly.

This patch batches the step-over so that all threads at the same
breakpoint site are stepped together in a single vCont packet, with the
breakpoint disabled once at the start and re-enabled once after the last
thread finishes.


    [23 lines not shown]
DeltaFile
+216-0lldb/test/API/functionalities/gdb_remote_client/TestBatchedBreakpointStepOver.py
+164-1lldb/source/Target/ThreadList.cpp
+127-0lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
+21-12lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
+23-0lldb/include/lldb/Target/ThreadList.h
+19-0lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h
+570-136 files

LLVM/project a8f5f4allvm/lib/Transforms/Vectorize VPlanVerifier.cpp VPlanTransforms.h, llvm/unittests/Transforms/Vectorize VPlanVerifierTest.cpp

[VPlan] Assert vplan-verify-each result and fix LastActiveLane verification (#182254)

Currently if -vplan-verify-each is enabled and a pass fails the
verifier, it will output the failure to stderr but will still finish
with a zero exit code.

This adds an assert that the verification fails so that e.g. lit will
pick up verifier failures in the in-tree tests with an EXPENSIVE_CHECKS
build.

Currently the LastActiveLane verification fails in several tests, so
this also includes a fix to handle more prefix masks. All of the prefix
masks that the verifier encounters are of the form `icmp ult/ule
monotonically-increasing-sequence, uniform`, which always generate a
prefix mask.

Tested that llvm-test-suite + SPEC CPU 2017 now pass with
-vplan-verify-each enabled for RISC-V.
DeltaFile
+30-8llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
+26-0llvm/unittests/Transforms/Vectorize/VPlanVerifierTest.cpp
+4-2llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+2-0llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
+1-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+63-115 files

LLVM/project 31dacdcflang/lib/Lower/OpenMP ClauseProcessor.cpp, flang/test/Lower/OpenMP ordered-simd.f90

[flang][openmp] Add support for ordered regions in SIMD directives (#181012)

Add support for ordered regions within SIMD directives (!$omp simd
ordered and !$omp do simd ordered). This initial implementation matches
Clang's behavior.

In SIMD directives, loop induction variables have an implicit linear
clause with deferred store semantics (storing to .linear_result). To
properly support ordered regions, the LinearClauseProcessor rewrites
variable references to use .linear_result in:
- omp.ordered.region: Code inside ordered blocks
- omp_region.finalize: Code after ordered blocks

Note: The vectorizer cannot currently vectorize loops with ordered
regions. Future enhancement would require generating lane loops or
unrolling ordered regions across SIMD lanes while maintaining ordering
semantics.
DeltaFile
+90-0mlir/test/Target/LLVMIR/openmp-wsloop-simd-ordered.mlir
+87-0mlir/test/Target/LLVMIR/openmp-simd-ordered.mlir
+57-0flang/test/Lower/OpenMP/ordered-simd.f90
+18-6mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+0-11mlir/test/Target/LLVMIR/openmp-todo.mlir
+5-0flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+257-172 files not shown
+259-188 files

LLVM/project 7decfafclang/lib/AST DeclTemplate.cpp, clang/test/SemaTemplate GH181062.cpp

[clang] fix transformation of substituted constant template parameters of partial specializations

This fixes a helper so it implements retrieval of the argument replaced
for a template parameter for partial spcializations.

This was left out of the original patch, since it's quite hard to actually test.

This helper implements the retrieval for variable templates, but only for
completeness sake, as no current users rely on this, and I don't think a similar
test case is possible to implement with variable templates.

This fixes a regression introduced in #161029 which will be backported to llvm-22,
so there are no release notes.

Fixes #181062
Fixes #181410
DeltaFile
+24-0clang/test/SemaTemplate/GH181062.cpp
+10-10clang/lib/AST/DeclTemplate.cpp
+34-102 files

LLVM/project a59b4fcllvm/lib/Target/RISCV RISCVVLOptimizer.cpp, llvm/test/CodeGen/RISCV/rvv vl-opt.mir

[RISCV] Replace whitelist with elementsDependOnVL in RISCVVLOptimizer. NFC (#181619)

Currently we have a whitelist of pseudos which can have their VL reduced
safely.

We want to eventually replace RISCVVectorPeephole::tryToReduceVL with
RISCVVLOptimizer, but the former doesn't use a whitelist and instead
checks for the elementsDependOn TSFlag.

This moves RISCVVLOptimizer to use the same TSFlag instead of using a
whitelist since it handles more pseudos, e.g. Zvabd.

However on its own this patch is NFC since we still need to handle the
operand info. A test for vabs.v was added to show how it still doesn't
get reduced.

vmv.s.x/vfmv.s.x and stores have been excluded to match the previous
behaviour of isSupportedInstr.

Stacked on #181601, but not included in this PR.
DeltaFile
+20-415llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
+15-0llvm/test/CodeGen/RISCV/rvv/vl-opt.mir
+35-4152 files