LLVM/project 31c405doffload/plugins-nextgen/common/src PluginInterface.cpp

Fix usage of REPORT
DeltaFile
+2-2offload/plugins-nextgen/common/src/PluginInterface.cpp
+2-21 files

LLVM/project 07677d8offload/include omptarget.h, offload/test/offloading dyn_groupprivate.cpp

Adapt to latest OpenMP syntax
DeltaFile
+70-33offload/test/offloading/dyn_groupprivate.cpp
+33-15openmp/device/src/State.cpp
+8-6openmp/runtime/src/include/omp.h.var
+8-6openmp/runtime/src/kmp_stub.cpp
+6-5openmp/runtime/src/kmp_csupport.cpp
+2-2offload/include/omptarget.h
+127-672 files not shown
+129-708 files

LLVM/project 30086bcllvm/lib/Target/RISCV RISCVVectorPeephole.cpp, llvm/test/CodeGen/RISCV/rvv reduce-vl-peephole.ll reduce-vl-peephole.mir

[RISCV] Remove RISCVVectorPeephole::tryToReduceVL (#184297)

Now that RISCVVLOptimizer has been extended to handle the remaining
cases tryToReduceVL handles, we can remove tryToReduceVL to keep all the
reduction logic in one place.

Intended to be NFC but it looks like in
test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector-shuffle.ll we were
previously reducing the vl of a volatile load in
insert_subvector_dag_loop, which RISCVVLOptimizer knows to avoid.

On llvm-test-suite and SPEC CPU 2017 -march=rva23u64 -O3 there are no
changes with this patch.
DeltaFile
+2-104llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp
+0-19llvm/test/CodeGen/RISCV/rvv/reduce-vl-peephole.ll
+0-15llvm/test/CodeGen/RISCV/rvv/reduce-vl-peephole.mir
+3-3llvm/test/CodeGen/RISCV/rvv/vmv.v.v-peephole.mir
+2-2llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-to-vmv.mir
+1-2llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector-shuffle.ll
+8-1456 files

LLVM/project bbe4853llvm/lib/Target/RISCV RISCVInstrInfo.cpp

[RISCV] Add findCommutedOpIndices support for Zvabd



Reviewers: preames, topperc, mgudim, lukel97, mshockwave

Pull Request: https://github.com/llvm/llvm-project/pull/184602
DeltaFile
+4-0llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
+4-01 files

LLVM/project 7321e71flang/test/Integration/OpenMP map-types-and-sizes.f90, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

[OpenMP][MLIR] Modify lowering OpenMP Dialect lowering to support attach mapping

This PR adjusts the LLVM-IR lowering to support the new attach map type that the runtime
uses to link data and pointer together, this swaps the mapping from the older
OMP_MAP_PTR_AND_OBJ map type in most cases and allows slightly more complicated ref_ptr/ptee
and attach semantics.
DeltaFile
+352-234mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+274-0mlir/test/Target/LLVMIR/omptarget-host-ref-semantics.mlir
+116-123flang/test/Integration/OpenMP/map-types-and-sizes.f90
+27-58mlir/test/Target/LLVMIR/omptarget-record-type-with-ptr-member-host.mlir
+70-0offload/test/offloading/fortran/map_attach_always.f90
+55-0offload/test/offloading/fortran/map_attach_never.f90
+894-41513 files not shown
+1,046-50019 files

LLVM/project 184ac47flang/lib/Lower/OpenMP Utils.cpp, flang/lib/Optimizer/OpenMP MapInfoFinalization.cpp

[Flang][OpenMP][Offload] Modify MapInfoFinalization to handle attach mapping and 6.1's ref_* and attach map keywords

This PR is one of four required to implement the attach mapping semantics in Flang, alongside the
ref_ptr/ref_ptee/ref_ptr_ptee map modifiers and the attach(always/never/auto) modifiers.

This PR is the MapInfoFinalization changes required to support these features, it mainly deals with
applying the correct attach map type and manipulating the descriptor types maps for base address
and descriptor so that when we specify ref_ptr/ref_ptee we emit one of the two maps and when we
emit ref_ptr_ptee we emit our usual default maps. In all cases we add the "glue" of an new
attach map except in cases where a user has provided attach never. In cases where we are
provided an always, we apply the always map type to our attach maps.

It's important to note the runtime has a toggle for the auto map behaviour, which will flip the
attach behaviour to the newer semantics or the older semantics for backwards compatability (outside
the purview of this PR but good to mention).
DeltaFile
+531-262flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
+43-44flang/test/Lower/OpenMP/use-device-ptr-to-use-device-addr.f90
+32-21flang/test/Transforms/omp-map-info-finalization.fir
+19-19flang/test/Lower/OpenMP/optional-argument-map-2.f90
+18-12flang/test/Lower/OpenMP/derived-type-allocatable-map.f90
+16-7flang/lib/Lower/OpenMP/Utils.cpp
+659-36512 files not shown
+721-40118 files

LLVM/project 80df474flang/lib/Semantics check-omp-structure.cpp check-omp-structure.h, flang/test/Semantics/OpenMP affinity-invalid.f90

Modify semantic check for affinity clause

- Add CheckLastPartRef
- Add CheckArraySection
- Add comment why we still need check for substring even if
  CheckArraySection is called
DeltaFile
+74-25flang/test/Semantics/OpenMP/affinity-invalid.f90
+28-9flang/lib/Semantics/check-omp-structure.cpp
+2-0flang/lib/Semantics/check-omp-structure.h
+104-343 files

LLVM/project 82a9948flang-rt/lib/runtime execute.cpp, flang-rt/unittests/Runtime CommandTest.cpp

[flang-rt] Fixes EXECUTE_COMMAND_LINE() status management and double buffering (#184285)

EXECUTE_COMMAND_LINE() without CMDSTAT initiated termination in runtime
if the command returned non-zero status code. For example,
EXECUTE_COMMAND_LINE('false') on Linux would cause "fatal Fortran
runtime error... : Command line execution failed with exit code: 1."
This is too strict: EXECUTE_COMMAND_LINE() successfully called 'false',
it's just 'false' happened to return non-zero status code. ifx and
gfortran don't initiate termination in such case. Changed
EXECUTE_COMMAND_LINE() implementation to behave in similar fashion.

Also during testing discovered that when the output of the program that
uses EXECUTE_COMMAND_LINE(... WAIT=.false.) is piped to a file, the
resulting file has duplicated output lines. This was because fork()
command also ends up duplicating parent's buffered output to the child.
Added flush of all units and C stdio before calling fork().
DeltaFile
+64-64flang-rt/lib/runtime/execute.cpp
+6-11flang-rt/unittests/Runtime/CommandTest.cpp
+70-752 files

LLVM/project d41d83bflang/lib/Optimizer/OpenMP MapInfoFinalization.cpp, flang/lib/Utils OpenMP.cpp

[Flang][MLIR][OpenMP] Add distinct var_ptr_ptr_type to omp.map.info operations & remove ref_ptr_ptee

This is a precursor patch to attach and ref_ptr/ptee mapping that I intend to upstream
over the next few weeks. The attach maps require both the type of the descriptor and
the pointed to data to calculate the appropriate offload/base pointers and size. In
the base case of ref_ptr_ptee all of this information can be gathered from the pointer
and pointee maps, but in cases where we have only one (i.e. ref_ptr/ref_ptee) we will
be missing one of the key elements required to create an corresponding attach map.

So, this PR basically adds the ability to ferry around the type of both var_ptr and
var_ptr_ptr as opposed to just var_ptr, then we can emit attach maps as seperate
map.info's that carry all the pre-requisite informaion for lowering to LLVM-IR. But,
otherwise it seems reasonable to have var_ptr_ptr mirror var_ptr in all aspects for
consistency.

It also removes ref_ptr_ptee, instead opting to use the setting of both ref_ptr and
ref_ptee to mean ref_ptr_ptee.
DeltaFile
+25-16flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
+20-10mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+18-11mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+18-11flang/lib/Utils/OpenMP.cpp
+14-14flang/test/Fir/convert-to-llvm-openmp-and-fir.fir
+11-11flang/test/Transforms/omp-map-info-finalization.fir
+106-7341 files not shown
+219-17047 files

LLVM/project 95b771fflang/lib/Semantics check-omp-structure.cpp check-omp-structure.h, flang/test/Semantics/OpenMP affinity-invalid.f90

Modify semantic check for affinity clause

- Add CheckLastPartRef
- Add CheckArraySection
- Add comment why we still need check for substring even if
  CheckArraySection is called
DeltaFile
+74-25flang/test/Semantics/OpenMP/affinity-invalid.f90
+28-8flang/lib/Semantics/check-omp-structure.cpp
+2-0flang/lib/Semantics/check-omp-structure.h
+104-333 files

LLVM/project 96de00cflang/lib/Semantics check-omp-structure.cpp check-omp-structure.h, flang/test/Semantics/OpenMP affinity-invalid.f90

Modify semantic check for affinity clause

- Add CheckLastPartRef
- Add CheckArraySection
- Add comment why we still need check for substring even if
  CheckArraySection is called
DeltaFile
+74-25flang/test/Semantics/OpenMP/affinity-invalid.f90
+27-8flang/lib/Semantics/check-omp-structure.cpp
+2-0flang/lib/Semantics/check-omp-structure.h
+103-333 files

LLVM/project 76d3543libcxx/test/std/strings/basic.string/string.cons constexpr_initialization_stress.pass.cpp

rebase

Created using spr 1.3.7
DeltaFile
+1-3libcxx/test/std/strings/basic.string/string.cons/constexpr_initialization_stress.pass.cpp
+1-31 files

LLVM/project 2eb0efblibcxx/test/std/strings/basic.string/string.cons constexpr_initialization_stress.pass.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1-3libcxx/test/std/strings/basic.string/string.cons/constexpr_initialization_stress.pass.cpp
+1-31 files

LLVM/project 47c4359libcxx/test/std/strings/basic.string/string.cons constexpr_initialization_stress.pass.cpp

void

Created using spr 1.3.7
DeltaFile
+1-3libcxx/test/std/strings/basic.string/string.cons/constexpr_initialization_stress.pass.cpp
+1-31 files

LLVM/project a9c7245llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/CodeGen/RISCV/rvv clmulh-sdnode.ll

comment

Created using spr 1.3.7
DeltaFile
+84,419-78,498llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+66,293-29,491llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+25,751-24,782llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+23,663-20,281llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+21,867-18,577llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+19,112-16,445llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+241,105-188,0741,633 files not shown
+411,760-294,9591,639 files

LLVM/project acf7f4dllvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/CodeGen/RISCV/rvv clmulh-sdnode.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+84,419-78,498llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+66,293-29,491llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+25,751-24,782llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+23,663-20,281llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+21,867-18,577llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+19,112-16,445llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+241,105-188,0741,633 files not shown
+411,760-294,9591,639 files

LLVM/project 6653187llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/CodeGen/RISCV/rvv clmulh-sdnode.ll

comment

Created using spr 1.3.7
DeltaFile
+84,419-78,498llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+66,293-29,491llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+25,751-24,782llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+23,663-20,281llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+21,867-18,577llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+19,112-16,445llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+241,105-188,0741,633 files not shown
+411,760-294,9591,639 files

LLVM/project 8465c99libcxx/include string

format

Created using spr 1.3.7
DeltaFile
+1-1libcxx/include/string
+1-11 files

LLVM/project 58acf77libcxx/include string, libcxx/test/std/strings/basic.string/string.cons constexpr_initialization_stress.pass.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+45-0libcxx/test/std/strings/basic.string/string.cons/constexpr_initialization_stress.pass.cpp
+13-1libcxx/include/string
+58-12 files

LLVM/project 3e00dedlibcxx/test/std/strings/basic.string/string.cons constexpr_initialization_stress.pass.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+45-0libcxx/test/std/strings/basic.string/string.cons/constexpr_initialization_stress.pass.cpp
+45-01 files

LLVM/project d39613alibcxx/test/std/strings/basic.string/string.cons constexpr_initialization_stress.pass.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+45-0libcxx/test/std/strings/basic.string/string.cons/constexpr_initialization_stress.pass.cpp
+45-01 files

LLVM/project f014283mlir/lib/Bindings/Python Rewrite.cpp

[MLIR][Python] Move operation/dialect name retrieving as a util function (#184605)

We have a common pattern that retrieve an operation name or dialect name
from a `type` or `str` in the rewrite nanobind module, so better to make
it a common util function.

---------

Co-authored-by: Rolf Morel <rolfmorel at gmail.com>
DeltaFile
+24-28mlir/lib/Bindings/Python/Rewrite.cpp
+24-281 files

LLVM/project 0c61f96flang/lib/Lower/OpenMP ClauseProcessor.cpp, flang/test/Lower/OpenMP attach-and-ref-modifier.f90

[Flang][OpenMP][MLIR] Add attach and ref map type lowering to MLIR

This doesn't implement the functionality, just the relevant map type
lowering to MLIR's omp.map.info. The more complicated changes to
MapInfoFinalizationPass.cpp and OpenMPTOLLVMIRTranslation.cpp to support
attach map and the various ref/attach semantics will come in a subsequent
set of PRs. This just helps compartmentalize the changeset.
DeltaFile
+107-0flang/test/Lower/OpenMP/attach-and-ref-modifier.f90
+29-2flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+0-9flang/test/Lower/OpenMP/Todo/attach-modifier.f90
+136-113 files

LLVM/project 90ba731mlir/python/mlir/dialects ext.py

[MLIR][Python] Add `replace` parameter to `Dialect.load` (#184604)

In this PR, `replace` keyword parameter is added to `Dialect.load(..)`
in `mlir.dialects.ext`. It's to replace existing registered
operations/types/attrs.
DeltaFile
+15-7mlir/python/mlir/dialects/ext.py
+15-71 files

LLVM/project a74d909llvm/test/CodeGen/AArch64 clmul-fixed.ll clmul.ll, llvm/test/CodeGen/PowerPC clmul-vector.ll

Address comments

Created using spr 1.3.7
DeltaFile
+54,752-7,425llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+18,872-3,329llvm/test/CodeGen/RISCV/rvv/clmul-sdnode.ll
+3,105-3,034llvm/test/CodeGen/AArch64/clmul-fixed.ll
+2,338-2,209llvm/test/CodeGen/PowerPC/clmul-vector.ll
+1,223-1,171llvm/test/CodeGen/AArch64/clmul.ll
+730-700llvm/test/CodeGen/RISCV/rvv/nontemporal-vp-scalable.ll
+81,020-17,8681,092 files not shown
+120,486-31,1201,098 files

LLVM/project c32caeemlir/lib/Dialect/SPIRV/Transforms SPIRVConversion.cpp, mlir/test/Conversion/ConvertToSPIRV func-signature-vector-unroll.mlir

[mlir][spirv] Fix crash in FuncOpVectorUnroll for dynamic-shaped tensor args (#184626)

FuncOpVectorUnroll::matchAndRewrite iterates over all function arguments
and creates a zero-constant placeholder for any non-vector argument via
rewriter.getZeroAttr(type). For dynamically-shaped tensor types such as
tensor<?x2xi8>, getZeroAttr ultimately calls
DenseIntOrFPElementsAttr::getRaw which asserts that the type has a
static shape.

Add an early pre-check that returns failure() for any non-vector
argument with a dynamically-shaped type. This must be done before any IR
modifications are made, since returning failure() after inlining the
function body would leave the IR in an inconsistent state.

Fixes #148369
DeltaFile
+12-0mlir/test/Conversion/ConvertToSPIRV/func-signature-vector-unroll.mlir
+9-0mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
+21-02 files

LLVM/project d07ab18mlir/lib/IR Verifier.cpp, mlir/unittests/IR VerifierTest.cpp CMakeLists.txt

[mlir] Add cross-context checks to the IR verifier (#184627)

Detect IR where result types, operand types, or discardable attribute
values come from a different MLIRContext than the operation itself.
Mixing contexts is a latent use-after-free hazard when one context is
destroyed before the other; the verifier now reports a clear error
instead of silently allowing the invalid IR through.

Three new unit tests in MLIRIRTests cover each scenario.

Fix #61569
DeltaFile
+177-0mlir/unittests/IR/VerifierTest.cpp
+60-3mlir/lib/IR/Verifier.cpp
+1-0mlir/unittests/IR/CMakeLists.txt
+238-33 files

LLVM/project 61d8e5cmlir/lib/Dialect/Vector/Utils VectorUtils.cpp, mlir/test/Dialect/Affine/SuperVectorize vector_utils.mlir

[MLIR][Vector] Fix crash in operatesOnSuperVectorsOf on rank-mismatched shaped (#183967)

The `operatesOnSuperVectorsOf` function in VectorUtils.cpp contained an
assertion that fired when a `vector.transfer` operation's vector type
had a different rank (or non-divisible shape) from the sub-vector type
supplied by the caller:

  assert((ratio || \!mustDivide) &&
"vector.transfer operation in which super-vector size is not an"
         " integer multiple of sub-vector size");

This assertion was incorrect because the function's callers (e.g., the
affine super-vectorizer) legitimately pass transfer ops whose vector
type doesn't match the requested sub-vector shape. In those cases the
correct answer is simply that the op does not operate on a super-vector
of that sub-vector type, so `operatesOnSuperVectorsOf` should return
`false`.

Remove the assert return `false` when `computeShapeRatio` produces no

    [3 lines not shown]
DeltaFile
+3-15mlir/lib/Dialect/Vector/Utils/VectorUtils.cpp
+17-0mlir/test/Dialect/Affine/SuperVectorize/vector_utils.mlir
+20-152 files

LLVM/project 6b7a3b3clang-tools-extra/clang-tidy/performance FasterStringFindCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Teach `performance-faster-string-find` about `operator+=` (#182697)

This is a followup to #182633. Like in that PR, `operator+=` doesn't fit
with the check name, but the same optimization is applicable to it:
https://en.cppreference.com/w/cpp/string/basic_string/operator+=.html
DeltaFile
+13-6clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp
+11-0clang-tools-extra/test/clang-tidy/checkers/performance/faster-string-find.cpp
+2-2clang-tools-extra/docs/ReleaseNotes.rst
+2-2clang-tools-extra/docs/clang-tidy/checks/performance/faster-string-find.rst
+28-104 files

LLVM/project 4427575llvm/tools/dsymutil DebugMap.h

[dsymutil] Add DebugMapObjectFilter destructor (#184701)

Fixes #182083.
DeltaFile
+1-0llvm/tools/dsymutil/DebugMap.h
+1-01 files