LLVM/project 4b483d8clang/lib/AST ASTContext.cpp TextNodeDumper.cpp, clang/lib/Sema SemaOpenMP.cpp SemaTemplate.cpp

trivial changes
DeltaFile
+20-14clang/lib/Sema/SemaOpenMP.cpp
+18-14clang/lib/AST/ASTContext.cpp
+16-15clang/lib/Sema/SemaTemplate.cpp
+23-2clang/lib/AST/TextNodeDumper.cpp
+14-11clang/lib/AST/Type.cpp
+14-8clang/lib/AST/ASTDiagnostic.cpp
+105-6435 files not shown
+231-16241 files

LLVM/project d794f97clang/include/clang/AST ASTContext.h, clang/lib/AST ASTContext.cpp ItaniumMangle.cpp

[clang] implement CWG2064: ignore value dependence for decltype

The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.

This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.

This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.

Fixes #8740
Fixes #61818
Fixes #190388
DeltaFile
+888-161clang/lib/AST/ASTContext.cpp
+328-12clang/test/SemaTemplate/instantiation-dependence.cpp
+178-96clang/lib/AST/ItaniumMangle.cpp
+62-57clang/lib/AST/Type.cpp
+71-44clang/lib/Sema/SemaTemplate.cpp
+88-11clang/include/clang/AST/ASTContext.h
+1,615-38168 files not shown
+2,311-72874 files

LLVM/project 3046fb3offload/test/Inputs declare-target-common-block-sub.f90, offload/test/offloading/fortran declare-target-common-block-2.f90 declare-target-common-block-main.f90

