SuccessChanges

Summary

  1. [libc++] Use c++20 instead of c++2a consistently. (details)
  2. [mlir] Refactor translation of OpenMP dialect ops to LLVM IR (details)
  3. [clangd] Add server capability advertising hot-reloading of CDBs. (details)
  4. [SLP]Need shrink the load vector after reordering. (details)
  5. [CompilationDatabase] Pass Twine by const reference instead of by value. NFCI. (details)
  6. [DWARF] DWARFDebugLoc::dumpRawEntry - remove dead stores. NFCI. (details)
  7. [llvm-objdump] Pass Twine by const reference instead of by value. NFCI. (details)
  8. [mlir] Add fastmath flags support to some LLVM dialect ops (details)
  9. [clang][cli] NFC: Ensure non-null DiagnosticsEngine in ParseDiagnosticArgs (details)
  10. [clang][cli] NFC: Move parseSimpleArgs (details)
  11. [mlir] remove a use of deprecated OpState::setAttr (details)
  12. [clang][cli] NFC: Make parsing macro reusable (details)
  13. [AArch64][CostModel]Fix gather scatter cost model (details)
  14. [flang][driver] Rename driver tests (nfc) (details)
Commit 044b892c79b31a77bc0e6f52a0ec97c58b5b89b7 by marek.kurdej
[libc++] Use c++20 instead of c++2a consistently.

* The only exception is that the flag -std=c++2a is still used not to break compatibility with older compilers (clang <= 9, gcc <= 9).
* Bump _LIBCPP_STD_VER for C++20 to 20 and use 21 for the future standard (C++2b).

That's a preparation step to add c++2b support to libc++.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D93383
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp
The file was modifiedlibcxx/docs/UsingLibcxx.rst
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp
The file was modifiedlibcxx/include/string_view
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp
The file was modifiedlibcxx/test/support/test_macros.h
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/span.version.pass.cpp
The file was removedlibcxx/cmake/caches/Generic-cxx2a.cmake
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/compare.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp
The file was modifiedlibcxx/include/__config
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp
The file was modifiedlibcxx/utils/ci/buildkite-pipeline.yml
The file was modifiedlibcxx/utils/ci/run-buildbot
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp
The file was modifiedlibcxx/docs/DesignDocs/FeatureTestMacros.rst
The file was addedlibcxx/cmake/caches/Generic-cxx20.cmake
The file was modifiedlibcxx/utils/generate_feature_test_macro_components.py
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp
The file was modifiedlibcxx/docs/FeatureTestMacroTable.rst
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/limits.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/locale.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/istream.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
The file was modifiedlibcxx/include/string
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
The file was modifiedlibcxx/include/new
Commit 10164a2e50b4d7064bd02e7403aae6dd319cdd64 by zinenko
[mlir] Refactor translation of OpenMP dialect ops to LLVM IR

The original implementation of the OpenMP dialect to LLVM IR translation has
been relying on a stack of insertion points for delayed insertion of branch
instructions that correspond to terminator ops. This is an intrusive into
ModuleTranslation and makes the translation non-local. A recent addition of the
WsLoop translation exercised another approach where the parent op is
responsible for converting terminators of all blocks in its regions. Use this
approach for other OpenMP dialect operations with regions, remove the stack and
deduplicate the code for converting such regions.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D94086
The file was modifiedmlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
Commit 213329d7c64f9710f23a78596255509b147b37c6 by sam.mccall
[clangd] Add server capability advertising hot-reloading of CDBs.

Currently some clients watch for CDB changes and restart clangd, now that we
can reload compile_commands.json ourselves this is counterproductive.
The capability allows this behavior to be phased out.

This is going to be a mild regression, as we do not actually watch for files on
disk and so new diagnostics need to wait until a rebuild is requested e.g. due
to file change (and the internal caches have expired).
However this is still a better tradeoff (and if it's important, we can request
the client to watch files for us in the future).

Differential Revision: https://reviews.llvm.org/D94222
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp
The file was modifiedclang-tools-extra/clangd/test/initialize-params.test
Commit 4284afdf9432f7d756f56b0ab21d69191adefa8d by a.bataev
[SLP]Need shrink the load vector after reordering.

After merging the shuffles, we cannot rely on the previous shuffle
anymore and need to shrink the final shuffle, if it is required.

Reported in D92668

