SuccessChanges

Summary

  1. [clang-cl] Add /permissive and /permissive- (details)
  2. [AArch64] Silence fallthrough warning. NFC. (details)
  3. [docs][llvm-ar] Add rsp-quoting option to the llvm-ar command guide. (details)
  4. [mlir][gpu] Add op to create MMA constant matrix (details)
  5. Fix range-loop-analysis warning (details)
  6. Add a page to track the status of C proposals in Clang. (details)
  7. [AIX] Build libLTO as MODULE rather than SHARED (details)
  8. Revert "[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp-contract=on" (details)
  9. [libc++abi] Remove the LIBCXXABI_ENABLE_PIC option (details)
  10. [lldb] Add 9494c510af56 to .git-blame-ignore-revs (details)
  11. [Flang][Runtime][tests] Escape regex special character. (details)
  12. [gn build] minor TODO.txt update (details)
  13. [flang] Fixed simple typo in runtime code (details)
  14. [SLP]Disable scheduling of insertelements. (details)
  15. [AArch64][GlobalISel] Mark some G_BITREVERSE types as legal + select them (details)
  16. [mlir-lsp-server] Add support for textDocument/documentSymbols (details)
  17. [mlir-lsp-server] Document the features provided by the language server (details)
  18. [lldb, win] Remove obsolete workaround for MSVC and python libs (details)
Commit c70b0e808da8e1650f3ee426698a8b87c94b8910 by markus.boeck02
[clang-cl] Add /permissive and /permissive-

This patch adds the command line options /permissive and /permissive- to clang-cl. These flags are used in MSVC to enable various /Zc language conformance options at once. In particular, /permissive is used to enable the various non standard behaviour of MSVC, while /permissive- is the opposite.

When either of two command lines are specified they are simply expanded to the various underlying /Zc options. In particular when /permissive is passed it currently expands to:

/Zc:twoPhase- (disable two phase lookup)
-fno-operator-names (disable C++ operator keywords)
/permissive- expands to the opposites of these flags + /Zc:strictStrings (/Zc:strictStrings- does not currently exist). In the future, if any more MSVC workarounds are ever added they can easily be added to the expansion. One is also able to override settings done by permissive. Specifying /permissive- /Zc:twoPhase- will apply the settings from permissive minus, but disables two phase lookup.

Motivation for this patch was mainly parity with MSVC as well as compatibility with Windows SDK headers. The /permissive page from MSVC documents various workarounds that have to be done for the Windows SDK headers [1], when MSVC is used with /permissive-. In these, Microsoft often recommends simply compiling with /permissive for the specified source files. Since some of these also apply to clang-cl (which acts like /permissive- by default mostly), and some are currently implemented as "hacks" within clang that I'd like to remove, adding /permissive and /permissive- to be in full parity with MSVC and Microsofts documentation made sense to me.

[1] https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-160#windows-header-issues

Differential Revision: https://reviews.llvm.org/D103773
The file was modifiedclang/include/clang/Driver/Options.td
The file was addedclang/test/Driver/cl-permissive.c
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp
Commit 3dceffd0fdbc8bfb3b5377b5bbe21b50d443ff43 by benny.kra
[AArch64] Silence fallthrough warning. NFC.

AArch64TargetTransformInfo.cpp:302:3: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
  default:
    ^
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
Commit 3b46283c1539f89619f2b40ab7732f434d7c68ff by gbreynoo
[docs][llvm-ar] Add rsp-quoting option to the llvm-ar command guide.

I noticed that I did not update the command guide when introducing the
--rsp-quoting option. This change fixes this.

Differential Revision: https://reviews.llvm.org/D103915
The file was modifiedllvm/docs/CommandGuide/llvm-ar.rst
Commit 428a62f65f16f1640b1bfe033d20e6a4f545dd3e by thomasraoux
[mlir][gpu] Add op to create MMA constant matrix

This allow creating a matrix with all elements set to a given value. This is
needed to be able to implement a simple dot op.

Differential Revision: https://reviews.llvm.org/D103870
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was modifiedmlir/test/Dialect/GPU/ops.mlir
The file was modifiedmlir/lib/Conversion/GPUToNVVM/WmmaOpsToNvvm.cpp
The file was modifiedmlir/test/Conversion/GPUToNVVM/wmma-ops-to-nvvm.mlir
Commit 026170d17d1eb8956237ba88c07a60f07445ebf1 by keithbsmiley
Fix range-loop-analysis warning

```
llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:8024:19: warning: loop variable 'VF' of type 'const llvm::ElementCount' creates a copy from type 'const llvm::ElementCount' [-Wrange-loop-analysis]
  for (const auto VF : VFCandidates) {
                  ^
llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:8024:8: note: use reference type 'const llvm::ElementCount &' to prevent copying
  for (const auto VF : VFCandidates) {
       ^~~~~~~~~~~~~~~
                  &
1 warning generated.
```

Differential Revision: https://reviews.llvm.org/D103970
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 3a7a7749417854827cf621eaef6012d31e7a82ab by aaron
Add a page to track the status of C proposals in Clang.
The file was modifiedclang/www/menu.html.incl
The file was addedclang/www/c_status.html
Commit 75d4f55d150cd3d38797ec228fc871bed93b8540 by daltenty
[AIX] Build libLTO as MODULE rather than SHARED

On CMake versions greater that >= 3.16 on AIX, shared libraries are
created as archives (which is the normal form for the platform). However
plugins libraries which are passed directly to a executable, like
libLTO to the linker, are usual build as plain `.so`, so this patch
restores this behaviour for libLTO on AIX (and adjust the name if need be
to account for the fact that llvm_add_library likes to force an empty
name prefix on modules), so we end up with the expected libLTO.so

Reviewed By: w2yehia

