[all-commits] [llvm/llvm-project] 7dbc66: [flang][cuda] Convert data transfer between scalar...

Alexey Bataev via All-commits all-commits at lists.llvm.org
Mon Sep 30 13:18:16 PDT 2024


  Branch: refs/heads/users/alexey-bataev/spr/lvinitial-support-for-safe-distance-in-predicated-datawithevl-vectorization-mode
  Home:   https://github.com/llvm/llvm-project
  Commit: 7dbc664549c8d291534aa43751f5d8f3e53ddac8
      https://github.com/llvm/llvm-project/commit/7dbc664549c8d291534aa43751f5d8f3e53ddac8
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M flang/lib/Optimizer/Transforms/CufOpConversion.cpp
    M flang/test/Fir/CUDA/cuda-data-transfer.fir

  Log Message:
  -----------
  [flang][cuda] Convert data transfer between scalar and arrays (#110180)

Add conversion of data transfer between scalars or between arrays. 

Scalar to array are not handled yet.


  Commit: 357c1970cabf02017a219d106e8918a39f48a3b0
      https://github.com/llvm/llvm-project/commit/357c1970cabf02017a219d106e8918a39f48a3b0
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/SandboxIR/BUILD.gn

  Log Message:
  -----------
  [gn build] Port e22b07e766e4


  Commit: 005f815313566dadec4037d6a34dad513e760527
      https://github.com/llvm/llvm-project/commit/005f815313566dadec4037d6a34dad513e760527
  Author: Rahul Joshi <rjoshi at nvidia.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M libc/utils/LibcTableGenUtil/APIIndexer.cpp

  Log Message:
  -----------
  [LIBC] Fix build failure caused by #110032 (#110539)

Fix LibC TableGen build failure caused by
https://github.com/llvm/llvm-project/pull/110032


  Commit: ce6369ed44abd687b154e5ea7ab6ad73d22f35cc
      https://github.com/llvm/llvm-project/commit/ce6369ed44abd687b154e5ea7ab6ad73d22f35cc
  Author: Daniel Paoliello <danpao at microsoft.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:

  Log Message:
  -----------
  Fix build break when building RISCVInstrInfo.cpp with MSVC (#110342)

After #109774 MSVC is failing to build LLVM with the error:

```
llvm\lib\Target\RISCV\RISCVInstrInfo.cpp(782): warning C4018: '<': signed/unsigned mismatch
```

Fix is ensure that the RHS is an unsigned integer.


  Commit: 3e5e48a17321089e802fe41400a356e41dbe347b
      https://github.com/llvm/llvm-project/commit/3e5e48a17321089e802fe41400a356e41dbe347b
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M flang/lib/Optimizer/Transforms/CufOpConversion.cpp

  Log Message:
  -----------
  [flang][cuda] Fix buildbot failure (#110540)

https://lab.llvm.org/buildbot/#/builders/89/builds/7488


  Commit: 5d45815473496db4b041a008e60be17bd78c06ae
      https://github.com/llvm/llvm-project/commit/5d45815473496db4b041a008e60be17bd78c06ae
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst

  Log Message:
  -----------
  [docs][amdgpu] Update kernarg documentation for gfx90a (#109690)

Update the docs to mention that kernel argument preloading is not
supported on MI210.


  Commit: 85181788576151cc4b52d38d9b52d04f26179530
      https://github.com/llvm/llvm-project/commit/85181788576151cc4b52d38d9b52d04f26179530
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp

  Log Message:
  -----------
  [clang][bytecode] Implement ia32_bextr builitns (#110513)


  Commit: bbdca53bad670b69e299b1094e2d654a3a76e0dd
      https://github.com/llvm/llvm-project/commit/bbdca53bad670b69e299b1094e2d654a3a76e0dd
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M llvm/unittests/Support/KnownBitsTest.cpp

  Log Message:
  -----------
  [KnownBitsTest] Add optimality tests to some optimal impls; NFC

Adding optimality test to `add`, `sub`, `avgCeilU` and `avgFloorU`


  Commit: 607c525110ed174fa2963fc2b621109f1a95111b
      https://github.com/llvm/llvm-project/commit/607c525110ed174fa2963fc2b621109f1a95111b
  Author: Maurice Heumann <MauriceHeumann at gmail.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/test/CodeGen/AArch64/pr58516.ll
    A llvm/test/CodeGen/AArch64/wineh-catchret-label-generation.ll
    M llvm/test/CodeGen/AArch64/wineh-try-catch.ll

  Log Message:
  -----------
  [ARM64] [Windows] Mark block address as taken when expanding catchrets (#109252)

This fixes issue #109250

The issue happens during the `MachineBlockPlacement` pass. The block,
whose address was previously not taken, is deemed redundant by the pass
and subsequently replaced using
`MachineBasicBlock::ReplaceUsesOfBlockWith` in `BranchFolding`.

ReplaceUsesOfBlockWith only replaces uses in the terminator. However,
`expandPostRAPseudo` introduces new block uses when expanding catchrets.
These uses do not get replaced, which results in undefined label errors
later on.

Marking the block addresss as taken prevents the replacement of the
block, without also replacing non-terminator uses.


  Commit: 41145feb77ddcb90b6628e3d11eea69e1ecf71c2
      https://github.com/llvm/llvm-project/commit/41145feb77ddcb90b6628e3d11eea69e1ecf71c2
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__format/formatter_integral.h
    R libcxx/include/__std_clang_module
    M libcxx/include/module.modulemap
    M libcxx/test/libcxx/clang_modules_include.gen.py
    R libcxx/test/std/experimental/utilities/utility/utility.synop/includes.pass.cpp
    M libcxx/utils/CMakeLists.txt
    R libcxx/utils/generate_std_clang_module_header.py

  Log Message:
  -----------
  [libc++][modules] Rewrite the modulemap to have fewer top-level modules (#110501)

This is a re-application of bc6bd3bc1e9 which was reverted in
f11abac6524 because it broke the Clang pre-commit CI.

Original commit message:

This patch rewrites the modulemap to have fewer top-level modules.
Previously, our modulemap had one top level module for each header in
the library, including private headers. This had the well-known problem
of making compilation times terrible, in addition to being somewhat
against the design principles of Clang modules.

This patch provides almost an order of magnitude compilation time
improvement when building modularized code (certainly subject to
variations). For example, including <ccomplex> without a module cache
went from 22.4 seconds to 1.6 seconds, a 14x improvement.

To achieve this, one might be tempted to simply put all the headers in a
single top-level module. Unfortunately, this doesn't work because libc++
provides C compatibility headers (e.g. stdlib.h) which create cycles
when the C Standard Library headers are modularized too. This is
especially tricky since base systems are usually not modularized: as far
as I know, only Xcode 16 beta contains a modularized SDK that makes this
issue visible. To understand it, imagine we have the following setup:

   // in libc++'s include/c++/v1/module.modulemap
   module std {
      header stddef.h
      header stdlib.h
   }

   // in the C library's include/module.modulemap
   module clib {
      header stddef.h
      header stdlib.h
   }

Now, imagine that the C library's <stdlib.h> includes <stddef.h>,
perhaps as an implementation detail. When building the `std` module,
libc++'s <stdlib.h> header does `#include_next <stdlib.h>` to get the C
library's <stdlib.h>, so libc++ depends on the `clib` module.

However, remember that the C library's <stdlib.h> header includes
<stddef.h> as an implementation detail. Since the header search paths
for libc++ are (and must be) before the search paths for the C library,
the C library ends up including libc++'s <stddef.h>, which means it
depends on the `std` module. That's a cycle.

To solve this issue, this patch creates one top-level module for each C
compatibility header. The rest of the libc++ headers are located in a
single top-level `std` module, with two main exceptions. First, the
module containing configuration headers (e.g. <__config>) has its own
top-level module too, because those headers are included by the C
compatibility headers.

Second, we create a top-level std_core module that contains several
dependency-free utilities used (directly or indirectly) from the __math
subdirectory. This is needed because __math pulls in a bunch of stuff,
and __math is used from the C compatibility header <math.h>.

As a direct benefit of this change, we don't need to generate an
artificial __std_clang_module header anymore to provide a monolithic
`std` module, since our modulemap does it naturally by construction.

A next step after this change would be to look into whether math.h
really needs to include the contents of __math, and if so, whether
libc++'s math.h truly needs to include the C library's math.h header.
Removing either dependency would break this annoying cycle.

Thanks to Eric Fiselier for pointing out this approach during a recent
meeting. This wasn't viable before some recent refactoring, but wrapping
everything (except the C headers) in a large module is by far the
simplest and the most effective way of doing this.

Fixes #86193


  Commit: 8ab50da589fd2692052dcb85edf06d1d2d8da42c
      https://github.com/llvm/llvm-project/commit/8ab50da589fd2692052dcb85edf06d1d2d8da42c
  Author: Alexey Samsonov <vonosmas at gmail.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M mlir/examples/toy/Ch1/include/toy/Lexer.h
    M mlir/examples/toy/Ch2/include/toy/Lexer.h
    M mlir/examples/toy/Ch3/include/toy/Lexer.h
    M mlir/examples/toy/Ch4/include/toy/Lexer.h
    M mlir/examples/toy/Ch5/include/toy/Lexer.h
    M mlir/examples/toy/Ch6/include/toy/Lexer.h
    M mlir/examples/toy/Ch7/include/toy/Lexer.h

  Log Message:
  -----------
  Include <cstdlib> in Toy Lexer examples. (#110449)

These files all use `strtod` - make sure to include a proper header for
this function. Otherwise, building MLIR fails on some systems after the
recent commit 1b5f6916199ce09244cdb52c6911f2028e6ca95a which removed
inclusion of `<cmath>` and thus broke transitive inclusion of
`<stdlib.h>` in these headers.


  Commit: 9e85937b835e82846ab8db53586f0844e6783804
      https://github.com/llvm/llvm-project/commit/9e85937b835e82846ab8db53586f0844e6783804
  Author: vporpo <vporpodas at google.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/Constant.h
    M llvm/include/llvm/SandboxIR/Context.h
    M llvm/include/llvm/SandboxIR/Instruction.h
    R llvm/include/llvm/SandboxIR/SandboxIRValues.def
    M llvm/include/llvm/SandboxIR/Type.h
    M llvm/include/llvm/SandboxIR/User.h
    M llvm/include/llvm/SandboxIR/Value.h
    A llvm/include/llvm/SandboxIR/Values.def
    M llvm/lib/SandboxIR/Instruction.cpp
    M llvm/lib/SandboxIR/User.cpp
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp

  Log Message:
  -----------
  [SandboxIR][NFC] Rename SandboxIRValues.def to Values.def (#110538)


  Commit: 18fa9fa0439d483060cee42412926565838822d4
      https://github.com/llvm/llvm-project/commit/18fa9fa0439d483060cee42412926565838822d4
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M lld/COFF/DLL.cpp
    M lld/COFF/DLL.h
    M lld/COFF/Driver.cpp
    M lld/COFF/Writer.cpp
    M lld/test/COFF/Inputs/loadconfig-arm64ec.s
    A lld/test/COFF/arm64ec-delayimport.test

  Log Message:
  -----------
  [LLD][COFF] Add support for ARM64EC delay-load imports (#110042)

Fill the regular delay-load IAT with x86_64 delay-load thunks. Similarly
to regular imports, create an auxiliary IAT and its copy for ARM64EC
calls. These are filled with the same `__impchk_` thunks used for
regular imports, which perform an indirect call with
`__icall_helper_arm64ec` on the regular delay-load IAT. These auxiliary
IATs are exposed via CHPE metadata starting from version 2.

The MSVC linker creates one more copy of the auxiliary IAT. `__imp_func`
symbols refer to that hidden IAT, while the `#func` thunk performs a
call with the public auxiliary IAT. If the public auxiliary IAT is fine
for `#func`, it should be fine for calls using the `__imp_func` symbol
as well. Therefore, I made `__imp_func` refer to that IAT too.


  Commit: ab393cee9dffdb225b94badcb9c21f80b156b74b
      https://github.com/llvm/llvm-project/commit/ab393cee9dffdb225b94badcb9c21f80b156b74b
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/test/CodeGen/RISCV/early-clobber-tied-def-subreg-liveness.ll
    M llvm/test/CodeGen/RISCV/rvv-cfi-info.ll
    M llvm/test/CodeGen/RISCV/rvv/access-fixed-objects-by-rvv.ll
    M llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir
    M llvm/test/CodeGen/RISCV/rvv/alloca-load-store-scalable-array.ll
    M llvm/test/CodeGen/RISCV/rvv/allocate-lmul-2-4-8.ll
    M llvm/test/CodeGen/RISCV/rvv/callee-saved-regs.ll
    M llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec-bf16.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-llrint.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmaccbf16.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpscatter.ll
    M llvm/test/CodeGen/RISCV/rvv/fmaximum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fminimum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fpclamptosat_vec.ll
    M llvm/test/CodeGen/RISCV/rvv/frm-insert.ll
    M llvm/test/CodeGen/RISCV/rvv/no-reserved-frame.ll
    M llvm/test/CodeGen/RISCV/rvv/rv32-spill-vector.ll
    M llvm/test/CodeGen/RISCV/rvv/rv32-spill-zvlsseg.ll
    M llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector.ll
    M llvm/test/CodeGen/RISCV/rvv/rv64-spill-zvlsseg.ll
    M llvm/test/CodeGen/RISCV/rvv/scalar-stack-align.ll
    M llvm/test/CodeGen/RISCV/rvv/stack-folding.ll
    M llvm/test/CodeGen/RISCV/rvv/vfadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfdiv-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfma-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vxrm-insert.ll
    M llvm/test/CodeGen/RISCV/rvv/wrong-stack-offset-for-rvv-object.mir

  Log Message:
  -----------
  [RISCV] Take known minimum vlen into account when calculating alignment padding in assignRVVStackObjectOffsets. (#110312)

If we know vlen is a multiple of 16, we don't need any alignment
padding.

I wrote the code so that it would generate the minimum amount of padding
if the stack align was 32 or larger or if RVVBitsPerBlock was smaller
than half the stack alignment.


  Commit: 92a8b81bdf44560e243c85c78e6289e5c7f35762
      https://github.com/llvm/llvm-project/commit/92a8b81bdf44560e243c85c78e6289e5c7f35762
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll
    M llvm/test/CodeGen/NVPTX/f16x2-instructions.ll
    M llvm/test/CodeGen/PowerPC/vec_abs.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp.ll
    M llvm/test/CodeGen/Thumb2/mve-fmath.ll
    M llvm/test/CodeGen/WebAssembly/simd-unsupported.ll

  Log Message:
  -----------
  [LegalizeVectorOps] Enable ExpandFABS/COPYSIGN to use integer ops for fixed vectors in some cases. (#109232)

Copy the same FSUB check from ExpandFNEG to avoid breaking AArch64 and
ARM.


  Commit: df3f291d2a64bb01bc8fab69f296923c1c798909
      https://github.com/llvm/llvm-project/commit/df3f291d2a64bb01bc8fab69f296923c1c798909
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M clang/test/CodeGen/tbaa-pointers.c
    M clang/test/CodeGen/tbaa-reference.cpp

  Log Message:
  -----------
  [TBAA] Add tests with pointers to structs to tbaa-pointers.c.

Precommit tests for follow-up improvements to Clang's TBAA emission.

Also add variants with -pointer-tbaa to tbaa-reference.cpp.


  Commit: 023f7c9382599111244e682ea6b26011dbf7fc56
      https://github.com/llvm/llvm-project/commit/023f7c9382599111244e682ea6b26011dbf7fc56
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M mlir/lib/Transforms/Utils/DialectConversion.cpp

  Log Message:
  -----------
  [mlir][Transforms][NFC] Dialect Conversion: Update docs for `remapValues` (#110414)

Simplify the nesting structure of "if" checks in `remapValues` and
update the code comments.

This is what the comments stated in case there is no type converter:
```
      // TODO: What we should do here is just set `desiredType` to `origType`
      // and then handle the necessary type conversions after the conversion
      // process has finished. Unfortunately a lot of patterns currently rely on
      // receiving the new operands even if the types change, so we keep the
      // original behavior here for now until all of the patterns relying on
      // this get updated.
```

However, without a type converter it is not possible to perform any
materializations. Furthermore, the absence of a type converter indicates
that the pattern does not care about type legality. Therefore, the
current implementation is correct and this TODO can be removed.

Note: Patterns that actually require a remapped type to match the
original operand type can be equipped with a type converter that maps
each type to itself.

This TODO is outdated:
```
      // TODO: There currently isn't any mechanism to do 1->N type conversion
      // via the PatternRewriter replacement API, so for now we just ignore it.
```
1->N type conversions are already possible as part of block signature
conversions. It is incorrect to just ignore such cases. However, there
is currently no better way to handle 1->N conversions in this function
because of infrastructure limitations. This is now clarified in the
comments.


  Commit: 49df12c01e99af6e091fedc123f775580064740a
      https://github.com/llvm/llvm-project/commit/49df12c01e99af6e091fedc123f775580064740a
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M mlir/lib/Conversion/BufferizationToMemRef/BufferizationToMemRef.cpp
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/LowerDeallocations.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp

  Log Message:
  -----------
  [mlir][NFC] Minor cleanup around `ModuleOp` usage (#110498)

Use `moduleOp.getBody()` instead of `moduleOp.getBodyRegion().front()`.


  Commit: 1094ee71da533929cebb7ce98fd2665c924387a7
      https://github.com/llvm/llvm-project/commit/1094ee71da533929cebb7ce98fd2665c924387a7
  Author: Abid Qadeer <haqadeer at amd.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp
    M flang/test/Integration/debug-allocatable-1.f90
    M flang/test/Integration/debug-assumed-shape-array.f90
    M flang/test/Integration/debug-ptr-type.f90
    M flang/test/Transforms/debug-assumed-shape-array.fir

  Log Message:
  -----------
  [flang][debug] Better handle array lower bound of assumed shape arrays. (#110302)

As mentioned in #108633, we don't respect the lower bound of the assumed
shape arrays if those were specified. It happens in both cases:
1. When caller has non-default lower bound and callee has default
2. When callee has non-default lower bound and caller has default

This PR tries to fix this issue by improving our generation of lower
bound attribute on DICompositeTypeAttr. If we see a lower bound in the
declaration, we respect that. Note that same function is also used for
allocatable/pointer variables. We make sure that we get the lower bound
from descriptor in those cases. Please note that DWARF assumes a lower
bound of 1 so in many cases we don't need to generate the lower bound.

Fixes #108633.


  Commit: b5aea32920ee6874bbdc7d6414039adce1b6c19a
      https://github.com/llvm/llvm-project/commit/b5aea32920ee6874bbdc7d6414039adce1b6c19a
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M flang/lib/Parser/program-parsers.cpp
    M flang/lib/Parser/stmt-parser.h
    A flang/test/Parser/recovery06.f90

  Log Message:
  -----------
  [flang] Improve error recovery for bad statement after CONTAINS (#109698)

After a CONTAINS statement in a program unit, a statement that cannot
begin a subprogram will trigger catastrophic error recovery. But the
compiler is presently emitting multiple errors for the same location
about expected variations of END statements. Emit fewer messages.

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


  Commit: 1759f3b404a5bd73c6412b8a110f850ff1c43c24
      https://github.com/llvm/llvm-project/commit/1759f3b404a5bd73c6412b8a110f850ff1c43c24
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M flang/lib/Evaluate/fold-implementation.h
    M flang/test/Evaluate/errors01.f90

  Log Message:
  -----------
  [flang] Improve error messages about overflowed integer conversions (#110031)

When an INTEGER conversion to a smaller kind overflows in constant
folding, report the truncated value so that it makes more sense later if
it shows up in other messages.


  Commit: 9b3818ecae5a5c47eb6a8dd44cf7e1c3666a0f02
      https://github.com/llvm/llvm-project/commit/9b3818ecae5a5c47eb6a8dd44cf7e1c3666a0f02
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M flang/include/flang/Common/format.h
    M flang/test/Semantics/io07.f90

  Log Message:
  -----------
  [flang] Downgrade specific format error to warning (#110314)

When a format is missing a comma between two edit descriptors, the
previous token was an integer, and the following item is a repeatable
edit descriptor or a parenthesized group, we emit an error, since it
can't be known where the digits of the integer should be split. But in
the case of a single digit, the situation is not ambiguous, and the
message should be a warning.

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


  Commit: 4dfed691a9f846b1ff773e28b878404b78559890
      https://github.com/llvm/llvm-project/commit/4dfed691a9f846b1ff773e28b878404b78559890
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M flang/include/flang/Frontend/PreprocessorOptions.h
    M flang/include/flang/Parser/parsing.h
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendAction.cpp
    M flang/lib/Parser/parsing.cpp
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Parser/prescan.h
    M flang/test/Parser/include.f

  Log Message:
  -----------
  [flang][preprocessor] Don't expand INCLUDE under -E by default (#110333)

Fortran INCLUDE lines have (until now) been treated like #include
directives. This isn't how things work with other Fortran compilers when
running under the -E option for preprocessing only, so stop doing it by
default, and add -fpreprocess-include-lines to turn it back on when
desired.


  Commit: f8ba021e64a0e76c8750a3666da68a59508afd97
      https://github.com/llvm/llvm-project/commit/f8ba021e64a0e76c8750a3666da68a59508afd97
  Author: Dimple Prajapati <dimpalben.r.prajapati at intel.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCLOps.td
    M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
    M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
    M mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
    A mlir/test/Conversion/GPUToSPIRV/printf.mlir
    M mlir/test/Dialect/SPIRV/IR/ocl-ops.mlir

  Log Message:
  -----------
  [mlir][spirv] Add gpu printf op lowering to spirv.CL.printf op (#78510)

This change contains following:
	- adds lowering of printf op to spirv.CL.printf op in GPUToSPIRV pass.
	- Fixes Constant decoration parsing for spirv GlobalVariable.
	- minor modification to spirv.CL.printf op assembly format.

---------

Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>


  Commit: 53943de73aa8fa7a9497028100e987a3b73ac339
      https://github.com/llvm/llvm-project/commit/53943de73aa8fa7a9497028100e987a3b73ac339
  Author: Thorsten Schütt <schuett at gmail.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-subvector.ll

  Log Message:
  -----------
  [GlobalISel] Import extract/insert subvector (#110287)

Test: AArch64/GlobalISel/irtranslator-subvector.ll

Reference:

https://llvm.org/docs/LangRef.html#llvm-vector-extract-intrinsic 
https://llvm.org/docs/LangRef.html#llvm-vector-insert-intrinsic


  Commit: ee060dc6c37d43c23b66bb18f2d4a6c3cb26f68f
      https://github.com/llvm/llvm-project/commit/ee060dc6c37d43c23b66bb18f2d4a6c3cb26f68f
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/test/CodeGen/tbaa-pointers.c
    M clang/test/CodeGen/tbaa-reference.cpp
    M flang/include/flang/Common/format.h
    M flang/include/flang/Frontend/PreprocessorOptions.h
    M flang/include/flang/Parser/parsing.h
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendAction.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M flang/lib/Optimizer/Transforms/CufOpConversion.cpp
    M flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp
    M flang/lib/Parser/parsing.cpp
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Parser/prescan.h
    M flang/lib/Parser/program-parsers.cpp
    M flang/lib/Parser/stmt-parser.h
    M flang/test/Evaluate/errors01.f90
    M flang/test/Fir/CUDA/cuda-data-transfer.fir
    M flang/test/Integration/debug-allocatable-1.f90
    M flang/test/Integration/debug-assumed-shape-array.f90
    M flang/test/Integration/debug-ptr-type.f90
    M flang/test/Parser/include.f
    A flang/test/Parser/recovery06.f90
    M flang/test/Semantics/io07.f90
    M flang/test/Transforms/debug-assumed-shape-array.fir
    M libc/utils/LibcTableGenUtil/APIIndexer.cpp
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__format/formatter_integral.h
    R libcxx/include/__std_clang_module
    M libcxx/include/module.modulemap
    M libcxx/test/libcxx/clang_modules_include.gen.py
    R libcxx/test/std/experimental/utilities/utility/utility.synop/includes.pass.cpp
    M libcxx/utils/CMakeLists.txt
    R libcxx/utils/generate_std_clang_module_header.py
    M lld/COFF/DLL.cpp
    M lld/COFF/DLL.h
    M lld/COFF/Driver.cpp
    M lld/COFF/Writer.cpp
    M lld/test/COFF/Inputs/loadconfig-arm64ec.s
    A lld/test/COFF/arm64ec-delayimport.test
    M llvm/docs/AMDGPUUsage.rst
    M llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
    M llvm/include/llvm/SandboxIR/Constant.h
    M llvm/include/llvm/SandboxIR/Context.h
    M llvm/include/llvm/SandboxIR/Instruction.h
    R llvm/include/llvm/SandboxIR/SandboxIRValues.def
    M llvm/include/llvm/SandboxIR/Type.h
    M llvm/include/llvm/SandboxIR/User.h
    M llvm/include/llvm/SandboxIR/Value.h
    A llvm/include/llvm/SandboxIR/Values.def
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/SandboxIR/Instruction.cpp
    M llvm/lib/SandboxIR/User.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-subvector.ll
    M llvm/test/CodeGen/AArch64/pr58516.ll
    A llvm/test/CodeGen/AArch64/wineh-catchret-label-generation.ll
    M llvm/test/CodeGen/AArch64/wineh-try-catch.ll
    M llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll
    M llvm/test/CodeGen/NVPTX/f16x2-instructions.ll
    M llvm/test/CodeGen/PowerPC/vec_abs.ll
    M llvm/test/CodeGen/RISCV/early-clobber-tied-def-subreg-liveness.ll
    M llvm/test/CodeGen/RISCV/rvv-cfi-info.ll
    M llvm/test/CodeGen/RISCV/rvv/access-fixed-objects-by-rvv.ll
    M llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir
    M llvm/test/CodeGen/RISCV/rvv/alloca-load-store-scalable-array.ll
    M llvm/test/CodeGen/RISCV/rvv/allocate-lmul-2-4-8.ll
    M llvm/test/CodeGen/RISCV/rvv/callee-saved-regs.ll
    M llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec-bf16.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-llrint.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmaccbf16.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpscatter.ll
    M llvm/test/CodeGen/RISCV/rvv/fmaximum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fminimum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fpclamptosat_vec.ll
    M llvm/test/CodeGen/RISCV/rvv/frm-insert.ll
    M llvm/test/CodeGen/RISCV/rvv/no-reserved-frame.ll
    M llvm/test/CodeGen/RISCV/rvv/rv32-spill-vector.ll
    M llvm/test/CodeGen/RISCV/rvv/rv32-spill-zvlsseg.ll
    M llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector.ll
    M llvm/test/CodeGen/RISCV/rvv/rv64-spill-zvlsseg.ll
    M llvm/test/CodeGen/RISCV/rvv/scalar-stack-align.ll
    M llvm/test/CodeGen/RISCV/rvv/stack-folding.ll
    M llvm/test/CodeGen/RISCV/rvv/vfadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfdiv-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfma-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vxrm-insert.ll
    M llvm/test/CodeGen/RISCV/rvv/wrong-stack-offset-for-rvv-object.mir
    M llvm/test/CodeGen/Thumb2/mve-fmath.ll
    M llvm/test/CodeGen/WebAssembly/simd-unsupported.ll
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp
    M llvm/unittests/Support/KnownBitsTest.cpp
    M llvm/utils/gn/secondary/llvm/lib/SandboxIR/BUILD.gn
    M mlir/examples/toy/Ch1/include/toy/Lexer.h
    M mlir/examples/toy/Ch2/include/toy/Lexer.h
    M mlir/examples/toy/Ch3/include/toy/Lexer.h
    M mlir/examples/toy/Ch4/include/toy/Lexer.h
    M mlir/examples/toy/Ch5/include/toy/Lexer.h
    M mlir/examples/toy/Ch6/include/toy/Lexer.h
    M mlir/examples/toy/Ch7/include/toy/Lexer.h
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCLOps.td
    M mlir/lib/Conversion/BufferizationToMemRef/BufferizationToMemRef.cpp
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
    M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/LowerDeallocations.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp
    M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
    M mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    A mlir/test/Conversion/GPUToSPIRV/printf.mlir
    M mlir/test/Dialect/SPIRV/IR/ocl-ops.mlir

  Log Message:
  -----------
  Fix formatting

Created using spr 1.3.5


Compare: https://github.com/llvm/llvm-project/compare/ab65708cb64d...ee060dc6c37d

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list