SuccessChanges

Summary

  1. [libc++] Update all the pre-defined iterator types for C++20 (details)
  2. [test] Fix addr-label.ll after D99707 (details)
  3. [MCA][NFCI] Minor changes to InstrBuilder and Instruction. (details)
  4. [test] Properly match parameter/argument ABI attributes (details)
  5. [libc++] [test] Fix a few tests for 32-bit x86 (details)
  6. Re-commit [clang] Add support for the "abstract" contextual keyword of MSVC (details)
  7. [OpaquePtr] Clean up some uses of Type::getPointerElementType() (details)
  8. [MLIR] Specify namespace for standard dialect using cppNamespace field (details)
  9. [libcxx][nfc] moves std `advance`, `next`, and `prev` into their headers (details)
  10. [gn build] make libunwind build on macOS (details)
  11. [PowerPC] Fix x86 vector intrinsics wrapper compilation under C++ (details)
  12. [MLIR] Add dialect prefix to all operations from Math (details)
  13. [LV] Try to sink users recursively for first-order recurrences. (details)
Commit 41bdf64d3e94f56870b07bed579ff2a54f0f1ca6 by Louis Dionne
[libc++] Update all the pre-defined iterator types for C++20

Make sure we provide the correct It::difference_type member and update
the tests and synopses to be accurate.

Supersedes D102657 and D103101 (thanks to the original authors).

Differential Revision: https://reviews.llvm.org/D103273
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostream.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/predef.iterators/insert.iterators/insert.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp
The file was modifiedlibcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/predef.iterators/insert.iterators/insert.iterator/types.pass.cpp
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostream.iterator/types.pass.cpp
The file was addedlibcxx/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.cons/default.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/types.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp
The file was modifiedlibcxx/include/memory
The file was modifiedlibcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp
The file was addedlibcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.cons/default.pass.cpp
The file was addedlibcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/default.pass.cpp
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/types.pass.cpp
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iterator/types.pass.cpp
The file was modifiedlibcxx/include/__memory/raw_storage_iterator.h
The file was addedlibcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/ostreambuf.iter.cons/default.pass.cpp
The file was modifiedlibcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iterator/types.pass.cpp
The file was addedlibcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.cons/default.pass.cpp
Commit a610df533379036b2b305350be244677e3702bca by aeubanks
[test] Fix addr-label.ll after D99707

Needs REQUIRES.
The file was modifiedllvm/test/CodeGen/Generic/addr-label.ll
Commit 9853d0db1e01691562003914f1e803ab0d3a15b2 by andrea.dibiagio
[MCA][NFCI] Minor changes to InstrBuilder and Instruction.

This is based on the assumption that most simulated instructions don't define
more than one or two registers. This is true for example on x86, where
most instruction definitions don't declare more than one register write.

The default code region size has been increased from 8 to 16. This is based on
the assumption that, for small microbenchmarks, the typical code snippet size is
often less than 16 instructions.

mca::Instruction now uses bitfields to pack flags.
No functional change intended.
The file was modifiedllvm/include/llvm/MCA/InstrBuilder.h
The file was modifiedllvm/lib/MCA/CodeEmitter.cpp
The file was modifiedllvm/include/llvm/MCA/Instruction.h
The file was modifiedllvm/tools/llvm-mca/CodeRegion.h
The file was modifiedllvm/lib/MCA/Context.cpp
Commit d350dd8ba26fa6a6199f328f1026f1aca5f7f095 by aeubanks
[test] Properly match parameter/argument ABI attributes

These were found with D103412.
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/fp80.ll
The file was modifiedllvm/test/Transforms/Attributor/readattrs.ll
The file was modifiedllvm/test/Transforms/OpenMP/gpu_state_machine_function_ptr_replacement.ll
The file was modifiedllvm/test/Transforms/OpenMP/icv_tracking.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/test/Other/lint.ll
The file was modifiedllvm/test/Transforms/DeadArgElim/byref.ll
The file was modifiedllvm/test/Transforms/TailCallElim/basic.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/X86/pr46943.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
Commit 73cdc7599bf053c3e22ce6bb15a4266f66bd5e69 by Louis Dionne
[libc++] [test] Fix a few tests for 32-bit x86

Fixes bug https://llvm.org/PR48939.

Differential Revision: https://reviews.llvm.org/D102359
The file was modifiedlibcxx/test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp
The file was modifiedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp
The file was modifiedlibcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
Commit 116179c2ee5213f2ae8f07a400ac98f0c995b3d3 by hans
Re-commit [clang] Add support for the "abstract" contextual keyword of MSVC

https://docs.microsoft.com/en-us/cpp/extensions/abstract-cpp-component-extensions?view=msvc-160
Note: like the already supported "sealed" keyword, the "abstract"
keyword is supported by MSVC by default.

This re-commits 818338add77411f5e9713247ea66142f332ef350 with added
initialization of Parser::Ident_abstract.

Differential revision: https://reviews.llvm.org/D102517
The file was modifiedclang/lib/Parse/ParseDeclCXX.cpp
The file was modifiedclang/lib/Parse/Parser.cpp
The file was modifiedclang/include/clang/Sema/DeclSpec.h
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/lib/Sema/DeclSpec.cpp
The file was modifiedclang/include/clang/Parse/Parser.h
The file was modifiedclang/test/SemaCXX/MicrosoftExtensions.cpp
Commit 2c3afa32377693514e400aee10f27b691887b4cf by aeubanks
[OpaquePtr] Clean up some uses of Type::getPointerElementType()

These depend on pointee types.
The file was modifiedllvm/lib/IR/ConstantFold.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
The file was modifiedllvm/lib/CodeGen/SafeStack.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
The file was modifiedllvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
Commit e4034881c3537d914b3208ddcf8200fb437073c8 by arjunpitchanathan
[MLIR] Specify namespace for standard dialect using cppNamespace field

The `::mlir` namespace for operations from standard is currently
defined by enclosing the header file generated from the ODS in
`Ops.td` in a namespace in `Ops.h`. However, when referencing
operations from `Ops.td` in other TableGen files, this causes the
generated C++ code to refer to classes from the global namespace
instead of `::mlir`.

By defining the namespace through the `cppNamespace` field for
`StandardOps_Dialect` directly in `Ops.td` instead, the ODS
becomes reusable in other TableGen files through simple
inclusion.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D103234
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.h
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
Commit bf92bdad77a34770fe0541a750f9cd3a61f169a3 by cjdb
[libcxx][nfc] moves std `advance`, `next`, and `prev` into their headers

Differential Revision: https://reviews.llvm.org/D103329
The file was modifiedlibcxx/include/__iterator/advance.h
The file was modifiedlibcxx/include/__iterator/next.h
The file was modifiedlibcxx/include/__iterator/prev.h
The file was modifiedlibcxx/include/iterator
Commit 1279b79c9bb10c15baab08a629ebc535b442af3b by thakis
[gn build] make libunwind build on macOS
The file was modifiedllvm/utils/gn/secondary/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/libunwind/src/BUILD.gn
Commit c0b3071833a80121a5a7ca9ea54fd59a59806acc by fwage73
[PowerPC] Fix x86 vector intrinsics wrapper compilation under C++

Reviewed By: nemanjai

Differential Revision: https://reviews.llvm.org/D103386
The file was modifiedclang/test/CodeGen/ppc-xmmintrin.c
The file was modifiedclang/lib/Headers/ppc_wrappers/xmmintrin.h
Commit 73b759a33a9c2fccf72c31f7adb5038cc0eb621f by arjunpitchanathan
[MLIR] Add dialect prefix to all operations from Math

Prefix all operations from the ODS of the `Math` dialect with `Math_`
in order to avoid name clashes when including `MathOps.td` in other
TableGen files (e.g., for `FloatUnaryOp`, which also exists in
`Standard`).

Reviewed By: jpienaar, mehdi_amini

Differential Revision: https://reviews.llvm.org/D103248
The file was modifiedmlir/include/mlir/Dialect/Math/IR/MathOps.td
Commit aa00b1d76364fc558fa6f28e31bb33938e1ae6af by flo
[LV] Try to sink users recursively for first-order recurrences.

Update isFirstOrderRecurrence to  explore all uses of a recurrence phi
and check if we can sink them. If there are multiple users to sink, they
are all mapped to the previous instruction.

Fixes PR44286 (and another PR or two).

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D84951
The file was modifiedllvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
The file was modifiedllvm/include/llvm/Analysis/IVDescriptors.h
The file was modifiedllvm/lib/Analysis/IVDescriptors.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll