AbortedChanges

Summary

  1. [AArch64] Add additional vector load scalarization tests for D103077. (details)
  2. [LLD][COFF] Reduce the maximum size of the GHASH table (details)
  3. [libc++] Add all indirect callable concepts and projected (details)
  4. [gn build] Port 58b29a4efc22 (details)
  5. [gn] Make ubsan errors fatal, as in cmake (details)
  6. [IR] Make TypeFinder aware of DIArgList values (details)
  7. [LoopNest][LoopFlatten] Change LoopFlattenPass to LoopNest pass (details)
Commit a773b2e430a830852c7b8ae3690ed44950c51c63 by flo
[AArch64] Add additional vector load scalarization tests for D103077.
The file was modifiedllvm/test/CodeGen/AArch64/arm64-indexed-vector-ldst.ll
Commit 2b9b9652ce27467283ae90a767af57d838a2465b by alexandre.ganea
[LLD][COFF] Reduce the maximum size of the GHASH table

Before this patch, the maximum size of the GHASH table was 2^31 buckets. However we were storing the bucket index into a TypeIndex which has an input limit of (2^31)-4095 indices, see this link. Any value above that limit will improperly set the TypeIndex's high bit, which is interpreted as DecoratedItemIdMask. This used to cause bad indices on extraction when calling TypeIndex::toArrayIndex().

Differential Revision: https://reviews.llvm.org/D103297
The file was modifiedlld/COFF/DebugTypes.cpp
Commit 58b29a4efc2212802f205e1614d58fa3c337105c by Louis Dionne
[libc++] Add all indirect callable concepts and projected

Differential Revision: https://reviews.llvm.org/D101277
The file was modifiedlibcxx/include/__iterator/concepts.h
The file was addedlibcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_binary_predicate.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/iter_common_reference_t.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_equivalence_relation.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_regular_unary_invocable.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/indirectcallable/projected/projected.compile.pass.cpp
The file was modifiedlibcxx/include/CMakeLists.txt
The file was addedlibcxx/test/support/indirectly_readable.h
The file was addedlibcxx/include/__iterator/projected.h
The file was addedlibcxx/include/__iterator/indirect_concepts.h
The file was addedlibcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_unary_invocable.compile.pass.cpp
The file was modifiedlibcxx/include/iterator
The file was addedlibcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_strict_weak_order.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_unary_predicate.compile.pass.cpp
Commit 0c4f76c9421a9a72a9c86321628abcb31881ae94 by llvmgnsyncbot
[gn build] Port 58b29a4efc22
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 4c6e2774d8273ecf8b23f376066249fee5e6f9f6 by rnk
[gn] Make ubsan errors fatal, as in cmake

Apparently ubsan errors are non-fatal by default. If you introduce UB
into LLVM and run the tests, if errors are not fatal, the test will
still produce the expected output and the tests will pass. In order to
make ubsan errors show up as test failures, they have to be made fatal.
Pass the -fno-sanitize-recover=all flag to make it so.

Differential Revision: https://reviews.llvm.org/D103298
The file was modifiedllvm/utils/gn/build/BUILD.gn
Commit b6e1fb7e32535cd299656372bd40a2597899b022 by david.stenberg
[IR] Make TypeFinder aware of DIArgList values

TypeFinder did not find types under DIArgList. This resulted in a case
of invalid IR after GlobalOpt removed a global that was the only
non-DIArgList use of a struct type.

  error: use of undefined type named 'struct.S'
    call void @llvm.dbg.value(
      metadata !DIArgList([1 x %struct.S]* undef, i64 %idxprom),
      metadata !24, metadata !DIExpression([...]))

Reviewed By: jmorse

Differential Revision: https://reviews.llvm.org/D103306
The file was modifiedllvm/lib/IR/TypeFinder.cpp
The file was addedllvm/test/Transforms/GlobalOpt/deadglobal-diarglist-use.ll
Commit fa488ea864ab448b8294b65df27d24458c149458 by eopxd
[LoopNest][LoopFlatten] Change LoopFlattenPass to LoopNest pass

This patch changes LoopFlattenPass from FunctionPass to LoopNestPass.

Utilize LoopNest and let function 'Flatten' generate information from it.

Reviewed By: Whitney

Differential Revision: https://reviews.llvm.org/D102904
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/include/llvm/Transforms/Scalar/LoopFlatten.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopFlatten.cpp