UnstableChanges

Summary

  1. [OpAsmParser] Refactor parseOptionalInteger to support wide integers, NFC. (details)
  2. [LLD] Improve reporting unresolved symbols in shared libraries (details)
  3. [mlir][linalg] Remove IndexedGenericOp support from Tiling... (details)
  4. [clangd][index-sever] Limit results in repsonse (details)
  5. [clangd][remote-client] Set HasMore to true for failure (details)
  6. [libcxx] removes operator!= and globally guards against no spaceship operator (details)
  7. [libcxx] makes comparison operators for `std::*_ordering` types hidden friends (details)
  8. [libcxx] deprecates/removes `std::raw_storage_iterator` (details)
  9. [mlir][linalg] Remove IndexedGenericOp support from Fusion... (details)
  10. [mlir][linalg] Remove IndexedGenericOp support from LinalgToLoops... (details)
  11. [llvm-dwarfdump] Fix abstract origin vars location stats calculation (details)
  12. [libcxx][test] Make string.modifiers/clear_and_shrink_db1.pass.cpp a regular mode test (details)
  13. Support VectorTransfer splitting on writes also. (details)
  14. [OpenCL] [NFC] Fixed underline being too short in rst (details)
  15. Fix -Wdocumentation warnings. NFCI. (details)
  16. * Add support for JSON output style to llvm-symbolizer (details)
  17. [flang][cmake] Enable the new driver by default (details)
  18. [WebAssembly] Support for WebAssembly globals in LLVM IR (details)
Commit 2b09a89daf956795d82076d983c3d78b96e1af4b by clattner
[OpAsmParser] Refactor parseOptionalInteger to support wide integers, NFC.

OpAsmParser (and DialectAsmParser) supports a pair of
parseInteger/parseOptionalInteger methods, which allow parsing a bare
integer into a C type of your choice (e.g. int8_t) using templates.  It
was implemented in terms of a virtual method call that is hard coded to
int64_t because "that should be big enough".

Change the virtual method hook to return an APInt instead.  This allows
asmparsers for custom ops to parse large integers if they want to, without
changing any of the clients of the fixed size C API.

Differential Revision: https://reviews.llvm.org/D102120
The file was modifiedmlir/include/mlir/IR/DialectImplementation.h
The file was modifiedmlir/lib/Parser/DialectSymbolParser.cpp
The file was modifiedmlir/include/mlir/IR/OpImplementation.h
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/lib/Parser/Parser.h
Commit 70c23e232e50b190c9e0d8e4b5b6a8ddfc19b80c by ikudrin
[LLD] Improve reporting unresolved symbols in shared libraries

Currently, when reporting unresolved symbols in shared libraries, if an
undefined symbol is firstly seen in a regular object file that shadows
the reference for the same symbol in a shared object. As a result, the
error for the unresolved symbol in the shared library is not reported.
If referencing sections in regular object files are discarded because of
'--gc-sections', no reports about such symbols are generated, and the
linker finishes successfully, generating an output image that fails on
the run.

The patch fixes the issue by keeping symbols, which should be checked,
for each shared library separately.

Differential Revision: https://reviews.llvm.org/D101996
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/ELF/InputFiles.h
The file was modifiedlld/ELF/InputFiles.cpp
The file was modifiedlld/test/ELF/allow-shlib-undefined.s
Commit d69bccf1ed30d16e043d4bb71b4ebd6100efa75b by gysit
[mlir][linalg] Remove IndexedGenericOp support from Tiling...

after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612).

Differential Revision: https://reviews.llvm.org/D102176
The file was removedmlir/test/Dialect/Linalg/tile-indexed-generic.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was modifiedmlir/test/Dialect/Linalg/tile-tensors.mlir
Commit daf3cb3b8a5868d9089a69025c556b564615b844 by kadircet
[clangd][index-sever] Limit results in repsonse

This is to prevent server from being DOS'd by possible malicious
parties issuing requests that can yield huge responses.

One possible drawback is on rename workflow. As it really requests all
occurences, but it has an internal limit on 50 files currently.
We are putting the limit on 10000 elements per response So for rename to regress
one should have 10k refs to a symbol in less than 50 files. This seems unlikely
and we fix it if there are complaints by giving up on the response based on the
number of files covered instead.

