LLVM/project fde381bllvm/test/CodeGen/AMDGPU shufflevector.v4i64.v4i64.ll shufflevector.v4p0.v4p0.ll, llvm/test/tools/llvm-ir2vec/output reference_x86_entities.txt

Merge branch 'users/kparzysz/n02-loop-nest-parser' into users/kparzysz/n03-invalid-directive
DeltaFile
+5,975-8,879llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v4i64.ll
+5,975-8,879llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v4p0.ll
+3,880-6,644llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v3i64.ll
+3,880-6,644llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v3p0.ll
+0-7,157llvm/test/tools/llvm-ir2vec/output/reference_x86_entities.txt
+2,266-3,675llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v4i64.ll
+21,976-41,878765 files not shown
+90,050-99,703771 files

LLVM/project 1264620compiler-rt/test/ubsan_minimal/TestCases test-darwin-interface.c

[UBSan] Fix test-darwin-interface.c on X86 Darwin with Internal Shell (#169105)

This test was failing with the internal shell due to the use of
subshells. This was not caught in my initial round of testing due to me
only using a M4 Mac for running my tests.
DeltaFile
+10-2compiler-rt/test/ubsan_minimal/TestCases/test-darwin-interface.c
+10-21 files

LLVM/project 13f7345flang/test/Parser/OpenMP fail-looprange.f90, flang/test/Semantics/OpenMP loop-association.f90 clause-validity01.f90

Temporary test changes
DeltaFile
+5-4flang/test/Semantics/OpenMP/loop-association.f90
+3-3flang/test/Parser/OpenMP/fail-looprange.f90
+1-4flang/test/Semantics/OpenMP/clause-validity01.f90
+1-0flang/test/Semantics/OpenMP/loop-transformation-construct02.f90
+1-0flang/test/Semantics/OpenMP/loop-transformation-construct03.f90
+11-115 files

LLVM/project a032a55flang/lib/Parser openmp-parsers.cpp, flang/lib/Semantics check-omp-loop.cpp resolve-directives.cpp

Rebase + parser updates to reflect changes in main
DeltaFile
+76-26flang/lib/Parser/openmp-parsers.cpp
+3-1flang/lib/Semantics/check-omp-loop.cpp
+1-0flang/lib/Semantics/resolve-directives.cpp
+80-273 files

LLVM/project c4921b7lldb/include/lldb/Core Disassembler.h, lldb/source/Core Disassembler.cpp

[lldb] [disassembler] chore: update VariableAnnotator::Annotate to except only Instruction as param and drop module and target (#168276)

DeltaFile
+22-22lldb/source/Core/Disassembler.cpp
+5-5lldb/include/lldb/Core/Disassembler.h
+27-272 files

LLVM/project e8af134llvm/lib/Transforms/InstCombine InstCombineCompares.cpp, llvm/test/Transforms/InstCombine icmp-trunc.ll

[InstCombine] Generalize trunc-shift-icmp fold from (1 << Y) to (Pow2 << Y) (#169163)

Extends the `icmp(trunc(shl))` fold to handle any power of 2 constant as
the shift base, not just 1. This generalizes the following patterns by
adjusting the comparison offsets by `log2(Pow2)`.

```llvm
(trunc (1 << Y) to iN) == 0    --> Y u>= N
(trunc (1 << Y) to iN) != 0    --> Y u<  N
(trunc (1 << Y) to iN) == 2**C --> Y ==  C
(trunc (1 << Y) to iN) != 2**C --> Y !=  C

; to

(trunc (Pow2 << Y) to iN) == 0    --> Y u>= N - log2(Pow2)
(trunc (Pow2 << Y) to iN) != 0    --> Y u<  N - log2(Pow2)
(trunc (Pow2 << Y) to iN) == 2**C --> Y ==  C - log2(Pow2)
(trunc (Pow2 << Y) to iN) != 2**C --> Y !=  C - log2(Pow2)
```

Proof: https://alive2.llvm.org/ce/z/2zwTkp
DeltaFile
+39-33llvm/test/Transforms/InstCombine/icmp-trunc.ll
+12-8llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
+51-412 files

LLVM/project cc4dd01clang/lib/AST/ByteCode Compiler.cpp Compiler.h

[clang][bytecode][NFC] Remove VariableScope::emitDestruction (#169148)

destroyLocals() does the same thing.
DeltaFile
+14-7clang/lib/AST/ByteCode/Compiler.cpp
+1-11clang/lib/AST/ByteCode/Compiler.h
+15-182 files

LLVM/project 2e424declang/lib/AST ExprConstant.cpp, clang/lib/Headers avx512vlintrin.h avx512fintrin.h

 [Clang][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow VPERMILPD/S variable mask intrinsics to be used in constexpr (#168861)

Allowing VPERMILPD/S intrinsics to be used in constexpr

Closes #167878
DeltaFile
+68-0clang/test/CodeGen/X86/avx512vl-builtins.c
+48-0clang/test/CodeGen/X86/avx512f-builtins.c
+16-24clang/lib/Headers/avx512vlintrin.h
+34-0clang/lib/AST/ExprConstant.cpp
+12-18clang/lib/Headers/avx512fintrin.h
+28-0clang/test/CodeGen/X86/avx-builtins.c
+206-423 files not shown
+250-649 files

LLVM/project 8ba2713libcxx/include any, libcxx/test/libcxx/utilities/any nodiscard.verify.cpp

[libc++][any] Applied `[[nodiscard]]` (#168826)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
DeltaFile
+45-0libcxx/test/libcxx/utilities/any/nodiscard.verify.cpp
+9-9libcxx/include/any
+8-8libcxx/test/std/utilities/any/any.nonmembers/any.cast/reference_types.verify.cpp
+6-6libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_request_invalid_value_category.verify.cpp
+4-4libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.verify.cpp
+4-4libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.verify.cpp
+76-311 files not shown
+78-337 files

LLVM/project 9daf434clang/lib/Driver/ToolChains Flang.cpp, flang/lib/Frontend CompilerInvocation.cpp FrontendActions.cpp

[Flang] Add -ffast-real-mod back for further control of MOD optimizations (#167118)

It turns out that having `-ffast-math` as the only option to control
optimizations for MOD for REAL kinds (PR #160660) is too coarse-grained
for some applications. Thus, this PR adds back `-ffast-real-mod` to have
more control over the optimization. The `-ffast-math` flag will still
enable the optimization, and `-fno-fast-real-mod` allows one to disable
it.
DeltaFile
+94-47flang/test/Lower/Intrinsics/fast-real-mod.f90
+9-2flang/lib/Frontend/CompilerInvocation.cpp
+4-6flang/lib/Optimizer/Builder/IntrinsicCall.cpp
+8-2clang/lib/Driver/ToolChains/Flang.cpp
+6-0flang/test/Driver/fast-real-mod.f90
+2-2flang/lib/Frontend/FrontendActions.cpp
+123-592 files not shown
+127-608 files

LLVM/project 7305b6eclang/include/clang/Basic BuiltinsX86.td, clang/lib/AST ExprConstant.cpp

[clang][X86] Allow VALIGND/Q element-shift intrinsics in constexpr evaluation (#168206)

Fixes #167681
DeltaFile
+47-0clang/test/CodeGen/X86/avx512vl-builtins.c
+34-0clang/test/CodeGen/X86/avx512f-builtins.c
+22-0clang/lib/AST/ExprConstant.cpp
+18-0clang/lib/AST/ByteCode/InterpBuiltin.cpp
+5-5clang/include/clang/Basic/BuiltinsX86.td
+126-55 files

LLVM/project 4128b21clang/lib/CIR/CodeGen CIRGenAtomic.cpp, clang/test/CIR/CodeGen atomic.c

[CIR] Add support for non-compile-time memory order (#168892)

This patch upstreams CIR support for atomic operations with memory
orders that are not known at compile time.
DeltaFile
+266-0clang/test/CIR/CodeGen/atomic.c
+92-3clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
+358-32 files

LLVM/project b8f8ef5clang/lib/Driver SanitizerArgs.cpp, clang/test/Driver fsanitize-coverage.c

[Clang][Driver] Allow -fsanitize-coverage with -fsanitize=alloc-token (#169128)

These are not incompatible; allow them to be combined.
DeltaFile
+1-1clang/lib/Driver/SanitizerArgs.cpp
+1-0clang/test/Driver/fsanitize-coverage.c
+2-12 files

LLVM/project 20ebc7ellvm/docs SourceLevelDebugging.rst, llvm/include/llvm/IR DebugProgramInstruction.h

Add new llvm.dbg.declare_value intrinsic. (#168132)

For swift async code, we need to use a debug intrinsic that behaves like
an llvm.dbg.declare but can take any location type rather than just a
pointer or integer.

To solve this, a new debug instrinsic called llvm.dbg.declare_value has
been created, which behaves exactly like an llvm.dbg.declare but can
take non pointer and integer location types.

More information here:
https://discourse.llvm.org/t/rfc-introduce-new-llvm-dbg-coroframe-entry-intrinsic/88269

This is the first patch as part of a stack of patches, with the one
succeeding it being: https://github.com/llvm/llvm-project/pull/168134
DeltaFile
+37-0llvm/test/Assembler/dbg_declare_value.ll
+22-0llvm/docs/SourceLevelDebugging.rst
+20-0llvm/lib/IR/DebugProgramInstruction.cpp
+16-3llvm/include/llvm/IR/DebugProgramInstruction.h
+18-0llvm/lib/IR/DIBuilder.cpp
+17-0llvm/lib/IR/DebugInfo.cpp
+130-310 files not shown
+170-516 files

LLVM/project bfae01fmlir/include/mlir/Dialect/XeGPU/IR XeGPUOps.td, mlir/lib/Dialect/XeGPU/Transforms XeGPUPropagateLayout.cpp

propogation hornor pre-defined layout at anchor op
DeltaFile
+267-177mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
+40-39mlir/test/Dialect/XeGPU/propagate-layout.mlir
+8-8mlir/test/Dialect/XeGPU/propagate-layout-inst-data.mlir
+4-4mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
+3-3mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
+2-2mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
+324-2331 files not shown
+326-2357 files

LLVM/project ad7a5d4llvm/include/llvm/CodeGen CallBrPrepare.h, llvm/lib/CodeGen CallBrPrepare.cpp

[CallBrPrepare] Prefer Function &F over Function &Fn

Function &F is the more standard abbreviation (~4000 uses in llvm versus
~300 uses).
DeltaFile
+10-10llvm/lib/CodeGen/CallBrPrepare.cpp
+1-1llvm/include/llvm/CodeGen/CallBrPrepare.h
+11-112 files

LLVM/project 226765blibcxx/utils/libcxx/test/features availability.py

[NFC] [test] [libcxx] Fix invalid escape sequences (#168636)

```
>>> "_target-has-llvm-21 || target={{.+}}-apple-macosx{{26.[0-9](.\d+)?}}" == r"_target-has-llvm-21 || target={{.+}}-apple-macosx{{26.[0-9](.\\
d+)?}}"
<python-input-6>:1: SyntaxWarning: invalid escape sequence '\d'
True
>>> "_target-has-llvm-20 || target={{.+}}-apple-macosx{{15.[4-9](.\d+)?}}" == r"_target-has-llvm-20 || target={{.+}}-apple-macosx{{15.[4-9](.\\
d+)?}}"
<python-input-7>:1: SyntaxWarning: invalid escape sequence '\d'
True
>>> "_target-has-llvm-19 || target={{.+}}-apple-macosx{{15.[0-3](.\d+)?}}" == r"_target-has-llvm-19 || target={{.+}}-apple-macosx{{15.[0-3](.\\
d+)?}}"
<python-input-8>:1: SyntaxWarning: invalid escape sequence '\d'
True
>>> "_target-has-llvm-18 || target={{.+}}-apple-macosx{{14.[4-9](.\d+)?}}" == r"_target-has-llvm-18 || target={{.+}}-apple-macosx{{14.[4-9](.\\
d+)?}}"
<python-input-9>:1: SyntaxWarning: invalid escape sequence '\d'
True
```
DeltaFile
+4-4libcxx/utils/libcxx/test/features/availability.py
+4-41 files

LLVM/project f6fcb2allvm/include/llvm/ADT MapVector.h DenseMap.h, llvm/unittests/ADT MapVectorTest.cpp DenseMapTest.cpp

ADT: Complete the at() methods for DenseMap and MapVector

Make it easier to use these containers as drop-in replacements for
std::map.

commit-id:8b1d1826
DeltaFile
+18-4llvm/include/llvm/ADT/MapVector.h
+15-0llvm/unittests/ADT/MapVectorTest.cpp
+8-0llvm/include/llvm/ADT/DenseMap.h
+8-0llvm/unittests/ADT/DenseMapTest.cpp
+49-44 files

LLVM/project 6b75b44libcxx/test/std/utilities/any/any.nonmembers/any.cast any_cast_reference.pass.cpp any_cast_pointer.pass.cpp

[libc++][any][NFC] Reformat and refactor any_cast tests (#169057)

...in preparation for https://github.com/llvm/llvm-project/pull/168826
as requested in the review.

Co-authored-by: Hristo Hristov <zingam at outlook.com>
DeltaFile
+235-238libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp
+109-108libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_pointer.pass.cpp
+24-36libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_request_invalid_value_category.verify.cpp
+19-22libcxx/test/std/utilities/any/any.nonmembers/any.cast/reference_types.verify.cpp
+15-15libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.verify.cpp
+10-10libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.verify.cpp
+412-4296 files

LLVM/project 3841e7dclang/lib/AST/ByteCode Interp.cpp InterpFrame.h, clang/test/AST/ByteCode new-delete.cpp

[clang][bytecode] Don't call getThis() on the bottom function frame (#169044)

We can't access the calling frame in that case.

Fixes https://github.com/llvm/llvm-project/issues/169032
DeltaFile
+12-0clang/test/AST/ByteCode/new-delete.cpp
+2-1clang/lib/AST/ByteCode/Interp.cpp
+2-0clang/lib/AST/ByteCode/InterpFrame.h
+16-13 files

LLVM/project 8918921lldb/source/Plugins/Language/CPlusPlus LibStdcpp.cpp, lldb/source/Plugins/Language/ObjC NSSet.cpp

[NFC][lldb] Remove duplicated checks (#169093)

Removed duplicated checks reported by cppcheck
DeltaFile
+0-3lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
+0-2lldb/source/Plugins/Language/ObjC/NSSet.cpp
+0-52 files

LLVM/project cc7e206lldb/source/Target Target.cpp, lldb/source/Utility StringExtractorGDBRemote.cpp

[lldb] Remove redundant declarations (NFC) (#169003)

In C++17, static constexpr members are implicitly inline, so they no
longer require an out-of-line definition.

Identified with readability-redundant-declaration.
DeltaFile
+0-3lldb/source/Utility/StringExtractorGDBRemote.cpp
+0-2lldb/source/Target/Target.cpp
+0-52 files

LLVM/project b6dadc7clang/lib/CodeGen CGOpenMPRuntime.cpp, clang/test/OpenMP target_firstprivate_pointer_codegen.cpp target_map_codegen_01.cpp

Revert "[OpenMP] Fix firstprivate pointer handling in target regions" (#169143)

Reverts llvm/llvm-project#167879

This PR is causing assertions in the check-offload tests:

https://lab.llvm.org/staging/#/builders/105
https://lab.llvm.org/staging/#/builders/105/builds/37057
DeltaFile
+0-169clang/test/OpenMP/target_firstprivate_pointer_codegen.cpp
+12-64clang/lib/CodeGen/CGOpenMPRuntime.cpp
+3-3clang/test/OpenMP/target_map_codegen_01.cpp
+2-2clang/test/OpenMP/target_defaultmap_codegen_01.cpp
+2-2clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp
+2-2clang/test/OpenMP/target_map_codegen_09.cpp
+21-24212 files not shown
+34-25618 files

LLVM/project 8bdbc57lldb/packages/Python/lldbsuite/test decorators.py, lldb/test/Shell/helper toolchain.py

[NFC][LLDB] Make it possible to detect if the compiler used in tests supports -fbounds-safety (#169112)

This patch makes it possible to detect in LLDB shell and API tests if
`-fbounds-safety` is supported by the compiler used for testing. The
motivation behind this is to allow upstreaming
https://github.com/swiftlang/llvm-project/pull/11835 but with the tests
disabled in upstream because the full implementation of -fbounds-safety
isn't available in Clang yet.

For shell tests when -fbounds-safety is available the
`clang-bounds-safety` feature is available which means tests can be
annotated with `# REQUIRES: clang-bounds-safety`.

API tests that need -fbounds-safety support in the compiler can use the
new `@skipUnlessBoundsSafety` decorator.

rdar://165225507
DeltaFile
+30-0llvm/utils/lit/lit/llvm/config.py
+10-0lldb/packages/Python/lldbsuite/test/decorators.py
+3-0lldb/test/Shell/helper/toolchain.py
+43-03 files

LLVM/project 4ff4d68llvm/lib/IR ReplaceConstant.cpp, llvm/test/CodeGen/AMDGPU same-lds-variable-multiple-use-in-one-phi-node.ll

[ReplaceConstant] Don't create instructions for the same constant multiple times in the same basic block

Fixes #167500.
DeltaFile
+51-0llvm/test/CodeGen/AMDGPU/same-lds-variable-multiple-use-in-one-phi-node.ll
+9-1llvm/lib/IR/ReplaceConstant.cpp
+60-12 files

LLVM/project 54a4da9clang/lib/AST DeclCXX.cpp ASTContext.cpp, clang/lib/CodeGen CGClass.cpp MicrosoftCXXABI.cpp

Revert "Reland [MS][clang] Add support for vector deleting destructors" (#169116)

This reverts 4d10c1165442cbbbc0017b48fcdd7dae1ccf3678 and its two
dependent commits: e6b9805b574bb5c90263ec7fbcb94df76d2807a4 and
c243406a695ca056a07ef4064b0f9feee7685320, see discussion in
https://github.com/llvm/llvm-project/pull/165598#issuecomment-3563825509.
DeltaFile
+0-336clang/test/CodeGenCXX/microsoft-vector-deleting-dtors.cpp
+1-94clang/lib/CodeGen/CGClass.cpp
+10-63clang/lib/AST/DeclCXX.cpp
+14-56clang/lib/CodeGen/MicrosoftCXXABI.cpp
+13-53clang/lib/Serialization/ASTReaderDecl.cpp
+0-65clang/lib/AST/ASTContext.cpp
+38-66754 files not shown
+166-1,27460 files

LLVM/project 58e2ddelld/MachO SymbolTable.cpp, lld/test/MachO weak-alias-override.s

[lld:MachO] Allow independent override of weak symbols aliased via .set (#167825)

Currently, if multiple external weak symbols are defined at the same
address in an object file (e.g., by using the .set assembler directive
to alias them to a single weak variable), ld64.lld treats them as a
single unit. When any one of these symbols is overridden by a strong
definition, all of the original weak symbols resolve to the strong
definition.

This patch changes the behavior in `transplantSymbolsAtOffset`. When a
weak symbol is being replaced by a strong one, only non-external (local)
symbols at the same offset are moved to the new symbol's section. Other
*external* symbols are no longer transplanted.

This allows each external weak symbol to be overridden independently.
This behavior is consistent with Apple's ld-classic, but diverges from
ld-prime in one case, as noted on
https://github.com/llvm/llvm-project/issues/167262 (this discrepancy has
recently been reported to Apple).

    [18 lines not shown]
DeltaFile
+97-0lld/test/MachO/weak-alias-override.s
+18-17lld/MachO/SymbolTable.cpp
+115-172 files

LLVM/project 99120bb.ci premerge_advisor_explain.py

[CI] Make Premerge only Comment if Tests Failed (#169102)

Before, we were unconditionally writing a message. After this patch, we
only write a message when the tests failed, or there is already an
existing comment. This is how this workflow was intended to work
originally, but is not how it ended up working, mostly due to my
misconceptions around how the existing code formatter pass handled this
case (we need to actually not write out any comments, not write out a
specific message).
DeltaFile
+30-32.ci/premerge_advisor_explain.py
+30-321 files

LLVM/project dc3c5a5utils/bazel .bazelrc

[bazel] Remove old config option (#169133)

The default of this has been flipped since we're on 8.x
DeltaFile
+0-3utils/bazel/.bazelrc
+0-31 files

LLVM/project b3f2a4amlir/include/mlir/Dialect/XeGPU/IR XeGPUOps.td, mlir/lib/Dialect/XeGPU/IR XeGPUOps.cpp

adding anchor layout for load/store/prefetch_nd and dpas
DeltaFile
+18-11mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
+16-12mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
+14-6mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
+6-6mlir/test/Dialect/XeGPU/subgroup-distribute.mlir
+4-5mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
+3-3mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
+61-435 files not shown
+72-5211 files