SuccessChanges

Summary

  1. [flang] Implement checks for defined input/output procedures (details)
  2. [Canonicalize] Switch the default setting to "top down". (details)
  3. [libcxx] Fix the function name in exceptions from create_directories (details)
  4. [libc++] [P0619] Hide not1 and not2 under _LIBCPP_ENABLE_CXX20_REMOVED_NEGATORS. (details)
  5. Revert "[LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration" (details)
  6. [Internalize] Rename instead of removal if a to-be-internalized comdat has more than one member (details)
  7. [ARM] Extra predicated tests for VMULH. NFC (details)
  8. [libc++] Install GCC 11 on CI builders (details)
  9. [libomptarget][nfc] Move hostcall required test to rtl (details)
  10. [Toy] Update tests to pass with top-down canonicalize pass. NFC (details)
  11. [MLIR Core] Cache the empty StringAttr like we do for empty dictionaries. NFC. (details)
  12. [NFC][SCUDO] Fix unittest for -gtest_repeat=10 (details)
  13. [NFC][MLIR][TOSA] Replaced tosa linalg.indexed_generic lowerings with linalg.index (details)
  14. [gcov] Silence warning: comparison of integers of different signs (details)
  15. [benchmark] Silence 'suggest override' and 'missing override' warnings (details)
Commit bc56620b8b765b5720dbc1849511fb783e05b8cc by psteinfeld
[flang] Implement checks for defined input/output procedures

Defined input/output procedures are specified in 12.6.4.8.  There are different
versions for read versus write and formatted versus unformatted, but they all
share the same basic set of dummy arguments.

I added several checking functions to check-declarations.cpp along with a test.

In the process of implementing this, I noticed and fixed a typo in
.../lib/Evaluate/characteristics.cpp.

Differential Revision: https://reviews.llvm.org/D103045
The file was modifiedflang/lib/Evaluate/characteristics.cpp
The file was addedflang/test/Semantics/io11.f90
The file was modifiedflang/lib/Semantics/check-declarations.cpp
Commit a004da0d77c4e0a8a17b4f84818d809b54b2079e by clattner
[Canonicalize] Switch the default setting to "top down".

This provides a sizable compile time improvement by seeding
the worklist in an order that leads to less iterations of the
worklist.

This patch only changes the behavior of the Canonicalize pass
itself, it does not affect other passes that use the
GreedyPatternRewrite driver

Differential Revision: https://reviews.llvm.org/D103053
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor-pattern.mlir
The file was modifiedmlir/test/Transforms/scf-loop-unroll.mlir
The file was modifiedmlir/test/Conversion/MathToLLVM/convert-to-libm.mlir
The file was modifiedmlir/test/Dialect/Vector/canonicalize.mlir
The file was modifiedmlir/test/Dialect/Affine/canonicalize.mlir
The file was modifiedmlir/test/Dialect/SPIRV/Transforms/canonicalize.mlir
The file was modifiedmlir/include/mlir/Transforms/Passes.td
The file was modifiedmlir/test/Transforms/test-canonicalize.mlir
The file was modifiedmlir/test/Dialect/Linalg/bufferize.mlir
The file was modifiedmlir/test/Transforms/canonicalize.mlir
The file was modifiedmlir/test/Dialect/SCF/canonicalize.mlir
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
Commit 68e45962531a25a0fab63eab163a6c9f84c81f1e by martin
[libcxx] Fix the function name in exceptions from create_directories

If the nested create_directory call fails, we'd still want to
re-report the errors with the create_directories function name,
which is what the caller called.

This fixes one aspect from MS STL's tests for std::filesystem.

Differential Revision: https://reviews.llvm.org/D102365
The file was modifiedlibcxx/src/filesystem/operations.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
Commit d42d9e10b606287f827dcc2d135ff8c932aa3d72 by arthur.j.odwyer
[libc++] [P0619] Hide not1 and not2 under _LIBCPP_ENABLE_CXX20_REMOVED_NEGATORS.

This also provides some of the scaffolding needed by D102992 and D101729, and mops up after D101730 etc.

Differential Revision: https://reviews.llvm.org/D103055
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/not2.pass.cpp
The file was modifiedlibcxx/include/__config
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/unary_negate.depr_in_cxx17.verify.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/unary_negate.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/not1.depr_in_cxx17.verify.cpp
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/deprecated.verify.cpp
The file was modifiedlibcxx/include/__memory/raw_storage_iterator.h
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/not1.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.base.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/not2.depr_in_cxx17.verify.cpp
The file was modifiedlibcxx/include/functional
The file was modifiedlibcxx/docs/Cxx2aStatus.rst
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/binary_negate.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/binary_negate.depr_in_cxx17.verify.cpp
The file was modifiedlibcxx/docs/UsingLibcxx.rst
Commit 832c99f727723bab2baf5a477bda3d91fed56f5d by mascasa
Revert "[LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration"

This reverts commit 2531fd70d19aa5d61feb533bbdeee7717a4129eb due to
performance regression on the PPC buildbot.
The file was modifiedllvm/test/Transforms/LoopDeletion/eval_first_iteration.ll
The file was modifiedllvm/test/Transforms/LoopDeletion/noop-loops-with-subloops.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopDeletion.cpp
The file was modifiedllvm/test/Transforms/LoopDeletion/zero-btc.ll
Commit b426b45d101740a21610205ec80610c6d0969966 by i
[Internalize] Rename instead of removal if a to-be-internalized comdat has more than one member

Beside the `comdat any` deduplication feature, instrumentations use comdat to
establish dependencies among a group of sections, to prevent section based
linker garbage collection from discarding some members without discarding all.
LangRef acknowledges this usage with the following wording:

> All global objects that specify this key will only end up in the final object file if the linker chooses that key over some other key.

