Changes

Summary

  1. Drop transfer_read inner most unit dimensions (details)
  2. Update ext-int test to have x86 linux/windows before ABI Impl (details)
  3. [fir] Add Character helper (details)
  4. Make dr177x.cpp test work with Windows-32 bit platfroms with 'thiscall'. (details)
  5. [mlir][sparse] make index type explicit in public API of support library (details)
  6. [IndVars] Invalidate SCEV when IR is changed in rewriteLoopExitValue. (details)
  7. Precommit updated InstCombine/and-xor-or.ll test. NFC. (details)
  8. Remove include of 'type_info' from ext-int test. (details)
  9. [InstCombine] Fold `(a & ~b) & ~c` to `a & ~(b | c)` (details)
  10. [libc++] Fix incorrect main() signatures in the tests (details)
  11. [x86] add special-case lowering for usubsat for AVX512 (details)
  12. Revert "[fir] Add Character helper" (details)
  13. [Tests] Add tests for non-speculatable ephemeral values (details)
  14. [libc++abi] Guard include of <unistd.h> behind __has_include (details)
  15. [libunwind] Revert "Use the from-scratch testing configuration by default" (details)
  16. [runtimes] Rename CI job from "Runtimes build" to "Bootstrapping build" (details)
  17. Revert "[ORC-RT] Configure the ORC runtime for more architectures and platforms" (details)
Commit a3dd4e777095f9668215a3babab1041025819f64 by ataei
Drop transfer_read inner most unit dimensions

Add a pattern to take a rank-reducing subview and drop inner most
contiguous unit dim.
This is useful when lowering vector to backends with 1d vector types.

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D111561
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
The file was addedmlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
Commit 4e21caece0dd72450b6ac72d1bcedd697c666efc by erich.keane
Update ext-int test to have x86 linux/windows before ABI Impl

Writing a quick test to make sure we are aware of the change to the
_ExtInt/_BitInt ABI on x86 (32bit) OSes.
The file was modifiedclang/test/CodeGenCXX/ext-int.cpp
Commit 02d7089c239075a5c2e148087d2824d253fc3d5f by clementval
[fir] Add Character helper

This patch is extracted from D111337. It introduce the
CharacterExprHelper that helps dealing with character in FIR.

Reviewed By: schweitz, awarzynski

Differential Revision: https://reviews.llvm.org/D112140

Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: V Donaldson <vdonaldson@nvidia.com>
The file was modifiedflang/lib/Optimizer/Builder/CMakeLists.txt
The file was addedflang/lib/Optimizer/Builder/Character.cpp
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROpsSupport.h
The file was modifiedflang/lib/Optimizer/Builder/FIRBuilder.cpp
The file was modifiedflang/unittests/Optimizer/Builder/FIRBuilderTest.cpp
The file was modifiedflang/unittests/Optimizer/CMakeLists.txt
The file was addedflang/include/flang/Optimizer/Builder/Character.h
The file was modifiedflang/include/flang/Optimizer/Dialect/FIRType.h
The file was modifiedflang/include/flang/Optimizer/Builder/FIRBuilder.h
The file was addedflang/unittests/Optimizer/Builder/CharacterTest.cpp
Commit 35037ae1971a92b07783339ee9d7a5da50a2ab4b by erich.keane
Make dr177x.cpp test work with Windows-32 bit platfroms with 'thiscall'.

My downstream noticed that the test failed on windows-32 bit machines
since the types have __attribute__((thiscall)) on them in a few places.
This patch just adds a wildcard to handle that, since it isn't
particularly important to the test.
The file was modifiedclang/test/CXX/drs/dr177x.cpp
Commit bd5494d127a39f619b7d0e5e967f190e0e61d6e7 by ajcbik
[mlir][sparse] make index type explicit in public API of support library

The current implementation used explicit index->int64_t casts for some, but
not all instances of passing values of type "index" in and from the sparse
support library. This revision makes the situation more consistent by
using new "index_t" type at all such places  (which allows for less trivial
casting in the generated MLIR code).  Note that the current revision still
assumes that "index" is 64-bit wide. If we want to support targets with
alternative "index" bit widths, we need to build the support library different.
But the current revision is a step forward by making this requirement explicit
and more visible.

