LLVM/project b32e067compiler-rt/lib/ubsan_minimal ubsan_minimal_handlers.cpp

[compiler-rt] [UBSan] Fix missing preserve handlers (#170788)

DeltaFile
+3-3compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
+3-31 files

LLVM/project 79620d8libclc/clc/include/clc/float definitions.h, libclc/opencl/include/clc/opencl as_type.h types.h

[libclc] Add OpenCL atomic_*_explicit builtins (#168318)

Implement atomic_*_explicit (e.g. atomic_store_explicit) with
memory_order plus optional memory_scope.

OpenCL memory_order maps 1:1 to Clang (e.g. OpenCL memory_order_relaxed
== Clang __ATOMIC_RELAXED), so we pass it unchanged to clc_atomic_*
function which forwards to Clang _scoped_atomic* builtins.

Other changes:
* Add __opencl_get_clang_memory_scope helper in opencl/utils.h (OpenCL
scope -> Clang scope).
* Correct atomic_compare_exchange return type to bool.
* Fix atomic_compare_exchange to return true when value stored in the
pointer equals expected value.
* Remove volatile from CLC functions so that volatile isn't present in
LLVM IR.
* Add '-fdeclare-opencl-builtins -finclude-default-header' flag to
include

    [3 lines not shown]
DeltaFile
+115-19libclc/opencl/lib/generic/atomic/atomic_def.inc
+0-92libclc/opencl/include/clc/opencl/as_type.h
+82-9libclc/opencl/include/clc/opencl/atomic/atomic_decl.inc
+48-0libclc/clc/include/clc/float/definitions.h
+0-48libclc/opencl/include/clc/opencl/types.h
+0-18libclc/opencl/include/clc/opencl/synchronization/cl_mem_fence_flags.h
+245-18658 files not shown
+367-34064 files

LLVM/project 7f01d72llvm/unittests/IR ConstantsTest.cpp

[NFC] Fix memory leak in ConstantsTest (#170789)

Leak introduced with #164381.
DeltaFile
+1-0llvm/unittests/IR/ConstantsTest.cpp
+1-01 files

LLVM/project 711edb8compiler-rt/lib/ubsan_minimal ubsan_minimal_handlers.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+3-3compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
+3-31 files

LLVM/project 40ac8ebcompiler-rt/lib/ubsan_minimal ubsan_minimal_handlers.cpp, compiler-rt/test/ubsan_minimal/TestCases handlers-link.c

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+170-0compiler-rt/test/ubsan_minimal/TestCases/handlers-link.c
+3-3compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
+173-32 files

LLVM/project 9342d03clang-tools-extra/clang-tidy/readability UseStdMinMaxCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Preserve comments in `readability-use-std-min-max` (#169908)

Closes [#121613](https://github.com/llvm/llvm-project/issues/121613)
DeltaFile
+96-0clang-tools-extra/test/clang-tidy/checkers/readability/use-std-min-max.cpp
+60-8clang-tools-extra/clang-tidy/readability/UseStdMinMaxCheck.cpp
+5-0clang-tools-extra/docs/ReleaseNotes.rst
+161-83 files

LLVM/project 5deea85llvm/test/TableGen RegClassByHwMode.td RegClassByHwModeErrors.td, llvm/test/TableGen/Common RegClassByHwModeCommon.td

[𝘀𝗽𝗿] initial version

Created using spr 1.3.8-beta.1
DeltaFile
+6-53llvm/test/TableGen/RegClassByHwMode.td
+47-0llvm/test/TableGen/RegClassByHwModeErrors.td
+38-0llvm/test/TableGen/Common/RegClassByHwModeCommon.td
+16-16llvm/utils/TableGen/Common/CodeGenInstAlias.cpp
+8-6llvm/utils/TableGen/Common/CodeGenTarget.cpp
+8-6llvm/utils/TableGen/CompressInstEmitter.cpp
+123-813 files not shown
+137-859 files

LLVM/project 329a308llvm/utils/TableGen/Common CodeGenInstAlias.cpp CodeGenTarget.cpp

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

Created using spr 1.3.8-beta.1

[skip ci]
DeltaFile
+6-11llvm/utils/TableGen/Common/CodeGenInstAlias.cpp
+6-4llvm/utils/TableGen/Common/CodeGenTarget.cpp
+1-0llvm/utils/TableGen/Common/CodeGenTarget.h
+13-153 files

LLVM/project 2110db0lldb/include/lldb lldb-enumerations.h, lldb/include/lldb/Interpreter CommandOptionArgumentTable.h

Add a `breakpoint add` command to fix the option-madness that is `breakpoint set` (#156067)

Someone came up with a clever idea for a new breakpoint type, but we
couldn't figure out how to add it in an ergonomic way because
`breakpoint set` has used up all the short-option characters. And even
if they did find a way to add it, the help for `break set` is so
confusing - because of the way it is implemented - that very few people
would detect the addition.

The basic problem is that `break set` distinguishes amongst the
fundamental breakpoint types it offers by which "required option" you
provide. If you pass a `-a` you are setting an address breakpoint, if
`-n`, `-F`, etc. a symbol name based breakpoint. And so forth. That is
however pretty hard to discern from the option grouping printing from
`help break set`. `break set` also suffers from the problem that it uses
common options in different ways depending on which "required" option is
present, which makes documenting the various behaviors difficult. And as
we run out of single letters it makes extending it difficult to
impossible.

    [130 lines not shown]
DeltaFile
+1,277-73lldb/source/Commands/CommandObjectBreakpoint.cpp
+126-0lldb/source/Commands/Options.td
+51-10lldb/packages/Python/lldbsuite/test/lldbutil.py
+42-0lldb/source/Target/Language.cpp
+23-0lldb/include/lldb/Interpreter/CommandOptionArgumentTable.h
+18-0lldb/include/lldb/lldb-enumerations.h
+1,537-837 files not shown
+1,555-9113 files

LLVM/project f50a079llvm/utils/release build_llvm_release.bat

build_llvm_release.bat: Use absolute path when building the tarball (#169951)

The rest of the script uses an absolute path for the llvm source
directory too.
DeltaFile
+1-1llvm/utils/release/build_llvm_release.bat
+1-11 files

LLVM/project fb7a0a7llvm/unittests/IR ConstantsTest.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+1-0llvm/unittests/IR/ConstantsTest.cpp
+1-01 files

LLVM/project 5c289daclang/lib/Headers opencl-c.h

[Clang][OpenCL] Add support for the cl_intel_subgroup_buffer_prefetch (#170532)

The commit adds support for the cl_intel_subgroup_buffer_prefetch OpenCL
extension. The extension introduces a new built-in functions that allow
prefetching data from a global memory to caches as a subgroup-level
operation.

The extension is defined here:
https://registry.khronos.org/OpenCL/extensions/intel/cl_intel_subgroup_buffer_prefetch.html

---------

Co-authored-by: Mészáros Gergely <maetveis at gmail.com>
DeltaFile
+30-0clang/lib/Headers/opencl-c.h
+30-01 files

LLVM/project 6d60d3dllvm/lib/Target/WebAssembly WebAssemblyISelLowering.cpp WebAssemblyInstrRef.td, llvm/test/CodeGen/WebAssembly addrspacecast-funcref.ll

Revert "[WebAssembly] Implement addrspacecast to funcref" (#170785)

Reverts llvm/llvm-project#166820
There was a failure in the ENABLE_EXPENSIVE_CHECKS configuration.
DeltaFile
+0-58llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
+0-55llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll
+1-6llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td
+0-1llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
+1-1204 files

LLVM/project b75e564llvm/docs RISCVUsage.rst

[RISCV][docs] Update url for SpacemiT xsmtvdot (#170598)

DeltaFile
+1-1llvm/docs/RISCVUsage.rst
+1-11 files

LLVM/project 2329002compiler-rt/lib/ubsan_minimal ubsan_minimal_handlers.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+3-3compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
+3-31 files

LLVM/project a2032f5clang-tools-extra/clang-doc Representation.h Representation.cpp

[clang-doc] Reorder struct fields to have less padding (#170222)

DeltaFile
+68-60clang-tools-extra/clang-doc/Representation.h
+1-1clang-tools-extra/clang-doc/Representation.cpp
+69-612 files

LLVM/project 8126baaclang-tools-extra/clang-doc BitcodeReader.cpp BitcodeReader.h

[clang-doc] Remove uses of consumeError (#168759)

In BitcodeReader, we were using consumeError(), which drops the error
and hides it from normal usage. To avoid that, we can just slightly
tweak the API to return an Expected<T>, and propagate the error
accordingly.
DeltaFile
+21-27clang-tools-extra/clang-doc/BitcodeReader.cpp
+1-1clang-tools-extra/clang-doc/BitcodeReader.h
+22-282 files

LLVM/project 3bea66bllvm/lib/Target/WebAssembly WebAssemblyISelLowering.cpp WebAssemblyInstrRef.td, llvm/test/CodeGen/WebAssembly addrspacecast-funcref.ll

Revert "[WebAssembly] Implement addrspacecast to funcref (#166820)"

This reverts commit d3b9fd0f86d2936b7ed8446f6d54817772753f52.
DeltaFile
+0-58llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
+0-55llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll
+1-6llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td
+0-1llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
+1-1204 files

LLVM/project da06d9ellvm/lib/CodeGen CFIInstrInserter.cpp

[CodeGen] Use insert idiom in CFIInstrInserter instead of find [nfc] (#170760)

DeltaFile
+2-4llvm/lib/CodeGen/CFIInstrInserter.cpp
+2-41 files

LLVM/project be79a0dflang/lib/Lower/OpenMP ClauseProcessor.cpp OpenMP.cpp, flang/test/Lower/OpenMP target.f90

Revert "[Flang][OpenMP] Add lowering support for is_device_ptr clause" (#170778)

Reverts llvm/llvm-project#169331
DeltaFile
+0-60offload/test/offloading/fortran/target-is-device-ptr.f90
+27-18flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+4-38flang/lib/Lower/OpenMP/OpenMP.cpp
+0-30flang/test/Lower/OpenMP/target.f90
+7-18mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+0-17mlir/test/Target/LLVMIR/omptarget-llvm.mlir
+38-1815 files not shown
+51-19911 files

LLVM/project d3b9fd0llvm/lib/Target/WebAssembly WebAssemblyISelLowering.cpp WebAssemblyInstrRef.td, llvm/test/CodeGen/WebAssembly addrspacecast-funcref.ll

[WebAssembly] Implement addrspacecast to funcref (#166820)

Adds lowering of `addrspacecast [0 -> 20]` to allow easy conversion of
function pointers to Wasm `funcref`

When given a constant function pointer, it lowers to a direct
`ref.func`. Otherwise it lowers to a `table.get` from
`__indirect_function_table` using the provided pointer as the index.
DeltaFile
+58-0llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
+55-0llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll
+6-1llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td
+1-0llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
+120-14 files

LLVM/project 8f9ef4bllvm/lib/Target/RISCV RISCVInstrInfo.cpp

[RISCV] Add OPERAND_AVL to RISCVInstrInfo::verifyInstruction. (#170770)

DeltaFile
+12-0llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
+12-01 files

LLVM/project 295f505flang/lib/Lower/OpenMP ClauseProcessor.cpp OpenMP.cpp, flang/test/Lower/OpenMP target.f90

Revert "[Flang][OpenMP] Add lowering support for is_device_ptr clause (#169331)"

This reverts commit a77c4948a5681984accd3c6d35fb51c1c5571a50.
DeltaFile
+0-60offload/test/offloading/fortran/target-is-device-ptr.f90
+27-18flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+4-38flang/lib/Lower/OpenMP/OpenMP.cpp
+0-30flang/test/Lower/OpenMP/target.f90
+7-18mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+0-17mlir/test/Target/LLVMIR/omptarget-llvm.mlir
+38-1815 files not shown
+51-19911 files

LLVM/project 89ae817libc/config/linux/arm config.json, libc/config/linux/riscv config.json

Add commas for riscv and arm configs. (#170776)

Fix for breakage introduced by pr170738
DeltaFile
+1-1libc/config/linux/arm/config.json
+1-1libc/config/linux/riscv/config.json
+2-22 files

LLVM/project bceeae8clang/lib/CodeGen CGObjCRuntime.cpp CGObjCRuntime.h

Add a cache to remember all classes that should've been realized by load
DeltaFile
+37-14clang/lib/CodeGen/CGObjCRuntime.cpp
+10-0clang/lib/CodeGen/CGObjCRuntime.h
+47-142 files

LLVM/project ed7e66alibc/config config.json, libc/config/linux/riscv config.json

Reland Refactor WIDE_READ to allow finer control over high-performance function selection (#165613) (#170738)

[Previous commit had an incorrect default case when
FIND_FIRST_CHARACTER_WIDE_READ_IMPL was not specified in config.json.
This PR is identical to that one with one line fixed.]

As we implement more high-performance string-related functions, we have
found a need for better control over their selection than the big-hammer
LIBC_CONF_STRING_LENGTH_WIDE_READ. For example, I have a memchr
implementation coming, and unless I implement it in every variant, a
simple binary value doesn't work.

This PR makes gives finer-grained control over high-performance
functions than the generic LIBC_CONF_UNSAFE_WIDE_READ option. For any
function they like, the user can now select one of four implementations
at build time:

1. element, which reads byte-by-byte (or wchar by wchar)
2. wide, which reads by unsigned long

    [11 lines not shown]
DeltaFile
+213-0libc/src/string/string_length.h
+8-156libc/src/string/string_utils.h
+10-6libc/src/string/memory_utils/aarch64/inline_strlen.h
+9-5libc/src/string/memory_utils/x86_64/inline_strlen.h
+8-3libc/config/config.json
+5-2libc/config/linux/riscv/config.json
+253-1727 files not shown
+275-18513 files

LLVM/project 0ecb1b2clang/test/CodeGenObjC expose-direct-method-opt-class-realization.m

simplify tests
DeltaFile
+33-51clang/test/CodeGenObjC/expose-direct-method-opt-class-realization.m
+33-511 files

LLVM/project 5defa85mlir/lib/Dialect/OpenACC/IR OpenACC.cpp, mlir/test/Dialect/OpenACC invalid.mlir

[mlir][acc] Improve verifier messages for device_type duplicates (#170773)

This improves the acc dialect IR verifier messages when duplicate
device_types are found by also noting which device_type is the one
causing the error.
DeltaFile
+37-21mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+41-3mlir/test/Dialect/OpenACC/invalid.mlir
+78-242 files

LLVM/project 834b8b7mlir/include/mlir/Dialect/OpenACC OpenACCOps.td OpenACC.h, mlir/lib/Dialect/OpenACC/Transforms ACCImplicitDeclare.cpp

[acc] Add acc.specialized_routine attribute (#170766)

Introduce a new attribute `acc.specialized_routine` to mark functions
that have been specialized from a host function marked with
`acc.routine_info`.

The new attribute captures:
- A SymbolRefAttr referencing the original `acc.routine` operation
- The parallelism level via the new `ParLevel` enum
- The original function name (since specialized functions may be
renamed)

Example - before specialization:
```
acc.routine @routine_gang func(@foo) gang
acc.routine @routine_vector func(@foo) vector

func.func @foo() attributes {
  acc.routine_info = #acc.routine_info<[@routine_gang, @routine_vector]>

    [26 lines not shown]
DeltaFile
+78-0mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
+53-0mlir/test/Dialect/OpenACC/ops.mlir
+14-3mlir/include/mlir/Dialect/OpenACC/OpenACC.h
+3-1mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitDeclare.cpp
+148-44 files

LLVM/project 02ca50ellvm/lib/CodeGen ExpandMemCmp.cpp, llvm/test/Transforms/ExpandMemCmp/AArch64 memcmp.ll

[profcheck] Fix missing profile metadata in ExpandMemCmp (#169979)

This patch fixes a profile metadata missing in the `ExpandMemCmp` pass
when it expanding `memcmp` calls. This would cause branches between
different blocks to lose their profile data, potentially leading to
suboptimal code generation.

The patch updates the `ExpandMemCmp` pass to set branch weights to a
default `unknown`(50/50 weights) value when a profile is available. This
prevents the expansion from making a previously profiled branch
unprofiled.

The patch also includes updates to the tests to reflect the new branch
weights.

Co-authored-by: Jin Huang <jingold at google.com>
DeltaFile
+19-7llvm/test/Transforms/ExpandMemCmp/X86/memcmp.ll
+14-6llvm/test/Transforms/ExpandMemCmp/AArch64/memcmp.ll
+11-4llvm/test/Transforms/ExpandMemCmp/X86/memcmp-x32.ll
+7-0llvm/lib/CodeGen/ExpandMemCmp.cpp
+3-3llvm/utils/profcheck-xfail.txt
+54-205 files