[all-commits] [llvm/llvm-project] 98ce2d: [mlir][sparse] cleanup ldx/idx/depth/at usage (#74...

Jon Roelofs via All-commits all-commits at lists.llvm.org
Wed Dec 6 15:18:16 PST 2023


  Branch: refs/heads/users/jroelofs/spr/main.builtinsarm64-build-__init_cpu_features_resolver-on-apple-platforms
  Home:   https://github.com/llvm/llvm-project
  Commit: 98ce2debc6ff3f6d31d7b63eb54e10e88a84ee78
      https://github.com/llvm/llvm-project/commit/98ce2debc6ff3f6d31d7b63eb54e10e88a84ee78
  Author: Aart Bik <39774503+aartbik at users.noreply.github.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp

  Log Message:
  -----------
  [mlir][sparse] cleanup ldx/idx/depth/at usage (#74654)

This adds a consistent usage with `at` for everything that refers to the
current loop nesting. This cleans up some redundant legacy code from
when we were still using topSort inside sparsifier code.


  Commit: 03c2f5d8bbcf31239a631d9343ac7f4b6b3094c1
      https://github.com/llvm/llvm-project/commit/03c2f5d8bbcf31239a631d9343ac7f4b6b3094c1
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    A mlir/test/Dialect/Linalg/vectorize-convolution-flatten.mlir

  Log Message:
  -----------
  [mlir][linalg][conv] Flatten the channel dimension when vectorizing (#71918)

The current vectorization of 1D depthwise convolutions in Linalg is
_sub-optimal_ for tensor with a low number of channel dimensions, e.g.:

```mlir
linalg.depthwise_conv_1d_nwc_wc
    {dilations = dense<1> : vector<1xi64>,
    strides = dense<1> : vector<1xi64>}
    ins(%input, %filter : tensor<1x8x3xi8>, tensor<1x3xi8>)
    outs(%output : tensor<1x8x3xi8>) -> tensor<1x8x3xi8>
```

That's due to the fact that ultimately (i.e. at LLVM level),
vectorization happens along the trailing dimension (i.e. the channel
dimension). In this case it leads to vectors with 3 elements (or worse,
if there's e.g. only 1 channel dimension). For comparison, a 128 bit
wide vector registers can hold 16 x i8.

Instead, this patch adds an option to flatten/collapse the channel
dimension into the width dimension of the input/filter/output using
`vector.shape_cast` operation:

```mlir
    %sc_input = vector.shape_cast %input : vector<1x8x3xi8> to vector<1x24xi8>
    %sc_output = vector.shape_cast %output : vector<1x8x3xi8> to vector<1x24xi8>
    %b_filter = vector.broadcast %filter : vector<3xi8> to vector<1x8x3xi8>
    %sc_filter = vector.shape_cast %b_filter : vector<1x8x3xi8> to vector<1x24xi8>
```

This new vectorization mode is implemented in `depthwiseConv` by
inserting `vector.shape_cast` Ops before and after 
`depthwiseConv1dSliceAsMulAcc` is invoked. It can be selected through
e.g. a transform dialect attribute:

```mlir
  transform.structured.vectorize_children_and_apply_patterns %conv {flatten_1d_depthwise_conv}
```

A forthcoming patch will implement a strategy to automatically switch
between the two implementations, depending on the shape of the input
tensors.

Co-authored by: Bradley Smith <bradley.smith at arm.com>


  Commit: fb62a18615d28694f1a16a3e23915190703a2e98
      https://github.com/llvm/llvm-project/commit/fb62a18615d28694f1a16a3e23915190703a2e98
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M mlir/docs/Dialects/ArmSME.md

  Log Message:
  -----------
  [mlir][ArmSME] Update docs (#74527)


  Commit: 6419fb51678ec8c648e311256ecc0498576b2066
      https://github.com/llvm/llvm-project/commit/6419fb51678ec8c648e311256ecc0498576b2066
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp

  Log Message:
  -----------
  [GISel] Don't print the opcode twice in LegalityQuery::print. (#74232)


  Commit: 78964457cf1bafe57a54629fafbd081452a9e528
      https://github.com/llvm/llvm-project/commit/78964457cf1bafe57a54629fafbd081452a9e528
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M llvm/lib/Transforms/Scalar/Reassociate.cpp
    M llvm/test/Transforms/Reassociate/add-like-or.ll

  Log Message:
  -----------
  [Reassociate] Use disjoint flag to convert Or to Add. (#72772)

We still have to keep the noCommonBitsSet call to handle multiple reassociations in one pass. We'll lose the flag on the first reassociation.


  Commit: 92fccea2e50030ac849313010e2d3914b953c6c6
      https://github.com/llvm/llvm-project/commit/92fccea2e50030ac849313010e2d3914b953c6c6
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M llvm/lib/Transforms/Scalar/Reassociate.cpp
    M llvm/test/Transforms/Reassociate/add-like-or.ll

  Log Message:
  -----------
  Revert "[Reassociate] Use disjoint flag to convert Or to Add. (#72772)"

This reverts commit 78964457cf1bafe57a54629fafbd081452a9e528.

Looks like I didn't rebase this correctly before commit


  Commit: 3b2f8795093ce64209bd648231ecda85df28748a
      https://github.com/llvm/llvm-project/commit/3b2f8795093ce64209bd648231ecda85df28748a
  Author: Lang Hames <lhames at gmail.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
    A llvm/test/ExecutionEngine/JITLink/Generic/Inputs/main-ret-0.ll
    A llvm/test/ExecutionEngine/JITLink/Generic/error-object-passed-as-archive.test

  Log Message:
  -----------
  [ORC] Use dyn_cast to check input type in StaticLibraryDefinitionGenerator.

Replaces an llvm::cast that assumed that all Binary instances were either
Archive or MachOUniversalBinary instances with a dyn_cast. The cast was
triggering an assert in StaticLibraryDefinitionGenerator::Load if that method
was given a path or MemoryBuffer containing a relocatable object file.
Switching to dyn_cast causes the operation to error out with a bad-format
error as expected.

Fixes rdar://119262300


  Commit: c5a1732cf31c81ee9f12264b40eee60d49fd05dd
      https://github.com/llvm/llvm-project/commit/c5a1732cf31c81ee9f12264b40eee60d49fd05dd
  Author: Aart Bik <39774503+aartbik at users.noreply.github.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/CodegenEnv.h
    M mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp

  Log Message:
  -----------
  [mlir][sparse] use "current" and "curr" consistently (#74656)

Removes at in favor of curr; also makes method delegates consistent


  Commit: 4db54e659763401dbf2e5b1f90e9a3391e311e50
      https://github.com/llvm/llvm-project/commit/4db54e659763401dbf2e5b1f90e9a3391e311e50
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGDebugInfo.h
    M clang/test/CodeGenCXX/debug-info-class.cpp
    R clang/test/CodeGenCXX/debug-info-static-inline-member.cpp
    M clang/test/CodeGenCXX/debug-info-static-member.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
    M lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py

  Log Message:
  -----------
  [clang][DebugInfo] Revert "emit definitions for constant-initialized static data-members" (#74580)

This commit reverts the changes in
https://github.com/llvm/llvm-project/pull/71780 and all of its follow-up
patches.

We got reports of the `.debug_names/.debug_gnu_pubnames/gdb_index/etc.`
sections growing by a non-trivial amount for some large projects. While
GCC emits definitions for static data member constants into the Names
index, they do so *only* for explicitly `constexpr` members. We were
indexing *all* constant-initialized const-static members, which is
likely where the significant size difference comes from. However, only
emitting explicitly `constexpr` variables into the index doesn't seem
like a good way forward, since from clang's perspective `const`-static
integrals are `constexpr` too, and that shouldn't be any different in
the debug-info component. Also, as new code moves to `constexpr` instead
of `const` static for constants, such solution would just delay the
growth of the Names index.

To prevent the size regression we revert to not emitting definitions for
static data-members that have no location.

To support access to such constants from LLDB we'll most likely have to
have to make LLDB find the constants by looking at the containing class
first.


  Commit: 2a1bcf1f388c3a2924c5429c3f55be054f479950
      https://github.com/llvm/llvm-project/commit/2a1bcf1f388c3a2924c5429c3f55be054f479950
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M openmp/libomptarget/CMakeLists.txt
    M openmp/libomptarget/src/CMakeLists.txt
    M openmp/libomptarget/src/PluginManager.cpp

  Log Message:
  -----------
  [OpenMP] Allow to specify what plugins to look for (#74538)

By default we now only look for the plugins we build, but the user can
overwrite that with `LIBOMPTARGET_PLUGINS_TO_LOAD="cuda,amdgpu,x86_64"`


  Commit: 533a0856bff75c395deacadf98df8b83c72d55e4
      https://github.com/llvm/llvm-project/commit/533a0856bff75c395deacadf98df8b83c72d55e4
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M llvm/lib/Transforms/Scalar/Reassociate.cpp
    M llvm/test/Transforms/Reassociate/add-like-or.ll

  Log Message:
  -----------
  Recommit "[Reassociate] Use disjoint flag to convert Or to Add. (#72772)"

Original message:
We still have to keep the noCommonBitsSet call to handle multiple reassociations in one pass. We'll lose the flag on the first reassociation.


  Commit: a93cacf9b08f0780f2ae2832da10a9a841ae7d03
      https://github.com/llvm/llvm-project/commit/a93cacf9b08f0780f2ae2832da10a9a841ae7d03
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M clang/lib/Driver/Driver.cpp

  Log Message:
  -----------
  [clang driver] Remove a bit of redundant flang specific code [nfc]

getOptionVisibilityMask already returns options::FlangOption in FlangMode,
so this assignment is entirely pointless.


  Commit: 64454daab0c34d9f3a488979b6b7dfbe315fa9f8
      https://github.com/llvm/llvm-project/commit/64454daab0c34d9f3a488979b6b7dfbe315fa9f8
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M libcxx/docs/Hardening.rst

  Log Message:
  -----------
  [libcxx] reorganises the hardening documentation (#73159)

The reorganisation assists with identifying information that's relevant
to the reader by using sections, note/warning blocks, and highlighted
lists.

Some rewording was necessary to fit the new structure and some to
improve flow. Changes to the intention of the documentation have not
been made.

---------

Co-authored-by: Will Hawkins <whh8b at obs.cr>


  Commit: 71be8f3c23497e28c86f1135f564b16106d8d6fb
      https://github.com/llvm/llvm-project/commit/71be8f3c23497e28c86f1135f564b16106d8d6fb
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py

  Log Message:
  -----------
  [lldb] Un-xfail test after commit revert

These tests started passing after this PR landed:
https://github.com/llvm/llvm-project/pull/74580


  Commit: d552ce263839ea92ae6bc5d05cf5e20b711019d1
      https://github.com/llvm/llvm-project/commit/d552ce263839ea92ae6bc5d05cf5e20b711019d1
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M openmp/libomptarget/include/PluginManager.h
    M openmp/libomptarget/src/interface.cpp
    M openmp/libomptarget/src/rtl.cpp
    A openmp/libomptarget/test/Inputs/empty.c
    A openmp/libomptarget/test/offloading/bug60119.c

  Log Message:
  -----------
   [OpenMP][NFC] Remove `DelayedBinDesc` (#74360)

Remove `DelayedBinDesc` as it is not necessary since
https://github.com/llvm/llvm-project/commit/bc4e0c048aa3cd940b0cea787014c7e8680e5040.
See
https://github.com/llvm/llvm-project/pull/74360#issuecomment-1843603736
for details.


  Commit: dcbb1968a8215e79bfc2bdc48a88d2596b7f5995
      https://github.com/llvm/llvm-project/commit/dcbb1968a8215e79bfc2bdc48a88d2596b7f5995
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M openmp/libomptarget/test/offloading/shared_lib_fp_mapping.c

  Log Message:
  -----------
  [OpenMP][FIX] Use unique library name to avoid clashes with other tests

We probably should use a temporary name, but having stable names helps
debugging.


  Commit: ab212fc94c3da7273442db6bbdad4d5a94f0a515
      https://github.com/llvm/llvm-project/commit/ab212fc94c3da7273442db6bbdad4d5a94f0a515
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M flang/test/Lower/OpenACC/acc-set.f90
    M flang/test/Lower/OpenACC/acc-update.f90
    M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
    M mlir/test/Dialect/OpenACC/ops.mlir

  Log Message:
  -----------
  [mlir][openacc] Switch * to `star` which is more MLIR friendly (#74662)

`*` is not friendly to the MLIR attribute parser and will fail to be
parsed. Switch the `*` enum representation to `star`.


  Commit: 0ace6ee73a6b7047d16f23170c67cdf358f34c34
      https://github.com/llvm/llvm-project/commit/0ace6ee73a6b7047d16f23170c67cdf358f34c34
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/common/src/GlobalHandler.cpp
    M openmp/libomptarget/plugins-nextgen/common/src/PluginInterface.cpp
    M openmp/libomptarget/test/offloading/barrier_fence.c
    A openmp/libomptarget/test/offloading/bug74582.c

  Log Message:
  -----------
  [OpenMP][FIX] Ensure we do not read outside the device image (#74669)

Before we expected all symbols in the device image to be backed up with
data that we could read. However, uninitialized values are not. We now
check for this case and avoid reading random memory.

This also replaces the correct readGlobalFromImage call with a
isSymbolInImage check after
https://github.com/llvm/llvm-project/pull/74550 picked the wrong one.

Fixes: https://github.com/llvm/llvm-project/issues/74582


  Commit: 2ba9720a76491709288467f3d51530cc6d031540
      https://github.com/llvm/llvm-project/commit/2ba9720a76491709288467f3d51530cc6d031540
  Author: Finn Plummer <50529406+inbelic at users.noreply.github.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBitOps.td
    M mlir/lib/Dialect/SPIRV/IR/SPIRVCanonicalization.cpp
    M mlir/test/Dialect/SPIRV/Transforms/canonicalize.mlir

  Log Message:
  -----------
  [mlir][spirv] Add folding for SPIR-V Shifting ops (#74192)

Add missing constant propogation folder for LeftShiftLogical,
RightShift[Logical|Arithmetic].

Implement additional folding when Shift value is 0.

This helps for readability of lowered code into SPIR-V.

Part of work for #70704


  Commit: 62b11e1b1640edfdc9e3f3f2d62c666622c1daee
      https://github.com/llvm/llvm-project/commit/62b11e1b1640edfdc9e3f3f2d62c666622c1daee
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M openmp/libomptarget/src/PluginManager.cpp

  Log Message:
  -----------
  [OpenMP][NFC] Actually use a string in the error message


  Commit: 0cd308aebcde8af4d8b11084a82c8e64b6a828c6
      https://github.com/llvm/llvm-project/commit/0cd308aebcde8af4d8b11084a82c8e64b6a828c6
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaLambda.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/SemaHLSL/BuiltIns/vector-errors.hlsl

  Log Message:
  -----------
  [Clang][Sema] Don't say "is declared here" for invalid template locations

If a template is defined via an external AST source, it won't have a
location. When we emit warnings about misusing such templates we
shouldn't emit a "template is declared here" warning with no location,
as that's just confusing.

Reviewers: llvm-beanz, erichkeane, AaronBallman

Reviewed By: erichkeane, AaronBallman

Pull Request: https://github.com/llvm/llvm-project/pull/71264


  Commit: c1d65d5af79fdb00e9996a7795b89bf3884282f0
      https://github.com/llvm/llvm-project/commit/c1d65d5af79fdb00e9996a7795b89bf3884282f0
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Sema/Sema.h
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGDebugInfo.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaLambda.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/CodeGenCXX/debug-info-class.cpp
    R clang/test/CodeGenCXX/debug-info-static-inline-member.cpp
    M clang/test/CodeGenCXX/debug-info-static-member.cpp
    M clang/test/SemaHLSL/BuiltIns/vector-errors.hlsl
    M flang/test/Lower/OpenACC/acc-set.f90
    M flang/test/Lower/OpenACC/acc-update.f90
    M libcxx/docs/Hardening.rst
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
    M lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py
    M llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
    M llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
    M llvm/lib/Transforms/Scalar/Reassociate.cpp
    A llvm/test/ExecutionEngine/JITLink/Generic/Inputs/main-ret-0.ll
    A llvm/test/ExecutionEngine/JITLink/Generic/error-object-passed-as-archive.test
    M llvm/test/Transforms/Reassociate/add-like-or.ll
    M mlir/docs/Dialects/ArmSME.md
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBitOps.td
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVCanonicalization.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/CodegenEnv.h
    M mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
    A mlir/test/Dialect/Linalg/vectorize-convolution-flatten.mlir
    M mlir/test/Dialect/OpenACC/ops.mlir
    M mlir/test/Dialect/SPIRV/Transforms/canonicalize.mlir
    M openmp/libomptarget/CMakeLists.txt
    M openmp/libomptarget/include/PluginManager.h
    M openmp/libomptarget/plugins-nextgen/common/src/GlobalHandler.cpp
    M openmp/libomptarget/plugins-nextgen/common/src/PluginInterface.cpp
    M openmp/libomptarget/src/CMakeLists.txt
    M openmp/libomptarget/src/PluginManager.cpp
    M openmp/libomptarget/src/interface.cpp
    M openmp/libomptarget/src/rtl.cpp
    A openmp/libomptarget/test/Inputs/empty.c
    M openmp/libomptarget/test/offloading/barrier_fence.c
    A openmp/libomptarget/test/offloading/bug60119.c
    A openmp/libomptarget/test/offloading/bug74582.c
    M openmp/libomptarget/test/offloading/shared_lib_fp_mapping.c

  Log Message:
  -----------
  [𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]


Compare: https://github.com/llvm/llvm-project/compare/2899456701a1...c1d65d5af79f


More information about the All-commits mailing list