[Flang][OpenMP][Offload] Add Flang offload tests for common block and declare target (#202949)

This PR adds a couple of tests revolving around the usage of common
block with declare target in Fortran OpenMP.
DeltaFile
+55-0offload/test/offloading/fortran/declare-target-common-block-2.f90
+21-0offload/test/offloading/fortran/declare-target-common-block-main.f90
+11-0offload/test/Inputs/declare-target-common-block-sub.f90
+87-03 files

LLVM/project 1045d1elibcxx/include/__ranges zip_view.h, libcxx/test/libcxx/ranges/range.adaptors range_adaptor_types.h

[libc++][ranges] Applied `[[nodiscard]]` to `zip_view` (#207667)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/range.zip

Towards #172124
DeltaFile
+107-0libcxx/test/libcxx/ranges/range.adaptors/range.zip/nodiscard.verify.cpp
+42-0libcxx/test/libcxx/ranges/range.adaptors/range_adaptor_types.h
+18-15libcxx/include/__ranges/zip_view.h
+1-20libcxx/test/libcxx/ranges/range.adaptors/range.zip.transform/nodiscard.verify.cpp
+168-354 files

LLVM/project 25b3cf8clang/bindings/python/tests/cindex test_source_range.py test_translation_unit.py

Revert "[clang] workaround libclang-python windows CI failures (#207875)"

This reverts commit 52f1b754dddb740a553166acb9a5d40c38cc74e5.
DeltaFile
+3-8clang/bindings/python/tests/cindex/test_source_range.py
+1-3clang/bindings/python/tests/cindex/test_translation_unit.py
+4-112 files

LLVM/project e4e2a93llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/CodeGen/AArch64 sve-interleave-low-vf.ll

[AArch64][LV] Cost low-VF interleaved access (#205844)

Adds a case to getInterleavedMemoryOpCost to cost scalable interleaved
memory accesses where the interleave factor is larger than the VF.

Previously for these cases, memory operations would be costed as
individual gathers and scatters, which may result in the LoopVectorizer
choosing a wider VF than necessary.

This changes proposes an alternative approach of using a contiguous
load/store of the interleaved vector followed by shuffles to get
the elements into place.
DeltaFile
+414-436llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-accesses.ll
+226-0llvm/test/CodeGen/AArch64/sve-interleave-low-vf.ll
+129-0llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-access-low-vf.ll
+72-0llvm/test/Transforms/LoopVectorize/AArch64/sve-interleave-low-vf-cost.ll
+34-5llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+11-9llvm/test/Transforms/LoopVectorize/AArch64/first-order-recurrence.ll
+886-4506 files

LLVM/project a8d810ellvm/lib/Target/PowerPC PPCInstrInfo.cpp

PPC: Use SmallVector for tracking operands instead of DenseMap

This is just tracking registers by operand index, which doesn't
need a heavy map.
DeltaFile
+3-3llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
+3-31 files

LLVM/project 72e1037libcxx/docs/ReleaseNotes 23.rst, libcxx/include mutex shared_mutex

[libc++][ThreadSafety] Add thread safety annotations for variadic std::scoped_lock (#204462)

The thread safety annotations on std::scoped_lock were previously only
applied to the empty and single-mutex specializations. The general
variadic specialization carried no annotations, so -Wthread-safety
considered none of the mutexes held inside a multi-mutex scoped_lock
block and reported the guarded data accessed there as unprotected.

Now that Clang supports pack expansion inside thread safety attributes
(landed for Clang 21), annotate the variadic scoped_lock with
acquire_capability/requires_capability on its constructors,
release_capability on its destructor, and scoped_lockable on the class.

Fixes #42000.

Co-authored-by: Anthony Calandra <anthony at anthony-calandra.com>
DeltaFile
+69-0libcxx/test/extensions/clang/thread/thread.mutex/thread_safety_scoped_lock.pass.cpp
+59-0libcxx/test/extensions/clang/thread/thread.mutex/thread_safety_scoped_lock.verify.cpp
+12-6libcxx/include/mutex
+3-3libcxx/include/__configuration/attributes.h
+2-2libcxx/include/shared_mutex
+3-0libcxx/docs/ReleaseNotes/23.rst
+148-112 files not shown
+150-138 files

LLVM/project 29f1a71openmp/runtime/src kmp_dispatch.h

[OpenMP] Remove internal linkage from __kmp_wait template (NFC) (#207983)

__kmp_wait in kmp_dispatch.h is a static function template in a header,
so any TU that includes it without instantiating it trips
-Wunused-template (kmp_runtime.cpp, kmp_affinity.cpp, kmp_global.cpp,
kmp_settings.cpp). It is used by kmp_dispatch.cpp and
kmp_dispatch_hier.h. Drop static, which the comment above it already
suggests.

Part of #202945
DeltaFile
+2-2openmp/runtime/src/kmp_dispatch.h
+2-21 files

LLVM/project a00f7bellvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/PhaseOrdering/X86 vector-reductions.ll

[SLP]Use poor-throughput instructions as vectorization seeds

Seed vectorization from expensive poor-throughput ops (fdiv/frem/fsqrt
and target-expensive calls) even when they do not feed a store or reduction.

Compile time effect https://llvm-compile-time-tracker.com/compare.php?from=8cdf6346f46c505928a9fb9d3ef9e8ce125a2108&to=27a3f0a5c0489c91bf386e480289fdcc9dc9c8b7&stat=instructions:u

These compile time regressions are the side effects of the vectorization
vectorization gains and cannot be reduced further (note Bullet).

Fixes #38780

Reviewers: hiraditya, bababuck, RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/206518
DeltaFile
+205-4llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+94-28llvm/test/Transforms/SLPVectorizer/X86/poor-throughput-seeds.ll
+35-16llvm/test/Transforms/SLPVectorizer/X86/c-ray.ll
+20-10llvm/test/Transforms/SLPVectorizer/X86/reduction2.ll
+10-13llvm/test/Transforms/PhaseOrdering/X86/vector-reductions.ll
+6-5llvm/test/Transforms/SLPVectorizer/X86/vec3-reorder-reshuffle.ll
+370-762 files not shown
+379-798 files

LLVM/project 5a749abclang/include/clang/Options FlangOptions.td, flang/test/Driver driver-help.f90

Make the option visible in --help
DeltaFile
+12-4clang/include/clang/Options/FlangOptions.td
+6-0flang/test/Driver/driver-help.f90
+18-42 files

LLVM/project 6053d19llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/PhaseOrdering/X86 avg.ll

[SLP] Retune look-ahead scores for constants

Rescale LookAheadHeuristics scores and add ScoreSameConstants /
ScoreConstantScaleFactor so identical constants no longer score the
same as same-opcode instruction matches, fixing suboptimal operand
reordering around repeated constants (shift amounts, splat values).
Also retry a SplitVectorize alt-shuffle build for copyable-element
bundles when scheduling fails, instead of always falling back to a
gather, to fix regressions.

Reviewers: hiraditya, bababuck, RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/207548
DeltaFile
+88-304llvm/test/Transforms/PhaseOrdering/X86/avg.ll
+37-40llvm/test/Transforms/SLPVectorizer/AArch64/long-non-power-of-2.ll
+36-17llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+15-18llvm/test/Transforms/SLPVectorizer/X86/recalc-copyable-operand-deps-shared-inst.ll
+3-9llvm/test/Transforms/SLPVectorizer/X86/commutable-node-with-non-sched-parent.ll
+2-9llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-subvectors-insert.ll
+181-3977 files not shown
+196-42213 files

LLVM/project 94a8d4cllvm/lib/Target/AMDGPU AMDGPUIGroupLP.cpp, llvm/test/CodeGen/AMDGPU sched.barrier.inverted.mask.ll

[AMDGPU] Clear DS aggregate in inverted sched_barrier mask when LDSDMA allowed (#207779)

The DS clause was missing the LDSDMA check that the VMEM clause has
DeltaFile
+17-29llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
+4-4llvm/test/CodeGen/AMDGPU/sched.barrier.inverted.mask.ll
+21-332 files

LLVM/project ae0b053llvm/lib/Target/PowerPC PPCMIPeephole.cpp

PPC: Remove manual run of machine verifier

This is redundant with using the standard -verify-machineinstrs.
It's also confusing / worse, since the error is not produced to
stderr.
DeltaFile
+1-7llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
+1-71 files

LLVM/project 031ac65llvm/lib/Target/PowerPC PPCInstrInfo.cpp

PPC: Fix querying TargetInstrInfo from TargetInstrInfo
DeltaFile
+14-20llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
+14-201 files

LLVM/project 01b9061llvm/lib/Target/PowerPC PPCInstrInfo.cpp

PPC: Fix querying TargetRegisterInfo in PPCInstrInfo

Use the direct PPCRegisterInfo member
DeltaFile
+33-45llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
+33-451 files

LLVM/project cde0118llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 mul-shl-nsw-intmin.ll

[SLP] Drop nsw when mul by INT_MIN is converted to shl

mul nsw X, INT_MIN is valid, but shl X, BW-1 is not nsw-safe. Drop nsw on
the vector shl when a mul lane with INT_MIN is unified into shl during
opcode interchange.

Fixes #207990

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/208028
DeltaFile
+14-0llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-1llvm/test/Transforms/SLPVectorizer/X86/mul-shl-nsw-intmin.ll
+15-12 files

LLVM/project 93ff699llvm/test/Transforms/SLPVectorizer/X86 mul-shl-nsw-intmin.ll

[SLP][NFC]Add tests with mul to shl transformations, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/208027
DeltaFile
+55-0llvm/test/Transforms/SLPVectorizer/X86/mul-shl-nsw-intmin.ll
+55-01 files

LLVM/project c1822d6clang/lib/Sema SemaCXXScopeSpec.cpp

[clang][Sema][NFC] Improve readability in `computeDeclContext` (#208010)

Split off from #190495.

Co-authored-by: Matheus Izvekov <mizvekov at gmail.com>
DeltaFile
+80-86clang/lib/Sema/SemaCXXScopeSpec.cpp
+80-861 files

LLVM/project e390e6blibc/src/stdfix bitusk.cpp, libc/test/src/stdfix IdivFxTest.h IdivTest.h

[libc][stdfix] Fix idiv* doc table, rename idivfx test helpers and remove duplicate bitsuk source (#206729)

Two small cleanups in libc/src/stdfix.

1. `idiv*` in `stdfix.rst` was marked as implemented for all 12 type
variants but only the 8 non-short width variants (ur, r, ulr, lr, uk, k,
ulk, lk) exist in the directory and are built. Updated the table to
match.
2. Removed `bitusk.cpp` which is an orphaned duplicate of `bitsuk.cpp`
with a typo in the file name. It isn't referenced in the CMakeLists.txt
and has no corresponding .h file.
3. Rename the idivfx test header and helpers.
DeltaFile
+91-0libc/test/src/stdfix/IdivFxTest.h
+0-91libc/test/src/stdfix/IdivTest.h
+0-22libc/src/stdfix/bitusk.cpp
+3-3libc/test/src/stdfix/idivulk_test.cpp
+3-3libc/test/src/stdfix/idivulr_test.cpp
+2-2libc/test/src/stdfix/idivr_test.cpp
+99-1217 files not shown
+111-13313 files

LLVM/project e702ecbllvm/test/Transforms/SLPVectorizer/X86 mul-shl-nsw-intmin.ll

Revert "[SLP][NFC]Add tests with mul to shl transformations, NFC"

This reverts commit 5ee85101a70dd2628d5b65a6a8a1e5d697d6c757, incorrect
checks in the test

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/208022
DeltaFile
+0-55llvm/test/Transforms/SLPVectorizer/X86/mul-shl-nsw-intmin.ll
+0-551 files

LLVM/project 31fc40bclang/docs ReleaseNotes.md, clang/lib/CodeGen/Targets X86.cpp

[clang][X86] Emit AVX level mismatch psABI warnings on function definitions (#199091)

Emit -WpsABI for x86_64 function definitions whose return type or
parameter type uses a vector wider than 128 bits without the required
ABI feature enabled. 256-bit vectors require avx, and 512-bit vectors
require avx512f.

Previously this diagnostic was only emitted at call sites, so
definitions with wide vector signatures could be introduced without a
warning until they were called. Use the function feature map so
attribute(target("avx/avx512f")) definitions are accepted, and emit no
warnings for prototype-only declarations.
DeltaFile
+63-0clang/lib/CodeGen/Targets/X86.cpp
+55-0clang/test/CodeGenCXX/target-avx-abi-diag.cpp
+14-0clang/test/CodeGen/target-avx-abi-diag-knr.c
+4-3libcxx/include/__algorithm/simd_utils.h
+6-0clang/test/CodeGen/target-builtin-error-3.c
+4-0clang/docs/ReleaseNotes.md
+146-32 files not shown
+149-38 files

LLVM/project 5ee8510llvm/test/Transforms/SLPVectorizer/X86 mul-shl-nsw-intmin.ll

[SLP][NFC]Add tests with mul to shl transformations, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/208020
DeltaFile
+55-0llvm/test/Transforms/SLPVectorizer/X86/mul-shl-nsw-intmin.ll
+55-01 files

LLVM/project aad00dfclang/test/CIR/CodeGen attr-target-aarch64.c, clang/test/CodeGen/AArch64 targetattr.c

[AArch64][llvm] Allow +hcx to be specified as optional for Armv8.6

The `HCRX_EL2` system register can be accessed if FEAT_HCX is
implemented, and is optional from Armv8.6 (and mandatory in Armv8.7).

Allow `clang -march=armv8.6-a+hcx` by making FeatureHCX an
optional argument.
DeltaFile
+2-2llvm/lib/Target/AArch64/AArch64Features.td
+2-2clang/test/CIR/CodeGen/attr-target-aarch64.c
+1-1clang/test/CodeGen/AArch64/targetattr.c
+1-0clang/test/Driver/print-supported-extensions-aarch64.c
+6-54 files

LLVM/project e2ca2e4llvm/lib/Target/AArch64 AArch64MIPeepholeOpt.cpp, llvm/test/CodeGen/AArch64 redundant-orrwrs-from-zero-extend.mir

AArch64: Fix mishandling subregister in orr peephole

Avoids verifier failure regressions in a future change.
DeltaFile
+21-0llvm/test/CodeGen/AArch64/redundant-orrwrs-from-zero-extend.mir
+3-0llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
+24-02 files

LLVM/project 2e7bd77clang/lib/AST ASTContext.cpp Type.cpp, clang/lib/Sema SemaOpenMP.cpp SemaTemplate.cpp

trivial changes
DeltaFile
+20-14clang/lib/Sema/SemaOpenMP.cpp
+18-14clang/lib/AST/ASTContext.cpp
+16-15clang/lib/Sema/SemaTemplate.cpp
+14-11clang/lib/AST/Type.cpp
+23-2clang/lib/AST/TextNodeDumper.cpp
+14-8clang/lib/AST/ASTDiagnostic.cpp
+105-6435 files not shown
+231-16241 files

LLVM/project a367d77clang/lib/AST ASTContext.cpp ItaniumMangle.cpp, clang/lib/Sema SemaCXXScopeSpec.cpp SemaTemplate.cpp

[clang] implement CWG2064: ignore value dependence for decltype

The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.

This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.

This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.

Fixes #8740
Fixes #61818
Fixes #190388
DeltaFile
+888-161clang/lib/AST/ASTContext.cpp
+328-12clang/test/SemaTemplate/instantiation-dependence.cpp
+178-96clang/lib/AST/ItaniumMangle.cpp
+100-98clang/lib/Sema/SemaCXXScopeSpec.cpp
+62-57clang/lib/AST/Type.cpp
+71-44clang/lib/Sema/SemaTemplate.cpp
+1,627-46868 files not shown
+2,369-79774 files

LLVM/project 863be13libc/src/stdio/printf_core float_hex_converter.h

[libc] Fix build failure with ASSUME_ROUND_NEAREST_ONLY (#207991)

Commit 03c62ca40d19ba0 moved some local variables of
`convert_float_hex_exp` into a struct called `properties`, but didn't
edit the #ifdef branch for `LIBC_MATH_HAS_ASSUME_ROUND_NEAREST_ONLY`, so
builds with that definition failed.
DeltaFile
+2-2libc/src/stdio/printf_core/float_hex_converter.h
+2-21 files

LLVM/project 8d5b800llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/CodeGen/AMDGPU/GlobalISel insertelement.ll

Merge branch 'main' into users/DavidTruby/flang-rt-no-offload
DeltaFile
+2,553-2,687llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+1,002-1,066llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+548-592llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.320bit.ll
+372-408llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
+375-375llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll
+350-392llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.128bit.ll
+5,200-5,520413 files not shown
+16,800-15,109419 files

LLVM/project 34c8105flang-rt/lib/runtime io-api-server.cpp

Fix formatting
DeltaFile
+3-2flang-rt/lib/runtime/io-api-server.cpp
+3-21 files