LLVM/project 1a1c5dfclang/include/clang/Basic arm_mve_defs.td, clang/lib/CodeGen/TargetBuiltins ARM.cpp

[ARM] Introduce intrinsics for MVE fp-converts under strict-fp. (#170686)

This is the last of the generic instructions created from MVE
intrinsics. It was a little more awkward than the others due to it
taking a Type as one of the arguments. This creates a new function to
create the intrinsic we need.
DeltaFile
+658-300clang/test/CodeGen/arm-mve-intrinsics/vcvt.c
+81-0llvm/test/CodeGen/Thumb2/mve-intrinsics/strict-intrinsics.ll
+32-0clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+14-6clang/include/clang/Basic/arm_mve_defs.td
+11-9llvm/lib/Target/ARM/ARMInstrMVE.td
+5-2clang/utils/TableGen/MveEmitter.cpp
+801-3172 files not shown
+808-3188 files

LLVM/project b97d247clang/include/clang/Basic arm_mve_defs.td, clang/test/CodeGen/arm-mve-intrinsics compare.c

[ARM] Introduce intrinsics for MVE vcmp under strict-fp. (#169798)

Similar to #169156 again, this adds intrinsics for strict-fp compare nodes to
make sure they end up as the original instruction.
DeltaFile
+3,030-1,430clang/test/CodeGen/arm-mve-intrinsics/compare.c
+820-0llvm/test/CodeGen/Thumb2/mve-intrinsics/strict-compare.ll
+34-15llvm/lib/Target/ARM/ARMInstrMVE.td
+18-6clang/include/clang/Basic/arm_mve_defs.td
+9-0llvm/include/llvm/IR/IntrinsicsARM.td
+3,911-1,4515 files

LLVM/project 204805fllvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 fp-to-int-to-fp.ll

Address comments
DeltaFile
+165-45llvm/test/CodeGen/AArch64/fp-to-int-to-fp.ll
+42-25llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+62-0llvm/test/CodeGen/AMDGPU/fp-to-int-to-fp.ll
+269-703 files

LLVM/project 1b93f8bclang/include/clang/Basic arm_mve.td, clang/test/CodeGen/arm-mve-intrinsics vrnd.c

[ARM] Introduce intrinsics for MVE vrnd under strict-fp. (#169797)

Similar to #169156 again, this adds intrinsics for strict-fp vrnd nodes to make
sure they end up as the original instruction.
DeltaFile
+426-194clang/test/CodeGen/arm-mve-intrinsics/vrnd.c
+123-0llvm/test/CodeGen/Thumb2/mve-intrinsics/strict-intrinsics.ll
+8-0llvm/include/llvm/IR/IntrinsicsARM.td
+3-0llvm/lib/Target/ARM/ARMInstrMVE.td
+2-1clang/include/clang/Basic/arm_mve.td
+562-1955 files

LLVM/project 66d92d4llvm/test/Examples/Kaleidoscope lit.local.cfg, llvm/test/Examples/OrcV2Examples lit.local.cfg

[LLVM][Examples] Disable broken JIT + plugin tests (AIX, Sparc)

Plugins appear to be broken on AIX, CI fails. There is logic in
CMakeLists for plugins+AIX, but it was never tested before...
Note: when plugins work, also enable tests in Examples/IRTransforms.

There's no Sparc support for JIT tests, so disable the JIT tests in the
examples (copied from ExecutionEngine/lit.local.cfg).
DeltaFile
+7-0llvm/test/Examples/OrcV2Examples/lit.local.cfg
+7-0llvm/test/Examples/Kaleidoscope/lit.local.cfg
+2-0llvm/test/Feature/load_extension.ll
+16-03 files

LLVM/project 755a693llvm/include/llvm/CodeGen SDPatternMatch.h, llvm/unittests/CodeGen SelectionDAGPatternMatchTest.cpp

[DAG] SDPatternMatch - Replace runtime data structures with lengths known at compile time (#172064)

Following the suggestions in #170061, I replaced `SmallVector<SDValue>`
with `std::array<SDValue, NumPatterns>` and `SmallBitVector` with
`Bitset<NumPatterns>`.

I had to make some changes to the `collectLeaves` and
`reassociatableMatchHelper` functions. In `collectLeaves` specifically,
I changed the return type so I could propagate a failure in case the
number of found leaves is greater than the number of expected patterns.
I also added a new unit test that, together with the one already present
in the previous line, checks if the matching fails in the cases where
the number of patterns is less or more than the number of leaves.

I don't think this is going to completely address the increased compile
time reported in #169644, but hopefully it leads to an improvement.
DeltaFile
+20-15llvm/include/llvm/CodeGen/SDPatternMatch.h
+2-0llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
+22-152 files

LLVM/project 02c2a91llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 fp-to-int-to-fp.ll

Address comments
DeltaFile
+165-45llvm/test/CodeGen/AArch64/fp-to-int-to-fp.ll
+50-25llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+62-0llvm/test/CodeGen/AMDGPU/fp-to-int-to-fp.ll
+277-703 files

LLVM/project f785ca0mlir/include/mlir/Conversion/AMDGPUToROCDL AMDGPUToROCDL.h, mlir/include/mlir/Conversion/NVGPUToNVVM NVGPUToNVVM.h

[mlir][nvgpu] Move memref memspace attributes conversion to single place (#172156)

Also, some fixes for AMDGPU part for better naming.
DeltaFile
+22-13mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
+3-20mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
+3-17mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
+1-13mlir/lib/Dialect/NVGPU/TransformOps/NVGPUTransformOps.cpp
+9-2mlir/include/mlir/Conversion/NVGPUToNVVM/NVGPUToNVVM.h
+3-2mlir/include/mlir/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.h
+41-673 files not shown
+45-709 files

LLVM/project 8680feblibcxx/include barrier

[libc++] Use native wait in std::barrier instead of sleep loop (#171041)

For some reason, the current `std::barrier`'s wait implementation polls
the underlying atomic in a loop with sleeps instead of using the native
wait.

This change should also indirectly fix the performance issue of
`std::barrier` described in
https://github.com/llvm/llvm-project/issues/123855.

Fixes #123855
DeltaFile
+1-4libcxx/include/barrier
+1-41 files

LLVM/project 86dc131libcxx/include/__flat_set flat_multiset.h, libcxx/test/libcxx/diagnostics flat_multiset.nodiscard.verify.cpp

[libc++][flat_multiset] Applied `[[nodiscard]]` (#169984)

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

-  https://libcxx.llvm.org/CodingGuidelines.htm
-  https://wg21.link/flat.multiset
DeltaFile
+85-5libcxx/test/libcxx/diagnostics/flat_multiset.nodiscard.verify.cpp
+51-37libcxx/include/__flat_set/flat_multiset.h
+136-422 files

LLVM/project 61f4cc7libcxx/include/__flat_map flat_multimap.h, libcxx/test/libcxx/diagnostics flat_multimap.nodiscard.verify.cpp

[libc++][flat_multimap] Applied `[[nodiscard]]` (#169986)

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

- https://libcxx.llvm.org/CodingGuidelines.htm
- https://wg21.link/flat.multimap
DeltaFile
+87-7libcxx/test/libcxx/diagnostics/flat_multimap.nodiscard.verify.cpp
+48-39libcxx/include/__flat_map/flat_multimap.h
+135-462 files

LLVM/project d78e431clang-tools-extra/clangd CodeComplete.cpp ConfigCompile.cpp, clang-tools-extra/clangd/unittests CodeCompleteTests.cpp ConfigYAMLTests.cpp

[clangd] Add option to fuzzy-match macros in code-complete (#169880)

Adds `MacroFilterPolicy` 

```yaml
Completion:
  MacroFilter: ExactPrefix (default), FuzzyMatch
```

Fixes clangd/clangd#1480
DeltaFile
+58-0clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
+21-5clang-tools-extra/clangd/CodeComplete.cpp
+16-4clang-tools-extra/clangd/ConfigCompile.cpp
+14-0clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp
+8-0clang-tools-extra/clangd/Config.h
+6-0clang-tools-extra/clangd/ConfigFragment.h
+123-94 files not shown
+138-910 files

LLVM/project 4a1b696clang-tools-extra/clangd GlobalCompilationDatabase.cpp GlobalCompilationDatabase.h, clang-tools-extra/clangd/tool ClangdMain.cpp Check.cpp

[clangd] Add a (currently hidden) --strong-workspace-mode flag (#172160)

Its current effect is to use the `rootUri` provided by the client as the
working directory for fallback commands.

Future effects will include other behaviors appropriate for cases
where clangd is being run in the context of editing a single
workspace, such as using the `compile_commands.json` file in the
workspace root for all opened files.

The flag is hidden until other behaviors are implemented and they
constitute a cohesive "mode" for users.

Original PR in #155905, which was reverted due to a UBSan failure
that is fixed in this version.
DeltaFile
+32-9clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
+21-5clang-tools-extra/clangd/GlobalCompilationDatabase.h
+14-0clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
+12-0clang-tools-extra/clangd/tool/ClangdMain.cpp
+6-2clang-tools-extra/clangd/tool/Check.cpp
+5-0clang-tools-extra/clangd/ClangdServer.h
+90-161 files not shown
+92-167 files

LLVM/project 7db9769llvm/test/CodeGen/AArch64 bf16-instructions.ll, llvm/test/CodeGen/Generic bfloat-op.ll

[ARM][AArch64] Replace ".f16(bfloat" with ".bf16(bfloat" in intrinsics. NFC

It looks like these were copied from fp16 tests, and forgot to update the
intrinsic types. Also remove some old definitions that are no longer required.
DeltaFile
+34-66llvm/test/CodeGen/Thumb2/bf16-instructions.ll
+34-66llvm/test/CodeGen/AArch64/bf16-instructions.ll
+3-3llvm/test/CodeGen/Generic/bfloat-op.ll
+71-1353 files

LLVM/project 72574b8clang-tools-extra/clang-tidy/bugprone ChainedComparisonCheck.cpp ChainedComparisonCheck.h, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Add `IgnoreMacro` option to `bugprone-chained-comparison` (#171975)

Closes #171130

---------

Co-authored-by: Baranov Victor <bar.victor.2002 at gmail.com>
DeltaFile
+41-0clang-tools-extra/test/clang-tidy/checkers/bugprone/chained-comparison.cpp
+37-0clang-tools-extra/test/clang-tidy/checkers/bugprone/chained-comparison-ignore-macros.cpp
+12-0clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp
+8-0clang-tools-extra/docs/clang-tidy/checks/bugprone/chained-comparison.rst
+5-2clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.h
+5-0clang-tools-extra/docs/ReleaseNotes.rst
+108-26 files

LLVM/project f0557d8llvm/lib/Target/X86 X86InstrCMovSetCC.td, llvm/test/CodeGen/X86/apx setzucc.ll

Revert "[X86][APX] Add pattern for zext(X86setcc ..) -> SETZUCCr (#170806)" (#172192)

This reverts commit 2612dc9b5faeaeb180c5a5e0c282642faef8891b but keeps
`Predicates = [HasNDD]` removed.

There are two issues identified related to the change. One is
INSERT_SUBREG cannot guarantee source and dest to be the same register.
It mostly happens on O0. The other one is zero_extend is not a chain
node, as a result, we will lose the chain for SETZUCCr.
DeltaFile
+0-12llvm/test/CodeGen/X86/apx/setzucc.ll
+0-4llvm/lib/Target/X86/X86InstrCMovSetCC.td
+0-162 files

LLVM/project 1ea9f44llvm/lib/IR Instructions.cpp

[IR] Optimize PHINode::removeIncomingValueIf() using two-pointer (#171961)

DeltaFile
+15-16llvm/lib/IR/Instructions.cpp
+15-161 files

LLVM/project fd95803llvm/lib/Transforms/Utils LoopRotationUtils.cpp

[LoopRotate] Simplify PHINode::removeIncomingValue usage (NFC) (#171958)

DeltaFile
+1-1llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
+1-11 files

LLVM/project 1156629llvm/lib/Target/ARM MVEGatherScatterLowering.cpp

[ARM][MVE] Avoid `PHINode::removeIncomingValue()` with `PHINode::setIncomingValue()` and `PHINode::setIncomingBlock()` (NFC) (#171960)

DeltaFile
+19-16llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
+19-161 files

LLVM/project 681dbf9llvm/lib/CodeGen WinEHPrepare.cpp

[WinEH] Use removeIncomingValueIf() in UpdatePHIOnClonedBlock() (NFC) (#171962)

DeltaFile
+20-23llvm/lib/CodeGen/WinEHPrepare.cpp
+20-231 files

LLVM/project 3703a3cllvm/test/CodeGen/AArch64 vector-lrint.ll vector-llrint.ll, llvm/test/CodeGen/AMDGPU div_v2i128.ll

Merge branch 'main' into users/Enna1/PHINode-removeIncomingValueIf
DeltaFile
+2,502-1,473llvm/test/CodeGen/AArch64/vector-lrint.ll
+1,265-1,312llvm/test/CodeGen/RISCV/idiv_large.ll
+1,301-712llvm/test/CodeGen/AArch64/vector-llrint.ll
+948-980llvm/test/CodeGen/AMDGPU/div_v2i128.ll
+686-883llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast_from_memory.ll
+715-821llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll
+7,417-6,181692 files not shown
+34,256-14,379698 files

LLVM/project b33354fmlir/lib/Bindings/Python TransformInterpreter.cpp

[MLIR][Python][Transform] Print diagnostics also upon success (#172188)

If we do not collect the diagnostics from the
CollectDiagnosticsToStringScope, even when the named_sequence applied
successfully, the Scope object's destructor will assert (with a
unhelpful message).
DeltaFile
+10-1mlir/lib/Bindings/Python/TransformInterpreter.cpp
+10-11 files

LLVM/project 49ad1e9clang-tools-extra/clang-tidy ClangTidyDiagnosticConsumer.h

[clang-tidy][NFC] Remove obsolete FIXME comment (#172120)

This comment was written 12 years ago. It's no longer correct to say
that diagnostic reporting is under heavy development, and we seem to be
doing just fine without tablegenned IDs, so I think we can simply remove
it.
DeltaFile
+0-4clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
+0-41 files

LLVM/project f700e54clang/lib/AST TypePrinter.cpp, clang/lib/Sema SemaType.cpp

[clang][PAC] add support for options parameter to __ptrauth

This PR adds support for an 'options' parameter for the __ptrauth
qualifier.
The initial version only exposes the authehntication modes:
 * "strip"
 * "sign-and-strip"
 * "sign-and-auth"

We also support parsing the options but not yet the implementation
 * "isa-pointer"
 * "authenticates-null-values"

The initial support for authentication mode controls exist to support
ABI changes over time, and as a byproduct support basic initial tests
for option parsing.
DeltaFile
+327-0clang/test/CodeGen/ptrauth-stripping.c
+147-9clang/lib/Sema/SemaType.cpp
+108-0clang/test/Sema/ptrauth-qualifier-options.c
+65-0clang/test/SemaCXX/ptrauth-qualifier-constexpr-options.cpp
+33-6clang/test/Sema/ptrauth-qualifier.c
+33-1clang/lib/AST/TypePrinter.cpp
+713-168 files not shown
+787-3314 files

LLVM/project d1069b8clang/include/clang/Basic DiagnosticGroups.td DiagnosticSemaKinds.td, clang/lib/Sema SemaDecl.cpp Sema.cpp

not to be actually merged but want to keep the tests handy
DeltaFile
+9-1clang/test/SemaCXX/ptrauth-type-traits.cpp
+7-0clang/lib/Sema/SemaDecl.cpp
+5-0clang/lib/Sema/Sema.cpp
+1-1clang/include/clang/Basic/DiagnosticGroups.td
+1-1clang/include/clang/Basic/DiagnosticSemaKinds.td
+23-35 files

LLVM/project 1672767llvm/lib/Target/AArch64 AArch64FrameLowering.cpp AArch64PrologueEpilogue.h

AArch64: Use AArch64InstrInfo instead of base class in frame lowering (#172183)

DeltaFile
+9-6llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+4-3llvm/lib/Target/AArch64/AArch64PrologueEpilogue.h
+2-1llvm/lib/Target/AArch64/AArch64FrameLowering.h
+1-2llvm/lib/Target/AArch64/AArch64PrologueEpilogue.cpp
+16-124 files

LLVM/project 4516a52llvm/lib/Target/AArch64 AArch64FrameLowering.cpp AArch64PrologueEpilogue.h

AArch64: Use AArch64InstrInfo instead of base class in frame lowering
DeltaFile
+9-6llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+4-3llvm/lib/Target/AArch64/AArch64PrologueEpilogue.h
+2-1llvm/lib/Target/AArch64/AArch64FrameLowering.h
+1-2llvm/lib/Target/AArch64/AArch64PrologueEpilogue.cpp
+16-124 files

LLVM/project a99a982llvm/test/Transforms/LoopVectorize memory-dep-remarks.ll, llvm/test/Transforms/LoopVectorize/X86 vectorization-remarks-missed.ll

[LV] Add test coverage for remark for unprofitable RT checks.

Add test coverage for remark when runtime checks are not profitable with
threshold provided.

Also make sure that X86 remark tests actually passes an X86 triple,
which is needed for the threshold remark.

Also clean up the tests a bit.
DeltaFile
+85-85llvm/test/Transforms/LoopVectorize/memory-dep-remarks.ll
+68-42llvm/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll
+153-1272 files

LLVM/project 0cdc1b6llvm/test/CodeGen/AMDGPU div_v2i128.ll div_i128.ll, llvm/test/CodeGen/NVPTX i128.ll

[SelectionDAG] Support integer types with multiple registers in ComputePHILiveOutRegInfo. (#172081)

PHIs that are larger than a legal integer type are split into multiple
virtual registers that are numbered sequentially. We can propagate the
known bits for each of these registers individually.

Big endian is not supported yet because the register order needs to be
reversed.

Fixes #171671
DeltaFile
+1,265-1,312llvm/test/CodeGen/RISCV/idiv_large.ll
+948-980llvm/test/CodeGen/AMDGPU/div_v2i128.ll
+211-226llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
+208-212llvm/test/CodeGen/NVPTX/i128.ll
+204-199llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
+97-103llvm/test/CodeGen/AMDGPU/div_i128.ll
+2,933-3,03214 files not shown
+3,306-3,44320 files

LLVM/project 9436b7bmlir/include/mlir/Dialect/XeGPU/Utils XeGPUUtils.h, mlir/lib/Dialect/XeGPU/Transforms XeGPUWgToSgDistribute.cpp XeGPUSubgroupDistribute.cpp

shorten get/setTempLayoutAttr to get/setTempLayout
DeltaFile
+30-33mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
+17-17mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
+9-9mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
+7-7mlir/lib/Dialect/XeGPU/Transforms/XeGPUOptimizeBlockLoads.cpp
+2-3mlir/include/mlir/Dialect/XeGPU/Utils/XeGPUUtils.h
+65-695 files