SuccessChanges

Summary

  1. [NFC] MemoryDependenceAnalysis cleanup. (details)
  2. [AsmParser][SystemZ][z/OS] Introducing HLASM Parser support to AsmParser - Part 2 (details)
  3. [libc++] Avoid `result_type` and `unary/binary_function` in <valarray>. (details)
  4. Remove "Rewrite Symbols" from codegen pipeline (details)
  5. [libc++] Update all the pre-defined iterator types for C++20 (details)
  6. [test] Fix addr-label.ll after D99707 (details)
  7. [MCA][NFCI] Minor changes to InstrBuilder and Instruction. (details)
  8. [test] Properly match parameter/argument ABI attributes (details)
  9. [libc++] [test] Fix a few tests for 32-bit x86 (details)
  10. Re-commit [clang] Add support for the "abstract" contextual keyword of MSVC (details)
  11. [OpaquePtr] Clean up some uses of Type::getPointerElementType() (details)
  12. [MLIR] Specify namespace for standard dialect using cppNamespace field (details)
  13. [libcxx][nfc] moves std `advance`, `next`, and `prev` into their headers (details)
  14. [gn build] make libunwind build on macOS (details)
  15. [PowerPC] Fix x86 vector intrinsics wrapper compilation under C++ (details)
  16. [MLIR] Add dialect prefix to all operations from Math (details)
  17. [LV] Try to sink users recursively for first-order recurrences. (details)
Commit e853d3b274472549a6cc4cf255e923487707216c by daniil.fukalov
[NFC] MemoryDependenceAnalysis cleanup.

1. Removed redundant includes,
2. Removed never defined and used `releaseMemory()`.
3. Fixed member functions names first letter case.
4. Renamed duplicate (in nested struct `NonLocalPointerInfo`) name
   `NonLocalDeps` to `NonLocalDepsMap`.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D102358
The file was modifiedllvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
The file was modifiedllvm/lib/Analysis/MemoryDependenceAnalysis.cpp
The file was modifiedllvm/include/llvm/Transforms/Scalar/GVN.h
Commit b8dcd920ec286d70976521dbc4692dc5f24dabe8 by anirudh_prasad
[AsmParser][SystemZ][z/OS] Introducing HLASM Parser support to AsmParser - Part 2

- This patch is the second (and hopefully final) part of providing HLASM syntax for inline asm statements for z/OS to LLVM (continuing on from https://reviews.llvm.org/D98276)
- This second part deals with providing label support
- As mentioned in https://reviews.llvm.org/D98276, if the first token is not a space we process the first token as a label, and the remaining tokens as a possible machine instruction
- To achieve this, a new `parseAsHLASMLabel` function is introduced. This function processes the first token, validates whether it is an "acceptable" label according to HLASM standards, and then emits it
- After handling and emitting the label, call the `parseAsMachineInstruction` instruction to process the remaining tokens as a machine instruction.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D103320
The file was modifiedllvm/lib/MC/MCParser/AsmParser.cpp
Commit d39f5c3cb97e769f960681b3132724e16b756e80 by arthur.j.odwyer
[libc++] Avoid `result_type` and `unary/binary_function` in <valarray>.

Give each of the relevant functional operators a `__result_type`
instead, so that we can keep using those typedefs in <valarray>
even when the public binder typedefs are removed in C++20.

Differential Revision: https://reviews.llvm.org/D103371
The file was modifiedlibcxx/include/functional
The file was modifiedlibcxx/include/__functional_base
The file was modifiedlibcxx/include/valarray
Commit 8815ce03e8575cb27e951b5f5a11384421730e20 by aeubanks
Remove "Rewrite Symbols" from codegen pipeline

It breaks up the function pass manager in the codegen pipeline.

With empty parameters, it looks at the -mllvm flag -rewrite-map-file.
This is likely not in use.

Add a check that we only have one function pass manager in the codegen
pipeline.

Some tests relied on the fact that we had a module pass somewhere in the
codegen pipeline.

addr-label.ll crashes on ARM due to this change. This is because a
ARMConstantPoolConstant containing a BasicBlock to represent a
blockaddress may hold an invalid pointer to a BasicBlock if the
blockaddress is invalidated by its BasicBlock getting removed. In that
case all referencing blockaddresses are RAUW a constant int. Making
ARMConstantPoolConstant::CVal a WeakVH fixes the crash, but I'm not sure
that's the right fix. As a workaround, create a barrier right before
ISel so that IR optimizations can't happen while a
ARMConstantPoolConstant has been created.

Reviewed By: rnk, MaskRay, compnerd

Differential Revision: https://reviews.llvm.org/D99707
The file was modifiedllvm/test/CodeGen/ARM/O3-pipeline.ll
The file was modifiedllvm/lib/Target/ARM/ARMTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/llc-pipeline.ll
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/ARM/BUILD.gn
The file was modifiedllvm/test/CodeGen/X86/O0-pipeline.ll
The file was modifiedllvm/test/CodeGen/X86/select_meta.ll
The file was modifiedllvm/test/CodeGen/Generic/addr-label.ll
The file was modifiedllvm/test/CodeGen/X86/opt-pipeline.ll
The file was modifiedllvm/test/CodeGen/AArch64/O0-pipeline.ll
The file was modifiedllvm/test/Other/2010-05-06-Printer.ll
The file was modifiedllvm/test/CodeGen/AArch64/O3-pipeline.ll
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
The file was modifiedllvm/lib/Target/ARM/CMakeLists.txt
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/ostreambuf.iterator/types.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/iterator_concept_conformance.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/ostreambuf.iter.cons/default.pass.cpp
The file was modifiedlibcxx/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostream.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/types.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/predef.iterators/insert.iterators/insert.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 modifiedlibcxx/test/std/iterators/stream.iterators/ostream.iterator/types.pass.cpp
The file was modifiedlibcxx/include/__memory/raw_storage_iterator.h
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/iterators/stream.iterators/istream.iterator/types.pass.cpp
The file was modifiedlibcxx/include/iterator
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/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
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/front.insert.iterator/types.pass.cpp
The file was modifiedlibcxx/include/memory
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/Instruction.h
The file was modifiedllvm/tools/llvm-mca/CodeRegion.h
The file was modifiedllvm/include/llvm/MCA/InstrBuilder.h
The file was modifiedllvm/lib/MCA/Context.cpp
The file was modifiedllvm/lib/MCA/CodeEmitter.cpp
Commit d350dd8ba26fa6a6199f328f1026f1aca5f7f095 by aeubanks
[test] Properly match parameter/argument ABI attributes

These were found with D103412.
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/X86/pr46943.ll
The file was modifiedllvm/test/Transforms/Attributor/readattrs.ll
The file was modifiedllvm/test/Transforms/OpenMP/icv_tracking.ll
The file was modifiedllvm/test/Other/lint.ll
The file was modifiedllvm/test/Transforms/TailCallElim/basic.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll
The file was modifiedllvm/test/Transforms/DeadArgElim/byref.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/fp80.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
The file was modifiedllvm/test/Transforms/OpenMP/gpu_state_machine_function_ptr_replacement.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/gdb/gdb_pretty_printer_test.sh.cpp
The file was modifiedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.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/Sema/SemaDecl.cpp
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/DeclSpec.cpp
The file was modifiedclang/include/clang/Sema/DeclSpec.h
The file was modifiedclang/lib/Parse/Parser.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/lib/Parse/ParseDeclCXX.cpp
The file was modifiedclang/test/SemaCXX/MicrosoftExtensions.cpp
The file was modifiedclang/include/clang/Parse/Parser.h
Commit 2c3afa32377693514e400aee10f27b691887b4cf by aeubanks
[OpaquePtr] Clean up some uses of Type::getPointerElementType()

These depend on pointee types.
The file was modifiedllvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
The file was modifiedllvm/lib/IR/ConstantFold.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
The file was modifiedlibcxx/include/__iterator/next.h
The file was modifiedlibcxx/include/__iterator/prev.h
The file was modifiedlibcxx/include/__iterator/advance.h
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/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
The file was modifiedllvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Analysis/IVDescriptors.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
The file was modifiedllvm/include/llvm/Analysis/IVDescriptors.h