On ELF, for PGO instrumentation, a `__llvm_prf_cnts` section and its associated
`__llvm_prf_data` section are placed in the same GRP_COMDAT group.  A
`__llvm_prf_data` is usually not referenced and expects the liveness of its
associated `__llvm_prf_cnts` to retain it.

The `setComdat(nullptr)` code (added by D10679) in InternalizePass can break the
use case (a `__llvm_prf_data` may be dropped with its associated `__llvm_prf_cnts` retained).
The main goal of this patch is to fix the dependency relationship.

I think it makes sense for InternalizePass to internalize a comdat and thus
suppress the deduplication feature, e.g. a relocatable link of a regular LTO can
create an object file affected by InternalizePass.
If a non-internal comdat in a.o is prevailed by an internal comdat in b.o, the
a.o references to the comdat definitions will be non-resolvable (references
cannot bind to STB_LOCAL definitions in b.o).

On PE-COFF, for a non-external selection symbol, deduplication is naturally
suppressed with link.exe and lld-link. However, this is fuzzy on ELF and I tend
to believe the spec creator has not thought about this use case (see D102973).

GNU ld and gold are still using the "signature is name based" interpretation.
So even if D102973 for ld.lld is accepted, for portability, a better approach is
to rename the comdat. A comdat with one single member is the common case,
leaving the comdat can waste (sizeof(Elf64_Shdr)+4*2) bytes, so we optimize by
deleting the comdat; otherwise we rename the comdat.

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D103043
The file was modifiedllvm/include/llvm/Transforms/IPO/Internalize.h
The file was modifiedllvm/lib/Transforms/IPO/Internalize.cpp
The file was addedllvm/test/Transforms/Internalize/comdat-empty-moduleid.ll
The file was modifiedllvm/test/Transforms/Internalize/comdat.ll
Commit 8cc437a8a16e6d2dd403a9a3a74594574e3371d4 by david.green
[ARM] Extra predicated tests for VMULH. NFC
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vmulh.ll
Commit 66781efd0acf738b78ec74b04a8f2d7fc18278c7 by Louis Dionne
[libc++] Install GCC 11 on CI builders
The file was modifiedlibcxx/utils/ci/Dockerfile
Commit df005fa364ae3914231f98f80acc120fcf782c26 by jonathanchesterfield
[libomptarget][nfc] Move hostcall required test to rtl

[libomptarget][nfc] Move hostcall required test to rtl

Remove a global, fix minor race. First of N patches to bring up hostcall.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D103058
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/system.cpp
The file was modifiedopenmp/libomptarget/plugins/amdgpu/src/rtl.cpp
Commit a6a57f03be40cf2c546805155624a206649092ec by clattner
[Toy] Update tests to pass with top-down canonicalize pass. NFC
The file was modifiedmlir/test/Examples/Toy/Ch7/affine-lowering.mlir
The file was modifiedmlir/test/Examples/Toy/Ch6/affine-lowering.mlir
The file was modifiedmlir/test/Examples/Toy/Ch5/affine-lowering.mlir
Commit aaa2982d7191eaf8638c91d0aa5b16f5523a1fc8 by clattner
[MLIR Core] Cache the empty StringAttr like we do for empty dictionaries. NFC.

MLIRContext holds a few special case values that occur frequently like empty
dictionary and NoneType, which allow us to avoid taking locks to get an instance
of them.  Give the empty StringAttr this treatment as well.  This cuts several
percent off compile time for CIRCT.

Differential Revision: https://reviews.llvm.org/D103117
The file was modifiedmlir/lib/IR/BuiltinAttributes.cpp
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
Commit e14696bfd740edb3f2fa7b9f36022f36000742ec by Vitaly Buka
[NFC][SCUDO] Fix unittest for -gtest_repeat=10

Reviewed By: cryptoad

Differential Revision: https://reviews.llvm.org/D103122
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/common_test.cpp
Commit e5d227e95ca1d0386b4aa8bc5e29b76d3eb4b8a0 by rob.suderman
[NFC][MLIR][TOSA] Replaced tosa linalg.indexed_generic lowerings with linalg.index

Indexed Generic should be going away in the future. Migrate to linalg.index.

Reviewed By: NatashaKnk, nicolasvasilache

Differential Revision: https://reviews.llvm.org/D103110
The file was modifiedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
The file was modifiedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
Commit dd2be15ff91a9a93387afbe0789f4de3376c0c0f by alexandre.ganea
[gcov] Silence warning: comparison of integers of different signs

When building with Clang 11 on Windows, silence the following:

[432/5643] Building C object projects\compiler-rt\lib\profile\CMakeFiles\clang_rt.profile-x86_64.dir\GCDAProfiling.c.obj
F:\aganea\llvm-project\compiler-rt\lib\profile\GCDAProfiling.c(464,13): warning: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Wsign-compare]
    if (val != (gcov_version >= 90 ? GCOV_TAG_OBJECT_SUMMARY
        ~~~ ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
The file was modifiedcompiler-rt/lib/profile/GCDAProfiling.c
Commit 20c9a44ac0164a657329020c0b3deabab3625688 by alexandre.ganea
[benchmark] Silence 'suggest override' and 'missing override' warnings

When building with Clang 11 on Windows, silence the following:

F:\aganea\llvm-project\llvm\utils\benchmark\include\benchmark/benchmark.h(955,8): warning: 'Run' overrides a member function but is not marked 'override' [-Wsuggest-override]
  void Run(State& st);
       ^
F:\aganea\llvm-project\llvm\utils\benchmark\include\benchmark/benchmark.h(895,16): note: overridden virtual function is here
  virtual void Run(State& state) = 0;
               ^
1 warning generated.
The file was modifiedllvm/utils/benchmark/include/benchmark/benchmark.h