SuccessChanges

Summary

  1. [Hexagon] Masked and unmasked load to same base -> load and two selects (details)
  2. Update shebang for clang-format-diff script to python3. (details)
  3. Revert "[libcxx][iterator] adds `std::indirectly_readable` and `std::indirectly_writable`" (details)
  4. AArch64: expand G_DIVREM operations in GlobalISel (details)
  5. AArch64: support mixed-size fp <-> int conversions in GlobalISel. (details)
  6. Revert "[Hexagon] Masked and unmasked load to same base -> load and two selects" (details)
  7. [OpenCL] Add missing C++ legacy atomics with generic (details)
Commit 96dc8d7e7dee68592e56d69184b92fcb021cdb9c by jcoplin
[Hexagon] Masked and unmasked load to same base -> load and two selects
The file was addedllvm/test/CodeGen/Hexagon/vcombine_zero_diff_ptrs.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonVectorCombine.cpp (diff)
Commit 71e80386d0fe7f7a2f997271ce5d492d5e8686c2 by paulatoth
Update shebang for clang-format-diff script to python3.

Different distributions have different strategies migrating the `python` symlink. Debian and its derivatives provide `python-is-python2` and `python-is-python3`. If neither is installed, the user gets no `/usr/bin/python`. The clang-format-diff script and consequently `arc diff` can thus fail with a python not found error.  Since we require python greater than 3.6 as part of llvm prerequisites (https://llvm.org/docs/GettingStarted.html#software), let's go ahead and update this shebang.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D100968
The file was modifiedclang/tools/clang-format/clang-format-diff.py (diff)
Commit a9f11cc0d96519cbf6b2a978334bc5bc81875819 by dave
Revert "[libcxx][iterator] adds `std::indirectly_readable` and `std::indirectly_writable`"

This reverts commit 04733181b5136e2b3df2b37c6bdd9e25f8afecd0 which was
failing for multiple people.
The file was removedlibcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iterator/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/__iterator/incrementable_traits.h (diff)
The file was removedlibcxx/test/std/input.output/filesystems/class.directory_iterator/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.writable/indirectly_writable.compile.pass.cpp
The file was removedlibcxx/test/std/containers/sequences/list/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/__iterator/iter_move.h (diff)
The file was removedlibcxx/test/std/utilities/optional/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/associative/set/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/iterators/stream.iterators/ostream.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/__iterator/iterator_traits.h (diff)
The file was removedlibcxx/test/std/containers/associative/multimap/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/__iterator/concepts.h (diff)
The file was removedlibcxx/test/std/iterators/stream.iterators/istream.iterator/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/sequences/vector/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/__iterator/readable_traits.h (diff)
The file was removedlibcxx/test/std/re/re.iter/re.tokiter/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/support/read_write.h
The file was removedlibcxx/test/std/containers/associative/map/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/associative/multiset/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/sequences/vector.bool/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/utilities/memory/unique.ptr/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/sequences/array/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.map/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/sequences/deque/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/iterators/predef.iterators/insert.iterators/insert.iterator/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/iterators/stream.iterators/istreambuf.iterator/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp
The file was removedlibcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/iterator (diff)
The file was removedlibcxx/test/std/iterators/predef.iterators/reverse.iterators/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/containers/views/span.iterators/iterator_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/std/re/re.iter/re.regiter/iterator_concept_conformance.compile.pass.cpp
Commit ac1647cc805867df95b0c4d271ad20a353ba602c by Tim Northover
AArch64: expand G_DIVREM operations in GlobalISel

We don't have a specific instruction for these, so they should be expanded to
whatever separate division & multiplication is needed.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp (diff)
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-divrem.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir (diff)
Commit 2e72f6b5d898ceb4c18325dce55d1798256682ff by Tim Northover
AArch64: support mixed-size fp <-> int conversions in GlobalISel.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-fp-casts.mir (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrGISel.td (diff)
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp (diff)
Commit e8d0475472ea5f2f9b065322494093bdaa2f8c1b by kparzysz
Revert "[Hexagon] Masked and unmasked load to same base -> load and two selects"

This reverts commit 96dc8d7e7dee68592e56d69184b92fcb021cdb9c.

It breaks a few builds.
The file was modifiedllvm/lib/Target/Hexagon/HexagonVectorCombine.cpp (diff)
The file was removedllvm/test/CodeGen/Hexagon/vcombine_zero_diff_ptrs.ll
Commit 4138e7bd7692c27a4959191939bba899b4f240da by sven.vanhaastregt
[OpenCL] Add missing C++ legacy atomics with generic

https://reviews.llvm.org/D62335 added some C++ for OpenCL specific
builtins to opencl-c.h, but these were not mirrored to the TableGen
builtin functions yet.

The TableGen builtins machinery does not have dedicated version
handling for C++ for OpenCL at the moment: all builtin versioning is
tied to `LangOpts.OpenCLVersion` (i.e., the OpenCL C version).  As a
workaround, to add builtins that are only available in C++ for OpenCL,
we define a function extension guarded by the __cplusplus macro.

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

Fixes PR50041.
The file was modifiedclang/test/SemaOpenCL/fdeclare-opencl-builtins.cl (diff)
The file was modifiedclang/lib/Sema/OpenCLBuiltins.td (diff)