[all-commits] [llvm/llvm-project] e72c71: [AccelTable][nfc] Add helper function to cast Acce...

Vitaly Buka via All-commits all-commits at lists.llvm.org
Mon Jan 8 17:14:27 PST 2024


  Branch: refs/heads/users/vitalybuka/spr/msan-unwind-stack-before-fatal-reports
  Home:   https://github.com/llvm/llvm-project
  Commit: e72c71671e044aa30ca35bed9e20da771ae216b5
      https://github.com/llvm/llvm-project/commit/e72c71671e044aa30ca35bed9e20da771ae216b5
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/AccelTable.h
    M llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp

  Log Message:
  -----------
  [AccelTable][nfc] Add helper function to cast AccelTableData (#77100)

Specializations of AccelTableBase are always interested in accessing the
derived versions of their data classes (e.g. DWARF5AccelTableData). They
do so by sprinkling `static_casts` all over the code.

This commit adds a helper function to simplify this process, reducinng
the number of casts that have to be made in the middle of code, making
it easier to read.


  Commit: 87f67c2599410786ea3600d388fd1d2df13e60af
      https://github.com/llvm/llvm-project/commit/87f67c2599410786ea3600d388fd1d2df13e60af
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/test/ParserOpenACC/parse-clauses.c

  Log Message:
  -----------
  [OpenACC] Implement 'self' clause parsing

The 'self' clause takes an optional 'condition' expression, same as the
non-optional expression taken by the 'if' clause.  This patch extracts
the 'condition' expression to a separate function, and implements the
'optional parens' infrastructure for clauses, then implements 'self'
parsing.


  Commit: 22a73e7c4616e0405db85598c049a7ca70cca7cc
      https://github.com/llvm/llvm-project/commit/22a73e7c4616e0405db85598c049a7ca70cca7cc
  Author: carlobertolli <carlo.bertolli at amd.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M openmp/libomptarget/include/Shared/PluginAPI.h
    M openmp/libomptarget/include/Shared/PluginAPI.inc
    M openmp/libomptarget/include/Shared/Requirements.h
    M openmp/libomptarget/include/device.h
    M openmp/libomptarget/plugins-nextgen/amdgpu/src/rtl.cpp
    M openmp/libomptarget/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h
    M openmp/libomptarget/plugins-nextgen/common/include/PluginInterface.h
    M openmp/libomptarget/plugins-nextgen/common/src/PluginInterface.cpp
    M openmp/libomptarget/src/OpenMP/Mapping.cpp
    M openmp/libomptarget/src/PluginManager.cpp
    M openmp/libomptarget/src/device.cpp
    A openmp/libomptarget/test/mapping/auto_zero_copy.cpp

  Log Message:
  -----------
  [OpenMP][libomptarget] Enable automatic unified shared memory executi… (#75999)

…on (zero-copy) on MI300A.

This patch enables applications that did not request OpenMP
unified_shared_memory to run with the same zero-copy behavior, where
mapped memory does not result in extra memory allocations and memory
copies, but CPU-allocated memory is accessed from the device. The name
for this behavior is "automatic zero-copy" and it relies on detecting:
that the runtime is running on a MI300A, that the user did not select
unified_shared_memory in their program, and that XNACK (unified memory
support) is enabled in the current GPU configuration. If all these
conditions are met, then automatic zero-copy is triggered.

This patch is still missing support for global variables, which will be
provided in a subsequent patch.

Co-authored-by: Thorsten Blass <thorsten.blass at amd.com>


  Commit: 6684a09ca84b44f320052a77cb01cb4216e6511b
      https://github.com/llvm/llvm-project/commit/6684a09ca84b44f320052a77cb01cb4216e6511b
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Gnu.cpp
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-linux-gnu/13/crtbegin.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-linux-gnu/13/crtend.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-linux-gnu/13/crti.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-linux-gnu/13/crtn.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-redhat-linux/13/crtbegin.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-redhat-linux/13/crtend.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-redhat-linux/13/crti.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-redhat-linux/13/crtn.o
    A clang/test/Driver/gcc-triple.cpp

  Log Message:
  -----------
  [Driver] Add the --gcc-triple option (#73214)

When --gcc-triple is used, the driver will search for the 'best' gcc
installation that has the given triple. This is useful for distributions
that want clang to use a specific gcc triple, but do not want to pin to
a specific version as would be required by using --gcc-install-dir.
Having clang linked to a specific gcc version can cause clang to stop
working when the version of gcc installed on the system gets updated.


  Commit: ce4144406c94c3b9cf44bcf2997bae80debc6681
      https://github.com/llvm/llvm-project/commit/ce4144406c94c3b9cf44bcf2997bae80debc6681
  Author: carlobertolli <carlo.bertolli at amd.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M openmp/libomptarget/include/Shared/PluginAPI.h
    M openmp/libomptarget/include/Shared/PluginAPI.inc
    M openmp/libomptarget/include/Shared/Requirements.h
    M openmp/libomptarget/include/device.h
    M openmp/libomptarget/plugins-nextgen/amdgpu/src/rtl.cpp
    M openmp/libomptarget/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h
    M openmp/libomptarget/plugins-nextgen/common/include/PluginInterface.h
    M openmp/libomptarget/plugins-nextgen/common/src/PluginInterface.cpp
    M openmp/libomptarget/src/OpenMP/Mapping.cpp
    M openmp/libomptarget/src/PluginManager.cpp
    M openmp/libomptarget/src/device.cpp
    R openmp/libomptarget/test/mapping/auto_zero_copy.cpp

  Log Message:
  -----------
  Revert "[OpenMP][libomptarget] Enable automatic unified shared memory executi…" (#77371)

Reverts llvm/llvm-project#75999

lit test is failing.


  Commit: ce1305a3cea42dad8dd6ee5606dd4259e8632953
      https://github.com/llvm/llvm-project/commit/ce1305a3cea42dad8dd6ee5606dd4259e8632953
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M libc/include/llvm-libc-types/off_t.h

  Log Message:
  -----------
  [libc] make off_t 32b for 32b arm (#77350)

Fixes the following diagnostic:

    llvm-project/libc/src/sys/mman/linux/mmap.cpp:44:59: error: implicit
conversion loses integer precision: 'off_t' (aka 'long long') to 'long'
    [-Werror,-Wshorten-64-to-32]
     size, prot, flags, fd, offset);
                            ^~~~~~

It looks like off_t is a curious types on different platforms. FWICT,
it's 32b
on arm (at least for arm-linux-gnueabi) but 64b elsewhere (including 32b
riscv32-linux-gnu).


  Commit: 4435ced94998c00a6589c3500822015b6341c9e3
      https://github.com/llvm/llvm-project/commit/4435ced94998c00a6589c3500822015b6341c9e3
  Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/SCF/Transforms/TileUsingInterface.h
    M mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterface.cpp

  Log Message:
  -----------
  [mlir][TilingInterface] Allow controlling what fusion is done within tile and fuse (#76871)

Currently the `tileConsumerAndFuseProducerGreedilyUsingSCFFor` method
greedily fuses through all slices that are generated during the tile and
fuse flow. That is not the normal use case. Ideally the caller would
like to control which slices get fused and which dont. This patch
introduces a new field to the `SCFTileAndFuseOptions` to specify this
control.

The contol function also allows the caller to specify if the replacement
for the fused producer needs to be yielded from within the tiled
computation. This allows replacing the fused producers in case they have
other uses. Without this the original producers still survive negating
the utility of the fusion.

The change here also means that the name of the function
`tileConsumerAndFuseProducerGreedily...` can be updated. Defering that
to a later stage to reduce the churn of API changes.


  Commit: 7ab64b3266c580f946b3b65992030c3f68cbe392
      https://github.com/llvm/llvm-project/commit/7ab64b3266c580f946b3b65992030c3f68cbe392
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.td

  Log Message:
  -----------
  [RISCV] Remove tab character from RISCVRegisterInfo.td. NFC


  Commit: 09e32ab75076a1f2270d37343922c86c12bdd047
      https://github.com/llvm/llvm-project/commit/09e32ab75076a1f2270d37343922c86c12bdd047
  Author: Alex Langford <alangford at apple.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M lldb/include/lldb/API/SBBreakpoint.h

  Log Message:
  -----------
  [lldb] Deprecate SBBreakpoint::AddName in favor of AddNameWithErrorHandling (#71228)

AddName gives no feedback other than if it succeeded whereas
AddNameWithErrorHandling gives you back an SBError object. I would like
to mark AddName as deprecated and direct folks to use
AddNameWithErorrHandling instead.

---------

Co-authored-by: Med Ismail Bennani <ismail at bennani.ma>


  Commit: 16b8a0dc6885dea0882887a6e642a504fd1e193c
      https://github.com/llvm/llvm-project/commit/16b8a0dc6885dea0882887a6e642a504fd1e193c
  Author: Alex Langford <alangford at apple.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Utility/StructuredData.h
    M lldb/source/Breakpoint/BreakpointResolverName.cpp
    M lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
    M lldb/source/Target/DynamicRegisterInfo.cpp

  Log Message:
  -----------
  [lldb] Change interface of StructuredData::Array::GetItemAtIndexAsInteger (#71993)

This is a follow-up to (#71613) and (#71961).


  Commit: f700d748f0447b6a761eb9d42575b28e0af98708
      https://github.com/llvm/llvm-project/commit/f700d748f0447b6a761eb9d42575b28e0af98708
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M libc/src/__support/HashTable/sse2/bitmask_impl.inc

  Log Message:
  -----------
  [libc] fix more -Wmissing-brace (#77382)

Similar to #77345, the buildbots are observing similar warnings for the
sse2
implementation.

llvm-project/libc/src/__support/HashTable/sse2/bitmask_impl.inc:36:13:
    error: suggest braces around initialization of subobject
    [-Werror,-Wmissing-braces]
    return {bitmask};
            ^~~~~~~
            {      }
llvm-project/libc/src/__support/HashTable/sse2/bitmask_impl.inc:45:13:
    error: suggest braces around initialization of subobject
    [-Werror,-Wmissing-braces]
    return {static_cast<uint16_t>(~mask_available().word)};
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            {                                            }

Link:
https://lab.llvm.org/buildbot/#/builders/163/builds/49350/steps/8/logs/stdio
Link: https://github.com/llvm/llvm-project/pull/74506


  Commit: f84bfa2f92d2aa3329bc06902a12c0f4c54d7297
      https://github.com/llvm/llvm-project/commit/f84bfa2f92d2aa3329bc06902a12c0f4c54d7297
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-01-09 (Tue, 09 Jan 2024)

  Changed paths:
    M lld/MinGW/Options.td

  Log Message:
  -----------
  [LLD] [MinGW] Sync --thinlto-cache-dir option details with ELF (#77010)

Disallow using the form with a separate argument,
"--thinlto-cache-dir dir", allow only the one with equals,
"--thintlo-cache-dir=dir". This is the only form that actually was
tested when this was added in
f794808bb9ec06966a67fe33d41a13b9601768f8, and matches the ELF side,
where only the form with an equals is supported (and this was also the
case at the time when this option was added to the MinGW linker).


  Commit: b2ea9ec7fcf37ca01979c11c5b2b1cab0e1ae212
      https://github.com/llvm/llvm-project/commit/b2ea9ec7fcf37ca01979c11c5b2b1cab0e1ae212
  Author: Igor Kudrin <ikudrin at accesssoftek.com>
  Date:   2024-01-09 (Tue, 09 Jan 2024)

  Changed paths:
    M llvm/docs/CommandLine.rst
    M llvm/lib/Support/CommandLine.cpp
    M llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test
    M llvm/unittests/Support/CommandLineTest.cpp

  Log Message:
  -----------
  [CommandLine] Do not print empty categories with '--help-hidden' (#77043)

If a category has no options associated with it, the `--help-hidden`
command still shows that category with the annotation "This option
category has no options", and this is how it was implemented from the
beginning when the categories were introduced, see commit 0537a98878. A
feature to hide unrelated options was added later, in
https://reviews.llvm.org/D7100. Now, if a tool needs to hide unrelated
options that are associated with categories, leaving some of them empty,
those categories will still be visible on the `--help-hidden` output,
even if they have no use for the tool; see the changes in
`llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test` for an example.

The patch ensures that only categories with options are shown on both
main and hidden help output.


  Commit: d5f84e6121f0d0cc8984dccc1774ce9ddb7168c4
      https://github.com/llvm/llvm-project/commit/d5f84e6121f0d0cc8984dccc1774ce9ddb7168c4
  Author: Iain Sandoe <iain at sandoe.co.uk>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M libcxxabi/src/private_typeinfo.cpp
    M libcxxabi/src/private_typeinfo.h
    A libcxxabi/test/catch_null_pointer_to_object_pr64953.pass.cpp

  Log Message:
  -----------
  [libc++abi] Handle catch null pointer-to-object (#68076)

This addresses cases (currently failing) where we throw a null
pointer-to-object and fixes #64953.

We are trying to satisfy the following bullet from the C++ ABI 15.3:

* the handler is of type cv1 T* cv2 and E is a pointer type that can be
converted to the type of the handler by either or both of:

  - a standard pointer conversion (4.10 [conv.ptr]) not involving
    conversions to private or protected or ambiguous classes.

  - a qualification conversion.

The existing implementation assesses the ambiguity of bases by computing
the offsets to them; ambiguous cases are then when the same base appears
at different offsets. The computation of offset includes indirecting
through the vtables to find the offsets to virtual bases.

When the thrown pointer points to a real object, this is quite efficient
since, if the base is found, and it is not ambiguous and on a public
path, the offset is needed to return the adjusted pointer (and the
indirections are not particularly expensive to compute).

However, when we throw a null pointer-to-object, this scheme is no
longer applicable (and the code currently bypasses the relevant
computations, leading to the incorrect catches reported in the issue).

-----

The solution proposed here takes a composite approach:

1. When the pointer-to-object points to a real instance (well, at least,
it is determined to be non-null), we use the existing scheme.

2. When the pointer-to-object is null:

  * We note that there is no real object.
  * When we are processing non-virtual bases, we continue to compute the
    offsets, but for a notional dummy object based at 0. This is OK, since
    we never need to access the object content for non-virtual bases.
  * When we are processing a path with one or more virtual bases, we
    remember a cookie corresponding to the inner-most virtual base found so
    far (and set the notional offset to 0). Offsets to inner non-virtual
    bases are then computed as normal.

A base is then ambiguous iff:
* There is a recorded virtual base cookie and that is different from the
  current one or,
* The non-virtual base offsets differ.

When a handler for a pointer succeeds in catching a base pointer for a
thrown null pointer-to-object, we still return a nullptr (so the
adjustment to the pointer is not required and need not be computed).

Since we noted that there was no object when starting the search for
ambiguous bases, we know that we can skip the pointer adjustment.

This was originally uploaded as https://reviews.llvm.org/D158769.
Fixes #64953


  Commit: 0fe86f9c518fb1296bba8d66ce495f9dfff2c435
      https://github.com/llvm/llvm-project/commit/0fe86f9c518fb1296bba8d66ce495f9dfff2c435
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M openmp/libomptarget/include/DeviceImage.h
    M openmp/libomptarget/include/OffloadEntry.h
    M openmp/libomptarget/include/device.h
    M openmp/libomptarget/src/DeviceImage.cpp
    M openmp/libomptarget/src/PluginManager.cpp
    M openmp/libomptarget/src/device.cpp

  Log Message:
  -----------
  [Libomptarget] Remove extra cache for offloading entries (#77012)

Summary:
The offloading entries right now are assumed to be baked into the binary
itself, and thus always valid whenever the library is executing. This
means that we don't need to copy them to additional storage and can
instead simply pass around references to it.

This is not likely to change in the expected operation of the OpenMP
library. Additionally, the indirection for the offload entry struct is
simply two pointers, so moving it by value is trivial.


  Commit: 6e90f13cc9bc9dbc5c2c248d95c6e18a5fb021b4
      https://github.com/llvm/llvm-project/commit/6e90f13cc9bc9dbc5c2c248d95c6e18a5fb021b4
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Conversion/GPUToSPIRV/GPUToSPIRV.h
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCooperativeMatrixOps.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTypes.h
    M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp
    M mlir/lib/Conversion/GPUToSPIRV/WmmaOpsToSPIRV.cpp
    M mlir/lib/Dialect/SPIRV/IR/CastOps.cpp
    M mlir/lib/Dialect/SPIRV/IR/CooperativeMatrixOps.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp
    M mlir/lib/Target/SPIRV/Deserialization/DeserializeOps.cpp
    M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
    M mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
    M mlir/test/Conversion/GPUToSPIRV/wmma-ops-to-spirv-khr-coop-matrix.mlir
    R mlir/test/Conversion/GPUToSPIRV/wmma-ops-to-spirv-nv-coop-matrix.mlir
    M mlir/test/Dialect/SPIRV/IR/cast-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/composite-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/khr-cooperative-matrix-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/matrix-ops.mlir
    R mlir/test/Dialect/SPIRV/IR/nv-cooperative-matrix-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/structure-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/types.mlir
    M mlir/test/Target/SPIRV/matrix.mlir
    R mlir/test/Target/SPIRV/nv-cooperative-matrix-ops.mlir

  Log Message:
  -----------
  [mlir][spirv] Drop support for SPV_NV_cooperative_matrix (#76782)

This extension has been superseded by SPV_KHR_cooperative_matrix which
is supported across major vendors GPU like Nvidia, AMD, and Intel.

Given that the KHR version has been supported for nearly half a year,
drop the NV-specific extension to reduce the maintenance burden and code
duplication.


  Commit: 6eab9dd7f01e6cad9f1a93bd52e4c6e7b4c3c1fa
      https://github.com/llvm/llvm-project/commit/6eab9dd7f01e6cad9f1a93bd52e4c6e7b4c3c1fa
  Author: Alex MacLean <amaclean at nvidia.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
    M llvm/test/Transforms/InstCombine/NVPTX/nvvm-intrins.ll

  Log Message:
  -----------
  [NVPTX] remove incorrect NVPTX intrinsic transformations (#76870)

`nvvm_fabs_f`
`nvvm_fabs_ftz_f`

Unfortunately, llvm fabs is not equivalent to these intrinsics since
llvm fabs is defined to only set the sign bit to zero while these can
also flush subnormal inputs and modify NaNs.

`nvvm_round_d`
`nvvm_round_f`
`nvvm_round_ftz_f`

llvm.nvvm.round uses RNI, while llvm.round codegens to RZI. LLVM defines
llvm.round to use the same rounding as libm
`round[f]()`, which is not necessary the same as how we define
llvm.nvvm.round.

`nvvm_sqrt_rn_f`
`nvvm_sqrt_rn_ftz_f`

sqrt may be lowered to a less precise version of sqrt, such as
sqrt.approx in NVPTX depending on factors such as the value of
-nvptx-prec-sqrtf32. These intrinsics should always become the
corresponding NVPTX instructions.

`nvvm_add_rn_d`
`nvvm_add_rn_f`
`nvvm_add_rn_ftz_f`
`nvvm_mul_rn_d`
`nvvm_mul_rn_f`
`nvvm_mul_rn_ftz_f`

These nvvm intrinsics have an explicitly specified rounding mode (.rn).
They should always be lowered to a PTX instruction with the same
explicit rounding mode. Converting to fmul and fadd instructions result
in the PTX instructions without rounding modes specified. This can cause
issue because:

> An add [or mul] instruction with no rounding modifier defaults to
round-to-nearest-even and may be optimized aggressively by the code
optimizer. In particular, mul/add sequences with no rounding modifiers
may be optimized to use fused-multiply-add instructions on the target
device.

`nvvm_div_rn_f`
`nvvm_div_rn_ftz_f`
`nvvm_rcp_rn_f`
`nvvm_rcp_rn_ftz_f`

fdiv may be lowered to a less precise version of div, such as div.full
in NVPTX depending on factors such as the value of -nvptx-prec-divf32.
These intrinsics should always become the corresponding NVPTX
instructions.


  Commit: f5145f4dc819d73ff8bebcfba3779533b150884e
      https://github.com/llvm/llvm-project/commit/f5145f4dc819d73ff8bebcfba3779533b150884e
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M clang/include/clang/Analysis/CFG.h

  Log Message:
  -----------
  [Clang][NFC] Fix out-of-bounds access (#77193)

The changes to tablegen made by
https://github.com/llvm/llvm-project/pull/76825 result in
`StmtClass::lastStmtConstant` changing from `StmtClass::WhileStmtClass`
to `StmtClass::GCCAsmStmtClass`. Since `CFG::BuildOptions::alwaysAdd` is
never called with a `WhileStmt`, this has flown under the radar until
now.

Once such test in which an out-of-bounds access occurs is
`test/Sema/inline-asm-validate.c`, among many others.


  Commit: faa326de97bf6119dcc42806b07f3523c521ae96
      https://github.com/llvm/llvm-project/commit/faa326de97bf6119dcc42806b07f3523c521ae96
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    M llvm/lib/Target/RISCV/RISCVProcessors.td
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    A llvm/test/CodeGen/RISCV/cmov-branch-opt.ll

  Log Message:
  -----------
  [RISCV] Add branch+c.mv macrofusion for sifive-p450. (#76169)

sifive-p450 supports a very restricted version of the short forward
branch optimization from the sifive-7-series.

For sifive-p450, a branch over a single c.mv can be macrofused as a
conditional move operation. Due to encoding restrictions on c.mv, we
can't conditionally move from X0. That would require c.li instead.


  Commit: 1ea7a56057492d9da1124787a9855cc2edca7df9
      https://github.com/llvm/llvm-project/commit/1ea7a56057492d9da1124787a9855cc2edca7df9
  Author: Advenam Tacet <advenam.tacet at trailofbits.com>
  Date:   2024-01-09 (Tue, 09 Jan 2024)

  Changed paths:
    M libcxx/include/string

  Log Message:
  -----------
  Revert "[ASan][libc++] String annotations optimizations fix with lambda (#76200)"

This reverts commit c68a9d25e99a096f6862fc4b57dd380a21245d31.


  Commit: ac8b4f874945f83eec8c8f56d9fc80093e02a7b2
      https://github.com/llvm/llvm-project/commit/ac8b4f874945f83eec8c8f56d9fc80093e02a7b2
  Author: Usman Nadeem <mnadeem at quicinc.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    A llvm/test/CodeGen/AArch64/sve2-bcax.ll

  Log Message:
  -----------
  [AArch64][SVE2] Add pattern for BCAX (#77159)

Bitwise clear and exclusive or
Add pattern for:
    xor x, (and y, not(z)) -> bcax x, y, z


  Commit: a0ae5258065a856d5f8d9f8dcb12e9d8394f789f
      https://github.com/llvm/llvm-project/commit/a0ae5258065a856d5f8d9f8dcb12e9d8394f789f
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2024-01-09 (Tue, 09 Jan 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.h
    M clang-tools-extra/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [clang-tidy]unused using decls only check cpp files (#77335)


  Commit: 6958986f77bdbedd6ba571af7b546018f9108067
      https://github.com/llvm/llvm-project/commit/6958986f77bdbedd6ba571af7b546018f9108067
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M libc/src/string/memory_utils/op_x86.h

  Log Message:
  -----------
  [libc] fix -Wconversion (#77384)

Fixes the following from GCC:

    llvm-project/libc/src/string/memory_utils/op_x86.h:236:24: error:
conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’}
may
    change value [-Werror=conversion]
      236 |   return (xored >> 32) | (xored & 0xFFFFFFFF);
          |          ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~

Link:
https://lab.llvm.org/buildbot/#/builders/250/builds/16236/steps/8/logs/stdio
Link: https://github.com/llvm/llvm-project/pull/74506


  Commit: 7c89b20e02ff079ec84fc54880dbc6c063d8c915
      https://github.com/llvm/llvm-project/commit/7c89b20e02ff079ec84fc54880dbc6c063d8c915
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M lld/ELF/ScriptParser.cpp
    M lld/test/ELF/linkerscript/overlay.test

  Log Message:
  -----------
  [ELF] OVERLAY: support optional start address and LMA

https://reviews.llvm.org/D44780 implemented rudimentary support for
OVERLAY. The start address and `AT(ldaddr)` in `OVERLAY [start] :
[NOCROSSREFS] [AT ( ldaddr )]` are not optional.

In addition, there are two issues:

* When the start address is `.`, subsequent sections don't share the
  address of the first overlay section.
* When the first overlay section is empty and discardable, `p_paddr` is
  incorrectly zero. This is because a discarded section has a zero
  address, causing `prev->getLMA() + prev->size` where `prev` refers to
  the first section to evaluate to zero.

This patch supports optional start address and LMA and fix the issues.
Close #77265

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


  Commit: 1689bbea17683129f41246110af1ebd32b98362f
      https://github.com/llvm/llvm-project/commit/1689bbea17683129f41246110af1ebd32b98362f
  Author: Nick Desaulniers <ndesaulniers at google.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M libc/src/string/memory_utils/op_x86.h

  Log Message:
  -----------
  [libc] fix up #77384


  Commit: 70cea91e0fc93db618069588e6a06314b2b0e2d3
      https://github.com/llvm/llvm-project/commit/70cea91e0fc93db618069588e6a06314b2b0e2d3
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M libc/src/sys/mman/linux/CMakeLists.txt

  Log Message:
  -----------
  [libc] temporarily set -Wno-shorten-64-to-32 (#77396)

This is still broken after #77350. Disable the warning for now, and fix
properly once the buildbot it back to green.

Link: https://github.com/llvm/llvm-project/issues/77395


  Commit: eee71ed3f7d0abe40f7c54166421421362a8ac46
      https://github.com/llvm/llvm-project/commit/eee71ed3f7d0abe40f7c54166421421362a8ac46
  Author: Kai Sasaki <lewuathe at gmail.com>
  Date:   2024-01-09 (Tue, 09 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir

  Log Message:
  -----------
  [mlir][complex] Support Fastmath flag for complex.mulf (#74554)

Support fast math flag in the conversion of `complex.mulf` op to
standard dialect.

See:
https://discourse.llvm.org/t/rfc-fastmath-flags-support-in-complex-dialect/71981


  Commit: 4147b72301bf77ad63793e1dcefefe8d37e69a37
      https://github.com/llvm/llvm-project/commit/4147b72301bf77ad63793e1dcefefe8d37e69a37
  Author: HaohaiWen <haohai.wen at intel.com>
  Date:   2024-01-09 (Tue, 09 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/X86/cast.ll

  Log Message:
  -----------
  [CostModel][X86] Fix fpext conversion cost for 16 elements (#76278)

The fpext conversion cost for 16 elements should be 4 from Znver4.


  Commit: 8d982e509bf61fab1df58eaf3582138fc3c331b2
      https://github.com/llvm/llvm-project/commit/8d982e509bf61fab1df58eaf3582138fc3c331b2
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M compiler-rt/test/hwasan/TestCases/Linux/aligned_alloc-alignment.cpp
    M compiler-rt/test/hwasan/TestCases/Linux/pvalloc-overflow.cpp
    M compiler-rt/test/hwasan/TestCases/Posix/posix_memalign-alignment.cpp
    M compiler-rt/test/hwasan/TestCases/allocator_returns_null.cpp

  Log Message:
  -----------
  [test][hwasan] Test function name in summaries #77391 (#77397)

Push #77391 into the main.


  Commit: 8b1c4de0da36b9f20a7f130ec26ec9fc3e38b274
      https://github.com/llvm/llvm-project/commit/8b1c4de0da36b9f20a7f130ec26ec9fc3e38b274
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang/include/clang/Analysis/CFG.h
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Gnu.cpp
    M clang/lib/Parse/ParseOpenACC.cpp
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-linux-gnu/13/crtbegin.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-linux-gnu/13/crtend.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-linux-gnu/13/crti.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-linux-gnu/13/crtn.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-redhat-linux/13/crtbegin.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-redhat-linux/13/crtend.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-redhat-linux/13/crti.o
    A clang/test/Driver/Inputs/fedora_39_tree/usr/lib/gcc/x86_64-redhat-linux/13/crtn.o
    A clang/test/Driver/gcc-triple.cpp
    M clang/test/ParserOpenACC/parse-clauses.c
    M compiler-rt/lib/msan/msan.h
    M compiler-rt/lib/msan/msan_allocator.cpp
    M compiler-rt/lib/msan/msan_new_delete.cpp
    M compiler-rt/test/hwasan/TestCases/Linux/aligned_alloc-alignment.cpp
    M compiler-rt/test/hwasan/TestCases/Linux/pvalloc-overflow.cpp
    M compiler-rt/test/hwasan/TestCases/Posix/posix_memalign-alignment.cpp
    M compiler-rt/test/hwasan/TestCases/allocator_returns_null.cpp
    M libc/include/llvm-libc-types/off_t.h
    M libc/src/__support/HashTable/sse2/bitmask_impl.inc
    M libc/src/string/memory_utils/op_x86.h
    M libc/src/sys/mman/linux/CMakeLists.txt
    M libcxx/include/string
    M libcxxabi/src/private_typeinfo.cpp
    M libcxxabi/src/private_typeinfo.h
    A libcxxabi/test/catch_null_pointer_to_object_pr64953.pass.cpp
    M lld/ELF/ScriptParser.cpp
    M lld/MinGW/Options.td
    M lld/test/ELF/linkerscript/overlay.test
    M lldb/include/lldb/API/SBBreakpoint.h
    M lldb/include/lldb/Utility/StructuredData.h
    M lldb/source/Breakpoint/BreakpointResolverName.cpp
    M lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
    M lldb/source/Target/DynamicRegisterInfo.cpp
    M llvm/docs/CommandLine.rst
    M llvm/include/llvm/CodeGen/AccelTable.h
    M llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
    M llvm/lib/Support/CommandLine.cpp
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
    M llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    M llvm/lib/Target/RISCV/RISCVProcessors.td
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/X86/cast.ll
    A llvm/test/CodeGen/AArch64/sve2-bcax.ll
    A llvm/test/CodeGen/RISCV/cmov-branch-opt.ll
    M llvm/test/Transforms/InstCombine/NVPTX/nvvm-intrins.ll
    M llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test
    M llvm/unittests/Support/CommandLineTest.cpp
    M mlir/include/mlir/Conversion/GPUToSPIRV/GPUToSPIRV.h
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/include/mlir/Dialect/SCF/Transforms/TileUsingInterface.h
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCooperativeMatrixOps.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTypes.h
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp
    M mlir/lib/Conversion/GPUToSPIRV/WmmaOpsToSPIRV.cpp
    M mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
    M mlir/lib/Dialect/SPIRV/IR/CastOps.cpp
    M mlir/lib/Dialect/SPIRV/IR/CooperativeMatrixOps.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp
    M mlir/lib/Target/SPIRV/Deserialization/DeserializeOps.cpp
    M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
    M mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
    M mlir/test/Conversion/GPUToSPIRV/wmma-ops-to-spirv-khr-coop-matrix.mlir
    R mlir/test/Conversion/GPUToSPIRV/wmma-ops-to-spirv-nv-coop-matrix.mlir
    M mlir/test/Dialect/SPIRV/IR/cast-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/composite-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/khr-cooperative-matrix-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/matrix-ops.mlir
    R mlir/test/Dialect/SPIRV/IR/nv-cooperative-matrix-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/structure-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/types.mlir
    M mlir/test/Target/SPIRV/matrix.mlir
    R mlir/test/Target/SPIRV/nv-cooperative-matrix-ops.mlir
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterface.cpp
    M openmp/libomptarget/include/DeviceImage.h
    M openmp/libomptarget/include/OffloadEntry.h
    M openmp/libomptarget/include/device.h
    M openmp/libomptarget/src/DeviceImage.cpp
    M openmp/libomptarget/src/PluginManager.cpp
    M openmp/libomptarget/src/device.cpp

  Log Message:
  -----------
  fix name

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/552d53ea25bb...8b1c4de0da36


More information about the All-commits mailing list