Differential Revision: https://reviews.llvm.org/D101914
The file was addedclang-tools-extra/clangd/test/remote-index/result-limiting.test
The file was modifiedclang-tools-extra/clangd/index/remote/server/Server.cpp
Commit 888307ee625b50b060317e2100fb16e0be2626b7 by kadircet
[clangd][remote-client] Set HasMore to true for failure

Currently client was setting the HasMore to true iff stream said so.
Hence if we had a broken stream for whatever reason (e.g. hitting deadline for a
huge response), HasMore would be false, which is semantically incorrect (e.g.
will throw rename off).

Differential Revision: https://reviews.llvm.org/D101915
The file was modifiedclang-tools-extra/clangd/index/remote/Client.cpp
Commit 20506fb1f361e41012506c6c252fd690541fc708 by cjdb
[libcxx] removes operator!= and globally guards against no spaceship operator

* `operator!=` isn't in the spec
* `<compare>` is designed to work with `operator<=>` so it doesn't
  really make sense to have `operator<=>`-less friendly sections.

Depends on D100283.

Differential Revision: https://reviews.llvm.org/D100342
The file was modifiedlibcxx/test/std/language.support/cmp/cmp.partialord/partialord.pass.cpp
The file was modifiedlibcxx/test/std/language.support/cmp/cmp.strongord/strongord.pass.cpp
The file was modifiedlibcxx/test/std/language.support/cmp/cmp.weakord/weakord.pass.cpp
The file was modifiedlibcxx/test/std/language.support/cmp/cmp.categories.pre/zero_type.verify.cpp
The file was modifiedlibcxx/include/compare
Commit 9eb0969a767bdc8ed5b28dbcc51b46c2ee088256 by cjdb
[libcxx] makes comparison operators for `std::*_ordering` types hidden friends

The standard leaves it up to the implementation to decide whether or not
these operators are hidden friends. There are several (well-documented)
reasons to prefer hidden friends, as well as an argument for improved
readability.

Depends on D100342.

Differential Revision: https://reviews.llvm.org/D101707
The file was modifiedlibcxx/include/compare
Commit 578d09c1b195d859ca7e62840ff6bb83421a77b5 by cjdb
[libcxx] deprecates/removes `std::raw_storage_iterator`

C++17 deprecates `std::raw_storage_iterator` and C++20 removes it.

Implements part of:
  * P0174R2 'Deprecating Vestigial Library Parts in C++17'
  * P0619R4 'Reviewing Deprecated Facilities of C++17 for C++20'

Differential Revision: https://reviews.llvm.org/D101730
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.base.pass.cpp
The file was addedlibcxx/test/std/utilities/memory/storage.iterator/deprecated.verify.cpp
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp
The file was modifiedlibcxx/include/__memory/raw_storage_iterator.h
Commit 6676e09b22c3478686d48cb835a98df62fcfbb7e by gysit
[mlir][linalg] Remove IndexedGenericOp support from Fusion...

after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612).

Differential Revision: https://reviews.llvm.org/D102174
The file was removedmlir/test/Dialect/Linalg/fusion-indexed-generic.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was addedmlir/test/Dialect/Linalg/fusion-indexed.mlir
Commit 7bc6df2528f60920ae8aaa90ef2351df4676232a by gysit
[mlir][linalg] Remove IndexedGenericOp support from LinalgToLoops...

after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612).

Differential Revision: https://reviews.llvm.org/D102187
The file was modifiedmlir/test/Dialect/Linalg/loops.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
Commit 1ed296360041c3091fa8d7348efde729f0d9c754 by djtodoro
[llvm-dwarfdump] Fix abstract origin vars location stats calculation

There are cases where a concrete DIE with DW_TAG_subprogram can have
abstract_origin attribute, so we handle that situation as well.