Differential Revision: https://reviews.llvm.org/D93967
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
Commit 236129fb4460a4030eee685abc2f02b32458e775 by llvm-dev
[CompilationDatabase] Pass Twine by const reference instead of by value. NFCI.
The file was modifiedclang/lib/Tooling/CompilationDatabase.cpp
The file was modifiedclang/include/clang/Tooling/CompilationDatabase.h
Commit 028091195d763190d9b57ae316c8601fe223c02c by llvm-dev
[DWARF] DWARFDebugLoc::dumpRawEntry - remove dead stores. NFCI.

Don't bother zeroing local (unused) variables just before returning.

Fixes clang static analyzer warning.
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
Commit a9a8caf2ce2ff08a20cc145d23270e6c91709baa by llvm-dev
[llvm-objdump] Pass Twine by const reference instead of by value. NFCI.
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.h
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.cpp
Commit c1d58c2b0023cd41f0da128f5190fa887d8f6c69 by zinenko
[mlir] Add fastmath flags support to some LLVM dialect ops

Add fastmath enum, attributes to some llvm dialect ops, `FastmathFlagsInterface` op interface, and `translateModuleToLLVMIR` support.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D92485
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt
The file was modifiedmlir/test/Target/llvmir.mlir
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
The file was modifiedmlir/test/Dialect/LLVMIR/roundtrip.mlir
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h
The file was modifiedmlir/lib/Dialect/LLVMIR/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was addedmlir/include/mlir/Dialect/LLVMIR/LLVMOpsInterfaces.td
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
Commit e72cdc5ba1e65ecd8632663b6604eb9be8d1a162 by jan_svoboda
[clang][cli] NFC: Ensure non-null DiagnosticsEngine in ParseDiagnosticArgs

Before this patch, ParseDiagnosticArgs can be called with a nullptr DiagnosticsEngine *. This happens early on in the compilation process, where no proper DiagnosticEngine exists, because the diagnostic options (passed through command line) are not known yet.

This patch ensures nullptr is replaced by an ignoring DiagnosticEngine in ParseDiagnosticArgs, which allows to switch from pointer to a reference in some utility functions.

Besides simplifying the code, this patch enables a future patch (D84673) that ports diagnostic options to the new marshalling infrastructure.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D93701
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit 75d63630ebb197c338801d6b100ae2e06800c4ce by jan_svoboda
[clang][cli] NFC: Move parseSimpleArgs

This patch moves `parseSimpleArgs` closer to `ParseDiagnosticArgs` so that sharing the parsing macro between them can be done more locally in a future patch.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D94172
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit a7cbc32a916a64e9f61106956ed3866a6086ae6b by zinenko
[mlir] remove a use of deprecated OpState::setAttr
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
Commit fcd1e35e4cc6887c3fb880126e60676458e60680 by jan_svoboda
[clang][cli] NFC: Make parsing macro reusable

This is necessary for a future patch, where we start using this macro in another function.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D93702
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit 01c190e907ca4752f7ba2a1390a8c91a48b322d1 by caroline.concatto
[AArch64][CostModel]Fix gather scatter cost model

This patch fixes a bug introduced in the patch:
https://reviews.llvm.org/D93030

This patch pulls the test for scalable vector to be the first instruction
to be checked. This avoids the Gather and Scatter cost model for AArch64 to
compute the number of vector elements for something that is not a vector and
therefore crashing.
The file was modifiedllvm/test/Analysis/CostModel/AArch64/sve-getIntrinsicInstrCost-gather.ll
The file was modifiedllvm/test/Analysis/CostModel/AArch64/sve-getIntrinsicInstrCost-scatter.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
Commit a2957f80f87f36ac8cfca06dec1c2defbe709876 by andrzej.warzynski
[flang][driver] Rename driver tests (nfc)

As per [1]:
```
File names should use dashes, not underscores.
```

This patch updates the names of Flang driver tests accordingly.

[1] https://github.com/llvm/llvm-project/blob/main/flang/docs/C%2B%2Bstyle.md
The file was removedflang/test/Driver/no_files.f90
The file was addedflang/test/Driver/no-files.f90
The file was addedflang/test/Driver/version-test.f90
The file was removedflang/test/Flang-Driver/macro_multiline.f90
The file was addedflang/test/Flang-Driver/macro-multiline.f90
The file was removedflang/test/Flang-Driver/macro_def_undef.f90
The file was removedflang/test/Driver/version_test.f90
The file was addedflang/test/Flang-Driver/macro-def-undef.f90