Differential Revision: https://reviews.llvm.org/D103824
The file was modifiedllvm/tools/lto/CMakeLists.txt
Commit c3cc14f87f78f8172b74175bbd2557cfb9384900 by melanie.blower
Revert "[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp-contract=on"

This reverts commit 8daac3714083aa5507622dba858344051f6b5574.
The build bots are showing some fails on broadwell and arm.
Fix to LNT test suite needs work.
The file was modifiedclang/test/CodeGen/ppc-xmmintrin.c
The file was modifiedclang/test/CodeGen/ppc-emmintrin.c
The file was modifiedclang/docs/UsersManual.rst
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/test/CodeGen/ffp-contract-option.c
The file was modifiedclang/test/Driver/fp-model.c
Commit a0ae3b0789140ee9238c3052b2231ceaa777e82f by Louis Dionne
[libc++abi] Remove the LIBCXXABI_ENABLE_PIC option

Instead, people should be using CMAKE_POSITION_INDEPENDENT_CODE to control
whether they want to use PIC or not. We should try to avoid reinventing
the wheel whenever CMake natively supports something.

This makes libc++abi consistent with libc++ and libunwind.

Differential Revision: https://reviews.llvm.org/D103973
The file was modifiedlibcxx/docs/ReleaseNotes.rst
The file was modifiedlibcxxabi/src/CMakeLists.txt
The file was modifiedlibcxxabi/CMakeLists.txt
The file was modifiedlibcxx/cmake/caches/Apple.cmake
Commit cfbf61cd5994985cec81068e17c0c98773af543b by Jonas Devlieghere
[lldb] Add 9494c510af56 to .git-blame-ignore-revs

Adding 9494c510af56 to .git-blame-ignore-revs after having let it simmer
for a day.
The file was modified.git-blame-ignore-revs
Commit 0112f6ac71517de7767296eda1db26cc4bdb14ee by llvm-project
[Flang][Runtime][tests] Escape regex special character.

The second argument of `ASSERT_DEATH` describes a regular expression, in
which parentheses have special meaning. Matches of literal parentheses
need to be escaped.

Fixes failure of InvalidFormatFailure.ParenMismatch and
InvalidFormatFailure.ParenMismatch when gtest is compiled with MSVC's
regex implementation.

Reviewed By: awarzynski

Differential Revision: https://reviews.llvm.org/D104011
The file was modifiedflang/unittests/RuntimeGTest/Format.cpp
Commit 4d11ba38b47de1da1cee156a8bf8b5d3447326b9 by thakis
[gn build] minor TODO.txt update
The file was modifiedllvm/utils/gn/TODO.txt
Commit a0bd24453b14d04666ed29f856387ead5c87205b by unknown
[flang] Fixed simple typo in runtime code

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D104034
The file was modifiedflang/runtime/random.cpp
Commit a893b441873d4dd0ba849a722797f40da8600c39 by a.bataev
[SLP]Disable scheduling of insertelements.

There is no need to schedule insertelement instructions. The compiler
did not schedule them before it started support their vectorization and
it should not do it after. We pre-schedule them manually when finding
a build vector sequence.
Disabling scheduling of insertelement instructions improves compile
time and vectorization of the very large basic blocks by saving
scheduling budget for other instructions.

Differential Revision: https://reviews.llvm.org/D104026
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector-inseltpoison.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 1b894ccdc9ee8419e81499b2d394a00c0b880db1 by Jessica Paquette
[AArch64][GlobalISel] Mark some G_BITREVERSE types as legal + select them

We fall back on G_CTTZ_ZERO_UNDEF a lot when building clang for arm64 with
gisel.

Handling this will require that we can handle G_BITREVERSE.

This patch marks G_BITREVERSE instructions with natively supported types as
legal. We get selection on these types for free via the importer.

Differential Revision: https://reviews.llvm.org/D103999
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-bitreverse.mir
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/select-bitreverse.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
Commit ff81a2c95ddb944c61c162baec3521d9dd62c2cc by riddleriver
[mlir-lsp-server] Add support for textDocument/documentSymbols

This allows for building an outline of the symbols and symbol tables within the IR. This allows for easy navigations to functions/modules and other symbol/symbol table operations within the IR.

Differential Revision: https://reviews.llvm.org/D103729
The file was modifiedmlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
The file was modifiedmlir/lib/Tools/mlir-lsp-server/lsp/Protocol.h
The file was modifiedmlir/lib/Parser/AsmParserState.cpp
The file was modifiedmlir/lib/Tools/mlir-lsp-server/lsp/Transport.cpp
The file was modifiedmlir/lib/Tools/mlir-lsp-server/LSPServer.cpp
The file was modifiedmlir/lib/Tools/mlir-lsp-server/MLIRServer.h
The file was addedmlir/test/mlir-lsp-server/document-symbols.test
The file was modifiedmlir/lib/Tools/mlir-lsp-server/lsp/Protocol.cpp
The file was modifiedmlir/test/mlir-lsp-server/initialize-params.test
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/include/mlir/Parser/AsmParserState.h
Commit bb97959949ff68aa7e001bab2be1b5be4d6d389a by riddleriver
[mlir-lsp-server] Document the features provided by the language server

This revision adds focused documentation on each of the individual features of the server, with images showcasing how they look in vscode.

Differential Revision: https://reviews.llvm.org/D103942
The file was modifiedmlir/docs/Tools/MLIRLSP.md
Commit ca10add5dbe4c3fb2ccaa032d9c7f3e13ca4b14b by stilis
[lldb, win] Remove obsolete workaround for MSVC and python libs

This workaround was necessary before the major changes of managing python versions, but it is not needed anymore.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D104047
The file was modifiedlldb/source/API/CMakeLists.txt