Differential Revision: https://reviews.llvm.org/D101025
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/statistics-dwo.test
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/statistics-v3.test
The file was removedllvm/test/tools/llvm-dwarfdump/X86/locstats-for-inlined-vars.yaml
The file was addedllvm/test/tools/llvm-dwarfdump/X86/locstats-for-absctract-origin-vars.yaml
The file was modifiedllvm/tools/llvm-dwarfdump/Statistics.cpp
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/stats-scope-bytes-covered.yaml
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/statistics.ll
Commit 65e40f0b265d13bde397db41303ac08d214a6559 by kbessonova
[libcxx][test] Make string.modifiers/clear_and_shrink_db1.pass.cpp a regular mode test

Turn this test into a normal mode as it contains well-formed code and
checks for defined behavior. It still can be run in debug mode as of D100866.

Differential Revision: https://reviews.llvm.org/D102192
The file was removedlibcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink_db1.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink.pass.cpp
Commit 88a48999d249a5478d813596d1cfac6ba82126dc by tpopp
Support VectorTransfer splitting on writes also.

VectorTransfer split previously only split read xfer ops. This adds
the same logic to write ops. The resulting code involves 2
conditionals for write ops while read ops only needed 1, but the created
ops are built upon the same patterns, so pattern matching/expectations
are all consistent other than in regards to the if/else ops.

Differential Revision: https://reviews.llvm.org/D102157
The file was modifiedmlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
Commit 7d20f709ea6da8442a153beda7ecdda07440f046 by olemarius.strohm
[OpenCL] [NFC] Fixed underline being too short in rst
The file was modifiedclang/docs/LanguageExtensions.rst
Commit 33399405f4423429ec92c98a116c9ddc486864ec by llvm-dev
Fix -Wdocumentation warnings. NFCI.
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPConstants.h
Commit 05d1ae4e18fa565ea522e02d2497ec68d1dbdd80 by aorlov
* Add support for JSON output style to llvm-symbolizer

This patch adds JSON output style to llvm-symbolizer to better support CLI automation by providing a machine readable output.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D96883
The file was modifiedllvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
The file was modifiedllvm/tools/llvm-symbolizer/Opts.td
The file was addedllvm/test/tools/llvm-symbolizer/output-style-json-data.test
The file was modifiedllvm/lib/DebugInfo/Symbolize/DIPrinter.cpp
The file was addedllvm/test/tools/llvm-symbolizer/output-style-json-code.test
The file was addedllvm/test/tools/llvm-symbolizer/output-style-json-frame.ll
The file was modifiedllvm/docs/CommandGuide/llvm-symbolizer.rst
Commit 04adfb660987072ad31756e0d04803f96c3c39f7 by andrzej.warzynski
[flang][cmake] Enable the new driver by default

With this patch, `FLANG_BUILD_NEW_DRIVER` is set to `On` by default
(i.e. the new driver is enabled). Note that the new driver depends on
Clang and hence with this change you will need to add `clang` to
`LLVM_ENABLE_PROJECTS`.

If you don't want to build the new driver, set `FLANG_BUILD_NEW_DRIVER`
to `Off`. This way you won't be required to include `clang` in
`LLVM_ENABLE_PROJECTS`.

Differential Revision: https://reviews.llvm.org/D101842
The file was modifiedflang/README.md
The file was modifiedflang/CMakeLists.txt
The file was modifiedllvm/CMakeLists.txt
Commit d7086af2143d58a6535e0837c4d8789c69c6985f by wingo
[WebAssembly] Support for WebAssembly globals in LLVM IR

This patch adds support for WebAssembly globals in LLVM IR, representing
them as pointers to global values, in a non-default, non-integral
address space.  Instruction selection legalizes loads and stores to
these pointers to new WebAssemblyISD nodes GLOBAL_GET and GLOBAL_SET.
Once the lowering creates the new nodes, tablegen pattern matches those
and converts them to Wasm global.get/set of the appropriate type.

Based on work by Paulo Matos in https://reviews.llvm.org/D95425.

Reviewed By: pmatos

Differential Revision: https://reviews.llvm.org/D101608
The file was modifiedllvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISD.def
The file was addedllvm/test/CodeGen/WebAssembly/global-set.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
The file was modifiedclang/lib/Basic/Targets/WebAssembly.h
The file was modifiedclang/test/CodeGen/target-data.c
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was addedllvm/test/CodeGen/WebAssembly/global-get.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp