SuccessChanges

Summary

  1. [RISCV] Add scalable vector fcmp ISel patterns (details)
  2. [libc++] Turn off auto-formatting of generated files. NFC. (details)
  3. [NFC][AMDGPU] Clarify memory model support for volatile (details)
  4. [mlir][ODS] Add a C++ abstraction for OpBuilders (details)
  5. [mlir][TypeDefGen] Add support for adding builders when generating a TypeDef (details)
  6. [mlir][IR][NFC] Move the definitions of Complex/Function/Integer/Opaque/TupleType to ODS (details)
  7. [ADT] Add makeIntrusiveRefCnt helper function (details)
Commit 37b41bd0879e8ed1a07a6fc401a2b56dcd6f124c by fraser
[RISCV] Add scalable vector fcmp ISel patterns

Original patch by @rogfer01.

All ordered comparisons except ONE are supported natively, and all
unordered comparisons except UNE are expanded into sequences involving
explicit NaN checks and mask arithmetic.

Additionally, we expand GT,OGT,GE,OGE to their swapped-operand versions, and
pattern-match those back to the "original", swapping operands once more. This
way we catch both operations and both "vf" and "fv" forms with fewer patterns.

Also add support for floating-point splat_vector, with an optimization for
splatting fpimm0.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Fraser Cormack <fraser@codeplay.com>

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D94242
The file was addedllvm/test/CodeGen/RISCV/rvv/vsplats-fp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was addedllvm/test/CodeGen/RISCV/rvv/setcc-fp-rv64.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
The file was addedllvm/test/CodeGen/RISCV/rvv/setcc-fp-rv32.ll
Commit 30a7d430e869bb0d8c61ef9999a04f56e4dd2377 by marek.kurdej
[libc++] Turn off auto-formatting of generated files. NFC.

This adds `// clang-format off` in the auto-generated file to avoid lint warnings.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D94410
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/span.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/compare.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/latch.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/istream.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/locale.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/thread.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp
The file was modifiedlibcxx/utils/generate_feature_test_macro_components.py
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/limits.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp
Commit 72f1f084670ed66362ecb7c4079ee372665ce842 by Tony.Tye
[NFC][AMDGPU] Clarify memory model support for volatile

Reorder the AMDGPUUage description of the memory model code sequences
for volatile so clear that it applies independent of the nontemporal
setting.

Differential Revision: https://reviews.llvm.org/D94358
The file was modifiedllvm/docs/AMDGPUUsage.rst
Commit 207417730134931c7d5bf82e0b16c7757ad05e05 by riddleriver
[mlir][ODS] Add a C++ abstraction for OpBuilders

This removes the need for OpDefinitionsGen to use raw tablegen API, and will also
simplify adding builders to TypeDefs as well.

Differential Revision: https://reviews.llvm.org/D94273
The file was addedmlir/lib/TableGen/Builder.cpp
The file was modifiedmlir/lib/TableGen/CMakeLists.txt
The file was addedmlir/include/mlir/TableGen/Builder.h
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/include/mlir/TableGen/Operator.h
The file was modifiedmlir/lib/TableGen/Operator.cpp
Commit 948be58258dd81d56b1057657193f7dcf6dfa9bd by riddleriver
[mlir][TypeDefGen] Add support for adding builders when generating a TypeDef

This allows for specifying additional get/getChecked methods that should be generated on the type, and acts similarly to how OpBuilders work. TypeBuilders have two additional components though:
* InferredContextParam
  - Bit indicating that the context parameter of a get method is inferred from one of the builder parameters
* checkedBody
  - A code block representing the body of the equivalent getChecked method.

Differential Revision: https://reviews.llvm.org/D94274
The file was modifiedmlir/docs/OpDefinitions.md
The file was modifiedmlir/include/mlir/Dialect/ArmSVE/ArmSVE.td
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/test/lib/Dialect/Test/TestTypeDefs.td
The file was modifiedmlir/test/lib/Dialect/Test/TestTypes.cpp
The file was modifiedmlir/lib/TableGen/TypeDef.cpp
The file was modifiedmlir/test/mlir-tblgen/typedefs.td
The file was modifiedmlir/tools/mlir-tblgen/TypeDefGen.cpp
The file was modifiedmlir/include/mlir/TableGen/TypeDef.h
Commit d79642b3db1d74524f41d37f78385950158787a4 by riddleriver
[mlir][IR][NFC] Move the definitions of Complex/Function/Integer/Opaque/TupleType to ODS

The type tablegen backend now has enough support to represent these types well enough, so we can now move them to be declaratively defined.

Differential Revision: https://reviews.llvm.org/D94275
The file was modifiedmlir/lib/IR/BuiltinTypes.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.h
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/lib/IR/TypeDetail.h
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.td
Commit d3ff24cbf87224b23a0c99c74ed50744711909b2 by n.james93
[ADT] Add makeIntrusiveRefCnt helper function

Works like std::make_unique but for IntrusiveRefCntPtr objects.
See https://lists.llvm.org/pipermail/llvm-dev/2021-January/147729.html

Reviewed By: dblaikie, MaskRay

Differential Revision: https://reviews.llvm.org/D94440
The file was modifiedllvm/unittests/ADT/IntrusiveRefCntPtrTest.cpp
The file was modifiedllvm/include/llvm/ADT/IntrusiveRefCntPtr.h