Reviewed By: wrengr

Differential Revision: https://reviews.llvm.org/D112122
The file was modifiedmlir/lib/ExecutionEngine/SparseUtils.cpp
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
The file was modifiedmlir/test/Dialect/SparseTensor/conversion.mlir
Commit 8977bd58067d9dcd5e8cebd078c45ff629af9e1d by flo
[IndVars] Invalidate SCEV when IR is changed in rewriteLoopExitValue.

At the moment, rewriteLoopExitValue forgets the current phi node in the
loop that collects phis to rewrite. A few lines after the value is
forgotten, SCEV is used again to analyze incoming values and
potentially expand SCEV expression. This means that another SCEV is
created for PN, before the IR is actually updated in the next loop.

This leads to accessing invalid cached expression in combination with
D71539.

PN should only be changed once the actual incoming exit value is set in
the next loop. Moving invalidation there should ensure that PN is
invalidated in all relevant cases.

Reviewed By: mkazantsev

Differential Revision: https://reviews.llvm.org/D111495
The file was modifiedllvm/test/Transforms/IndVarSimplify/invalidate-modified-lcssa-phi.ll
The file was modifiedllvm/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/elim-extend.ll
Commit 3c59cdee5caabdfc7735579cb43fbb5af18b6103 by Stanislav.Mekhanoshin
Precommit updated InstCombine/and-xor-or.ll test. NFC.
The file was modifiedllvm/test/Transforms/InstCombine/and-xor-or.ll
Commit 8dc44d8dd872eadf112c43fa7784110a43ccb683 by erich.keane
Remove include of 'type_info' from ext-int test.

Originally I thought that I needed to do a #include to trick the
compiler into letting me use typeid I believe, but Aaron explained that
it was just looking for the type_info type.  I had to give it some
public/private members to make it emit the same as before, but this
ought to be a 'perfect' replacement.
The file was modifiedclang/test/CodeGenCXX/ext-int.cpp
Commit b92412fb286be26d6f033b9ec283b1b18cb57869 by Stanislav.Mekhanoshin
[InstCombine] Fold `(a & ~b) & ~c` to `a & ~(b | c)`

  %not1 = xor i32 %b, -1
  %not2 = xor i32 %c, -1
  %and1 = and i32 %a, %not1
  %and2 = and i32 %and1, %not2
=>
  %i1 = or i32 %b, %c
  %i2 = xor i32 %1, -1
  %and2 = and i32 %i2, %a

Differential Revision: https://reviews.llvm.org/D112108
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/test/Transforms/InstCombine/and-xor-or.ll
Commit 048688fd80fadce1c72c365b0d74599a33389cfb by Louis Dionne
[libc++] Fix incorrect main() signatures in the tests

Those creep up from time to time. We need to use `int main(int, char**)`
because in freestanding mode, `main` doesn't get special treatment and
special mangling, so we setup a symbol alias from the mangled version of
`main(int, char**)` to `extern "C" main`. That only works if all the tests
are consistent about how they define their main function.
The file was modifiedlibcxx/test/std/utilities/function.objects/refwrap/refwrap.const/type_conv_ctor.pass.cpp
The file was modifiedlibcxx/test/std/utilities/tuple/tuple.tuple/PR38601.pass.cpp
The file was modifiedlibcxx/test/std/utilities/utility/utility.intcmp/intcmp.cmp_greater/cmp_greater.pass.cpp
The file was modifiedlibcxx/test/std/utilities/utility/utility.intcmp/intcmp.cmp_equal/cmp_equal.pass.cpp
The file was modifiedlibcxx/test/std/utilities/utility/utility.intcmp/intcmp.cmp_greater_equal/cmp_greater_equal.pass.cpp
The file was modifiedlibcxx/test/std/utilities/utility/utility.intcmp/intcmp.cmp_less/cmp_less.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/refwrap/refwrap.const/deduct.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/refwrap/refwrap.const/type_conv_ctor2.pass.cpp
The file was modifiedlibcxx/test/std/utilities/utility/utility.intcmp/intcmp.in_range/in_range.pass.cpp
The file was modifiedlibcxx/test/std/utilities/utility/utility.intcmp/intcmp.cmp_not_equal/cmp_not_equal.pass.cpp
The file was modifiedlibcxx/test/std/utilities/utility/utility.intcmp/intcmp.cmp_less_equal/cmp_less_equal.pass.cpp
The file was modifiedlibcxx/test/std/utilities/utility/utility.intcmp/intcmp.fail.cpp
Commit 40163f1df8c60f987e8adc0cb78edb289f73b771 by spatel
[x86] add special-case lowering for usubsat for AVX512

This is a small extension of D112095 to avoid another regression
seen with D112085.
In this case, we allow the same conversion from usubsat to ALU
ops if the target supports vpternlog.

That pattern will get converted later in X86DAGToDAGISel::tryVPTERNLOG().
This seems better than putting a magic immediate constant directly in
this code to create the exact vpternlog that we need. It's possible that
there are other special-cases along these lines, so we should try to
keep all of the vpternlog magic in one place.

Differential Revision: https://reviews.llvm.org/D112138
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/psubus.ll
Commit 676d091c630c6a4d19a865a74260397ea661e5c3 by clementval
Revert "[fir] Add Character helper"

This reverts commit 02d7089c239075a5c2e148087d2824d253fc3d5f.
The file was removedflang/unittests/Optimizer/Builder/CharacterTest.cpp
The file was modifiedflang/include/flang/Optimizer/Builder/FIRBuilder.h
The file was modifiedflang/lib/Optimizer/Builder/CMakeLists.txt
The file was modifiedflang/lib/Optimizer/Builder/FIRBuilder.cpp
The file was modifiedflang/unittests/Optimizer/Builder/FIRBuilderTest.cpp
The file was modifiedflang/unittests/Optimizer/CMakeLists.txt
The file was modifiedflang/include/flang/Optimizer/Dialect/FIRType.h
The file was removedflang/lib/Optimizer/Builder/Character.cpp
The file was removedflang/include/flang/Optimizer/Builder/Character.h
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROpsSupport.h
Commit 8e4ae603d6ec7658df86302d122fb24968524164 by nikita.ppv
[Tests] Add tests for non-speculatable ephemeral values

The loads in these examples are currently not considered ephemeral
because they are not speculatable.
The file was modifiedllvm/test/Transforms/Inline/ephemeral.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/unprofitable-pr.ll
Commit ff5050a3a4f2965aaddfce2f6b182476c11d78f3 by Louis Dionne
[libc++abi] Guard include of <unistd.h> behind __has_include

This doesn't change anything on platforms that have <unistd.h>, but
it will allow this file to compile on platforms that do not.
The file was modifiedlibcxxabi/src/cxa_guard_impl.h
Commit 070a2ddcb6657f1b497b8003384bae31e27e497d by Louis Dionne
[libunwind] Revert "Use the from-scratch testing configuration by default"

This reverts commit 5a8ad80b6fa5cbad58b78384f534b78fca863e7f, which broke
the Bootstrapping build. I'm reverting until we've fixed the issue.

Differential Revision: https://reviews.llvm.org/D112082
The file was modifiedlibunwind/CMakeLists.txt
Commit 3cea2505fd8d99a9ba0cb625aecfe28a47c4e3f8 by Louis Dionne
[runtimes] Rename CI job from "Runtimes build" to "Bootstrapping build"
The file was modifiedlibcxx/utils/ci/run-buildbot
The file was modifiedlibcxx/utils/ci/buildkite-pipeline.yml
Commit f3671de5500ff1f8210419226a9603a7d83b1a31 by blangmuir
Revert "[ORC-RT] Configure the ORC runtime for more architectures and platforms"

Broke on aarch64-linux. Reverting while I investigate.

This reverts commit 5692ed0cce8c9506eef40ffe6ca2d9629956c51c.
The file was modifiedcompiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
The file was modifiedcompiler-rt/lib/orc/macho_tlv.x86-64.S
The file was modifiedcompiler-rt/cmake/config-ix.cmake
The file was modifiedcompiler-rt/lib/orc/CMakeLists.txt
The file was modifiedcompiler-rt/lib/orc/simple_packed_serialization.h
The file was modifiedcompiler-rt/lib/orc/elfnix_tls.x86-64.S