Changes

Summary

  1. [AMDGPU] gfx11 Image instructions (details)
  2. [PS5] Tweak dllexport test (details)
  3. [Scalarizer] Regenerate test checks (NFC) (details)
  4. [flang] Support BIND(C) variable scope check (details)
  5. [clangd] Minor fixes to ExtractVariableTests missed in D124486 (details)
  6. [Clang][Docs] Document the clang-offload-packager better (details)
  7. [MLIR][Math] Improve docs (NFC) (details)
  8. [Clang][Docs] Fix typo in offload packager reference (details)
  9. [X86] LowerMINMAX - split v4i64 types on AVX1 targets (Issue #55648) (details)
  10. [X86] Add test case for PR55648 (details)
  11. [InstCombine] add tests for icmp of sext i1; NFC (details)
  12. [InstCombine] fold icmp of sext bool based on limited range (details)
  13. [RISCV] Pre-commit tests for D126635. NFC (details)
  14. [RISCV] Fix a few corner case bugs in RISCVMergeBaseOffsetOpt::matchLargeOffset (details)
  15. [Clang] Extend -gen-reproducer flag (details)
  16. [InstrProf] Stop exporting lprofDirMode (details)
  17. [scudo] Ensure pointer is not null (details)
  18. [libc++] Removes __cpp_lib_monadic_optional. (details)
  19. [libc++][CI][AIX] change grouping() return value of std::moneypunct_byname for en_US.UTF-8 (details)
  20. [RISCV] Use two ADDIs to do some stack pointer adjustments. (details)
  21. [riscv] add test coverage for fractional lmul w/fixed length vectorization (details)
  22. [clang][Driver] Fix SIE builders (details)
  23. Fix windows build (details)
  24. [AMDGPU] Instruction Type Pipeline (details)
  25. [libc++][CI] fixed convert_thousands_sep_ru_RU for Russian in the libcxx/test/support/locale_helpers.h for AIX (details)
  26. [gn build] Port 2e61dfb1249e (details)
  27. [MLIR][Presburger] Simplex::computeOptimum: slightly simplify code (NFC) (details)
  28. [libc++][CI] fixed "LOCALE_fr_FR_UTF_8" for my_facet for AIX (details)
  29. Create specialization of -Wgnu-statement-expression for expressions found in macros. (details)
  30. [libc++][CI] AIX does not have alternative for time_put_byname (details)
  31. [DFSan] build-libc-list.py no longer provides a list of default files. (details)
Commit e8860bee283855b2e1ce7eefb085a86e9ae3262b by Joseph.Nash
[AMDGPU] gfx11 Image instructions

MC layer support for instructions in the MIMG encoding(Image
instructions).

Contributors:
Carl Ritson <carl.ritson@amd.com>

Patch 13/N for upstreaming of AMDGPU gfx11 architecture.

Depends on D125992

Reviewed By: rampitec, #amdgpu

Differential Revision: https://reviews.llvm.org/D126463
The file was modifiedllvm/lib/Target/AMDGPU/MIMGInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrFormats.td
The file was addedllvm/test/MC/AMDGPU/gfx11_asm_mimg_err.s
The file was addedllvm/test/MC/AMDGPU/gfx11_asm_mimg.s
The file was addedllvm/test/MC/Disassembler/AMDGPU/gfx11_mimg.txt
Commit 10555a82df22bf67a9c30165e952b44969b46b6f by paul.robinson
[PS5] Tweak dllexport test

Post-commit review pointed out that both PS4 and PS5 were using the
same -std argument, better to use different ones just in case.
The file was modifiedclang/test/SemaCXX/dllexport.cpp
Commit 1257315b20d5f2487c4445c129b7437d5f2debfd by npopov
[Scalarizer] Regenerate test checks (NFC)
The file was modifiedllvm/test/Transforms/Scalarizer/basic-inseltpoison.ll
The file was modifiedllvm/test/Transforms/Scalarizer/basic.ll
Commit f3d8335383672df3b3b950a082c2b11a80cbdb9d by qiaopeixin
[flang] Support BIND(C) variable scope check

As Fortran 2018 C819, a variable with the BIND attribute shall be declared
in the specification part of a module. Add the support for this check.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D126653
The file was addedflang/test/Semantics/resolve113.f90
The file was modifiedflang/lib/Semantics/check-declarations.cpp
Commit c797952d4f012275b2e23f5ffcab1f39eacd184d by davg
[clangd] Minor fixes to ExtractVariableTests missed in D124486
The file was modifiedclang-tools-extra/clangd/unittests/tweaks/ExtractVariableTests.cpp
Commit e22b02d9b4f8bb968628ac7cf2d9a42bf13e2898 by jhuber6
[Clang][Docs] Document the clang-offload-packager better

Summary:
This patch adds more in-depth documentation to the
clang-offload-packacker's binary format. This format is used to create
fat binaries and link them.
The file was modifiedclang/docs/ClangOffloadPackager.rst
Commit 850dbff708f1e371722306363231a3816179ad7b by l.chelini
[MLIR][Math] Improve docs (NFC)

Remove boilerplate examples and add a text at the dialect level to describe
what kind of operands the operations accept (i.e., scalar, tensor or vector).
Left a shorter sentence describing the input operands for each operation as
this redundancy is convenient when browsing the documentation using the
website.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D126648
The file was modifiedmlir/include/mlir/Dialect/Math/IR/MathBase.td
The file was modifiedmlir/include/mlir/Dialect/Math/IR/MathOps.td
Commit 259a9df963ca5f28f325ed6f6bfe5da639c78cbf by jhuber6
[Clang][Docs] Fix typo in offload packager reference
The file was modifiedclang/docs/ClangOffloadPackager.rst
Commit d5af6a38082b39ae520a328e44dc29ebcb036bb2 by llvm-dev
[X86] LowerMINMAX - split v4i64 types on AVX1 targets (Issue #55648)

Originally we tried to use default expansion for v4i64 types to make it easier to concatenate the results back together, but this can cause infinite loop issues with existing VSELECT splitting code in narrowExtractedVectorSelect if we have other uses of the VSELECT results (e.g. reduction patterns).

To fix the infinite loop, this patch always splits MIN/MAX v4i64 nodes during lowering and I've added a TODO for combineConcatVectorOps to investigate when we can cheaply concatenate VSELECT/BLENDV nodes together.

Fixes #55648 - regression test case will be added in a follow up.
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_ssat.ll
The file was modifiedllvm/test/CodeGen/X86/vector-pcmp.ll
The file was modifiedllvm/test/CodeGen/X86/horizontal-reduce-umin.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_usat.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-umin.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-packus.ll
The file was modifiedllvm/test/CodeGen/X86/vec_minmax_sint.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-smin.ll
The file was modifiedllvm/test/CodeGen/X86/horizontal-reduce-smin.ll
The file was modifiedllvm/test/CodeGen/X86/horizontal-reduce-smax.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-smax.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-umax.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-usat.ll
The file was modifiedllvm/test/CodeGen/X86/vselect-minmax.ll
The file was modifiedllvm/test/CodeGen/X86/vec_minmax_uint.ll
The file was modifiedllvm/test/CodeGen/X86/midpoint-int-vec-256.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-ssat.ll
The file was modifiedllvm/test/CodeGen/X86/horizontal-reduce-umax.ll
Commit a7317a5728edc67bac2cb6d774e649bba10eb533 by llvm-dev
[X86] Add test case for PR55648
The file was addedllvm/test/CodeGen/X86/pr55648.ll
Commit f3fe38448b8c41f828ed03dc704e8b918e3b773e by spatel
[InstCombine] add tests for icmp of sext i1; NFC

These are adapted from the zext tests added for D126171.
The file was modifiedllvm/test/Transforms/InstCombine/icmp-range.ll
Commit 2bf6123f22c65995dec60e02944b459424532d9b by spatel
[InstCombine] fold icmp of sext bool based on limited range

X <=u (sext i1 Y) --> (X == 0) | Y

https://alive2.llvm.org/ce/z/W_tZzo

This is the conjugate/sibling pattern suggested with D126171
for a sign-extended bool value.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp-range.ll
Commit 3b5456d5f0d1fbfcdf6f6a18e9adec5e42a560ee by craig.topper
[RISCV] Pre-commit tests for D126635. NFC
The file was modifiedllvm/test/CodeGen/RISCV/hoist-global-addr-base.ll
Commit 80c4cf6369459f90e103339fcb9f6767474f478b by craig.topper
[RISCV] Fix a few corner case bugs in RISCVMergeBaseOffsetOpt::matchLargeOffset

The immediate for LUI is stored as 20-bit unsigned value. We need
to sign extend if after shifting by 12 to match the instruction
behavior.

If we find an LUI+ADDI on RV64, it means the constant isn't a
simm32. If it was, we would have emitted LUI+ADDIW from constant
materialization. Make sure the constant is a simm32 before folding.
This appears to match gcc.

A future patch will add support for LUI+ADDIW on RV64.
The file was modifiedllvm/test/CodeGen/RISCV/hoist-global-addr-base.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
Commit 7d76d6095880f34914d85d876b260cc4a4ea640d by abrachet
[Clang] Extend -gen-reproducer flag

`-gen-reproducer` causes crash reproduction to be emitted
even when clang didn't crash, and now can optionally take an
argument of never, on-crash (default), on-error and always.

Differential revision: https://reviews.llvm.org/D120201
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedclang/tools/driver/driver.cpp
The file was modifiedclang/test/Driver/crash-report-crashfile.m
The file was addedclang/test/Driver/emit-reproducer.c
The file was modifiedclang/include/clang/Driver/Driver.h
Commit 35a032eaf429abd2b9785b2d989f5a42c89bc6a8 by abrachet
[InstrProf] Stop exporting lprofDirMode

This symbol should not be exposed and doesn't need to be.

Differential revision: https://reviews.llvm.org/D126548
The file was modifiedcompiler-rt/lib/profile/InstrProfilingUtil.c
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
Commit 7df55e5ed735511aa2f7a078ce17e7f00c7e54db by abrachet
[scudo] Ensure pointer is not null

Differential revision: https://reviews.llvm.org/D126499
The file was modifiedcompiler-rt/lib/scudo/standalone/fuchsia.cpp
Commit 9e5c293492a779497227b9fff3ee4afae85fe2e4 by koraq
[libc++] Removes __cpp_lib_monadic_optional.

P0798R8 "Monadic operations for std::optional" has been implemented, so
this LWG issue can be adopted.

During review it was discovered another paper bumped the macro. The
part affecting optional of this paper is done, the variant isn't. The
status page is updated to reflect the current state.

Implements
- LWG 3621 Remove feature-test macro __cpp_lib_monadic_optional

Updates status of
- P2231R1 Missing constexpr in std::optional and std::variant

Reviewed By: #libc, philnik, ldionne

Differential Revision: https://reviews.llvm.org/D125813
The file was modifiedlibcxx/docs/Status/Cxx20.rst
The file was modifiedlibcxx/include/optional
The file was modifiedlibcxx/docs/Status/Cxx2bIssues.csv
The file was modifiedlibcxx/include/version
The file was modifiedlibcxx/docs/FeatureTestMacroTable.rst
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.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/optional.version.compile.pass.cpp
The file was modifiedlibcxx/docs/Status/Cxx20Papers.csv
Commit 9d1b260fae40379d1dfbc33255f0f1c3854c06d2 by zhijian
[libc++][CI][AIX] change grouping() return value of std::moneypunct_byname for en_US.UTF-8

Reviewers: David Tenty, Mark de Wever
Differential Revision: https://reviews.llvm.org/D126474
The file was modifiedlibcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp
Commit 1b2de79ff4b27f3dee342607ee5285d870be08cb by craig.topper
[RISCV] Use two ADDIs to do some stack pointer adjustments.

If the adjustment doesn't fit in 12 bits, try to break it into
two 12 bit values before falling back to movImm+add/sub.

This is based on a similar idea from isel.

Reviewed By: luismarques, reames

Differential Revision: https://reviews.llvm.org/D126392
The file was modifiedllvm/lib/Target/RISCV/RISCVFrameLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
The file was modifiedllvm/test/CodeGen/RISCV/stack-realignment.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir
Commit 33b1be5916669a74b3dc11b9f30f1ddb12270a2e by listmail
[riscv] add test coverage for fractional lmul w/fixed length vectorization
The file was modifiedllvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
Commit c4d9698f3c8db47ac7a0bee8bba6b9b8b91f7d58 by abrachet
[clang][Driver] Fix SIE builders
The file was modifiedclang/test/Driver/emit-reproducer.c
Commit a0ef52cc102504c4282dec7001664ee020396681 by abrachet
Fix windows build
The file was modifiedclang/test/Driver/emit-reproducer.c
Commit 2e61dfb1249e80a36a611c889f3ef86fa4cf3c85 by jeffrey.byrnes
[AMDGPU] Instruction Type Pipeline

This patch implements a DAG mutation which adds edges between different groups of instructions. The purpose is to try to generate code that conforms to a pipeline (groupA instructions occur before groupB, groupB -> groupC, and so on). Currently the pipeline order is hardcoded as VMEM->DSRead->MFMA->DSWrite, but the patch was designed to be easily extensible. Alias analysis is problematic for pipelining as memory instructions will usually not be able to be reordered w.r.t one another.

Differential Revision: https://reviews.llvm.org/D125997
The file was addedllvm/lib/Target/AMDGPU/AMDGPUMFMAIGroupLP.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modifiedllvm/lib/Target/AMDGPU/CMakeLists.txt
The file was removedllvm/lib/Target/AMDGPU/AMDGPUMFMAClustering.h
The file was removedllvm/test/CodeGen/AMDGPU/mfma-cluster-edges.mir
The file was removedllvm/test/CodeGen/AMDGPU/mfma-cluster.mir
The file was addedllvm/lib/Target/AMDGPU/AMDGPUMFMAIGroupLP.h
The file was removedllvm/lib/Target/AMDGPU/AMDGPUMFMAClustering.cpp
The file was addedllvm/test/CodeGen/AMDGPU/mfma-igrouplp-dag-mutation.mir
Commit 248287fe0a776ec50513afce41ee55d9d39a7ceb by zhijian
[libc++][CI] fixed convert_thousands_sep_ru_RU for Russian in the libcxx/test/support/locale_helpers.h for AIX

Reviewers: David Tenty, Mark de Wever

Differential Revision: https://reviews.llvm.org/D125923
The file was modifiedlibcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp
The file was modifiedlibcxx/test/support/locale_helpers.h
Commit 3bdcf3bfc17d429b41d519cef122ede9fb48a728 by llvmgnsyncbot
[gn build] Port 2e61dfb1249e
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
Commit 18a06d4f3a7474d062d1fe7d405813ed2e40b4fc by arjunpitchanathan
[MLIR][Presburger] Simplex::computeOptimum: slightly simplify code (NFC)
The file was modifiedmlir/lib/Analysis/Presburger/Simplex.cpp
Commit fa958c3a94d3469ee24a9e646629251e8cd90efd by zhijian
[libc++][CI] fixed "LOCALE_fr_FR_UTF_8" for my_facet for AIX

SUMMARY:

fixed "LOCALE_fr_FR_UTF_8" for my_facet for AIX

Reviewers: David Tenty, Mark de Wever

Differential Revision: https://reviews.llvm.org/D125927
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
Commit 7689c7fc9e08cc430daca3714bcffdd00fd538bd by michael
Create specialization of -Wgnu-statement-expression for expressions found in macros.

-Wgnu-statement-expression currently warns for both direct source uses of statement expressions but also macro expansions; since they may be used by macros to avoid multiple evaluation of macro arguments, engineers might want to suppress warnings when statement expressions are expanded from macros but see them if introduced directly in source code.

Differential Revision: https://reviews.llvm.org/D126522
The file was modifiedclang/test/Sema/gnu-flags.c
The file was modifiedclang/lib/Parse/ParseExpr.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
Commit 44d5221adb414d0bd5c458be9f20a969ae4ac90d by zhijian
[libc++][CI] AIX does not have alternative for time_put_byname

Reviewers: David Tenty, Mark de Wever

Differential Revision: https://reviews.llvm.org/D126376
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
Commit 15d5db276c9ba0add984d07696f11a33079f42bc by browneee
[DFSan] build-libc-list.py no longer provides a list of default files.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D126430
The file was modifiedcompiler-rt/lib/dfsan/scripts/build-libc-list.py