LLVM/project 499ee50offload/test/jit save_image.c

[offload][lit] Fix XPASS on save_image.c on intelgpu (#213984)

XPASSing, see [here](https://github.com/llvm/llvm-project/pull/212384).

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
DeltaFile
+0-1offload/test/jit/save_image.c
+0-11 files

LLVM/project ca6883cllvm/test/Transforms/SLPVectorizer/X86 reused-mask-with-poison-index.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+4-4llvm/test/Transforms/SLPVectorizer/X86/reused-mask-with-poison-index.ll
+4-41 files

LLVM/project 9877464llvm/lib/IR Verifier.cpp

[Verifier] Clean up load atomic elementwise mem access sizes check (NFC) (#213864)

I refactored the `load atomic elementwise` check to have the same
cleaner pattern as `atomicrmw elementwise` and remove the `ScalarTy`
intermediate.

The previous code had this segment:

```
      if (VecTy) {
        checkAtomicMemAccessSize(ScalarTy, &LI);
        ScalarTy = VecTy->getElementType();
      }
```

Which is confusing because it's checking the atomic access size on the
whole vector and then assigning `ScalarTy` to the element type so that
the second check does the check on the element type. It's cleaner to
reverse this and have the first check operate on the element type so
that the second check always checks the entire type.
DeltaFile
+6-9llvm/lib/IR/Verifier.cpp
+6-91 files

LLVM/project c703445libcxx/include __locale, libcxx/include/__locale_dir utf8_conversions.h ctype_base.h

[libc++] Granularize <__locale> into __locale_dir (#213667)

The <__locale> header was a collection of distinct utilities. This patch
splits it up into granular headers under __locale_dir/. This patch
however does not use the granular headers from users of <__locale>: this
will be done in a separate patch.

Assisted by Claude
DeltaFile
+6-1,418libcxx/include/__locale
+576-0libcxx/include/__locale_dir/codecvt.h
+316-0libcxx/include/__locale_dir/ctype.h
+198-0libcxx/include/__locale_dir/locale.h
+189-0libcxx/include/__locale_dir/ctype_base.h
+177-0libcxx/include/__locale_dir/utf8_conversions.h
+1,462-1,4183 files not shown
+1,628-1,4199 files

LLVM/project de63e4fllvm/lib/IR Verifier.cpp, llvm/test/Assembler invalid-atomicrmw-elementwise.ll

[Verifier] Reject elementwise atomicrmw with sub-byte element type (#213753)

In https://github.com/llvm/llvm-project/pull/208510/ I accidentally
introduced a bug where I allowed sub-byte element types with atomicrmw
elementwise (i.e. `<8 x i1>`).

The LangRef states:

```
The access type
must then be a fixed vector type whose total bit width is a power of two and
whose element type is supported by the corresponding scalar atomic instruction.
```

The second part of this sentence rejects sub-byte element types.

The fix is that elementwise atomics need to additionally call
`checkAtomicMemAccessSize` on the vector element type (they already call
it on the whole vector).
DeltaFile
+16-0llvm/test/Assembler/invalid-atomicrmw-elementwise.ll
+2-0llvm/lib/IR/Verifier.cpp
+18-02 files

LLVM/project 69f0090utils/bazel/llvm-project-overlay/libc BUILD.bazel

[Bazel] Fixes 962d16f (#213956)

This fixes 962d16fd97793d22c42227e7fab397f62475c18b (#211365).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=962d16fd97793d22c42227e7fab397f62475c18b

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+1-01 files

LLVM/project b1b973allvm/test/CodeGen/AMDGPU occupancy-levels.ll

[AMDGPU][NFC] Add occupancy tests for GFX6/7/8 (#213914)
DeltaFile
+123-0llvm/test/CodeGen/AMDGPU/occupancy-levels.ll
+123-01 files

LLVM/project c5baf4ellvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-fneg.mir legalize-fabs.mir

AMDGPU/GlobalISel: Switch more FP opcodes to extended LLTs (part 5) (#213766)

Migrate G_FNEG, G_FABS, G_FSQRT, G_FFLOOR, G_FLDEXP, G_STRICT_FLDEXP,
G_FCMP, and G_IS_FPCLASS to extended LLTs.

Remove redundant scalar clamps that request unsupported f128-to-f64
narrowing.

Update the relevant MIR tests.
DeltaFile
+320-318llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ffloor.mir
+313-311llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fcmp.mir
+282-280llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir
+202-230llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir
+202-209llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mir
+58-75llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+1,377-1,4231 files not shown
+1,400-1,4427 files

LLVM/project f62556bllvm/docs LangRef.md, llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

[dyndbg][AsmPrinter] Add tail padding attributes (#194852)

"tail-pad-to-size"="n": Pad functions up to at least 'n' bytes.
"tail-pad-value"="n": Pad using the value 'n' (default 0).

This patch is to support dynamic debugging, RFC:
https://discourse.llvm.org/t/90113

In order to transfer control from an optimized to an unoptimized function a
debugger may patch the optimized version with a jump to the unoptimized
one.

This patch adds a mechanism to ensure there's enough padding between functions
to avoid patches overwriting unrelated code. It adds padding to the end of
functions smaller then 'n' bytes.

The `.fill` directive expression was discussed here:
https://discourse.llvm.org/t/89658

See the RFC and pull request for discussions of alternative approaches.
DeltaFile
+80-0llvm/test/CodeGen/X86/attr-tail-pad.ll
+23-0llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+17-0llvm/test/Verifier/invalid-tail-pad-attr.ll
+9-0llvm/docs/LangRef.md
+2-0llvm/lib/IR/Verifier.cpp
+131-05 files

LLVM/project 631331ellvm/test/CodeGen/AMDGPU buffer-fat-pointer-atomicrmw-fmin.ll buffer-fat-pointer-atomicrmw-fadd.ll

Rebase, address comments

Created using spr 1.3.7
DeltaFile
+3,809-3,814llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
+3,809-3,814llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
+3,465-3,511llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
+3,465-3,511llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
+3,299-3,240llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
+2,594-2,524llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
+20,441-20,4142,360 files not shown
+143,968-86,7622,366 files

LLVM/project 4625108llvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp, llvm/test/CodeGen/AMDGPU ucmp.ll scmp.ll

AMDGPU/GlobalISel: Legalize G_SCMP and G_UCMP
DeltaFile
+681-0llvm/test/CodeGen/AMDGPU/scmp.ll
+660-0llvm/test/CodeGen/AMDGPU/ucmp.ll
+2-0llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+1,343-03 files

LLVM/project ba9273allvm/lib/Target/RISCV RISCVTargetTransformInfo.cpp RISCVISelLowering.cpp, llvm/test/Analysis/CostModel/RISCV clmul.ll

[RISCV] Lower scalar `CLMUL` to `vclmul` if `clmul` instruction not available (#212616)

The `Zbc` and `Zvbc` extensions in RISC-V are independent, thus some
hardware may support `Zvbc` (`vclmul(h)`), but not `Zbc` (`clmul(h)`).
Rather than forcing scalar `CLMUL(H)` to expand in this case, simply
insert into a vector register, use `vclmul(h)`, and extract instead.

For now, only allow this for RV64, where `clmul` and `vclmul` both
operate on the same width. RV32 has the potential for similar tricks,
but it would be more complicated, and is left as a FIXME for now.
DeltaFile
+4,993-0llvm/test/CodeGen/RISCV/clmul.ll
+487-0llvm/test/CodeGen/RISCV/clmulh.ll
+64-0llvm/test/Analysis/CostModel/RISCV/clmul.ll
+32-6llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+18-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+5,594-65 files

LLVM/project 01c29d7lldb/test/API/commands/settings TestSettings.py, lldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild TestLocationsAfterRebuild.py

[lldb][test] Skip the API tests a WebAssembly target cannot support (#213788)

This is the final batch of skips. Together with a handful of local
changes to LLDB and WAMR, the test suite now passes when targeting
WebAssembly. Each test has a short comment explaining why it's skipped.
DeltaFile
+8-1lldb/test/API/tools/lldb-dap/restart/TestDAP_restart_console.py
+6-1lldb/test/API/tools/lldb-dap/module/TestDAP_module.py
+5-0lldb/test/API/commands/settings/TestSettings.py
+3-1lldb/test/API/lang/cpp/extern_c/TestExternCSymbols.py
+2-1lldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild/TestLocationsAfterRebuild.py
+3-0lldb/test/API/functionalities/breakpoint/thread_plan_user_breakpoint/TestThreadPlanUserBreakpoint.py
+27-452 files not shown
+107-1458 files

LLVM/project d50f61fmlir/include/mlir/Dialect/ArmSVE/Transforms Transforms.h, mlir/lib/Conversion/VectorToLLVM ConvertVectorToLLVMPass.cpp

[mlir][ArmSVE] move transform entry points into arm_sve namespace (NFC) (#213949)

This PR moves `populateLowerContractionToSVE*` entry points into the
`arm_sve` namespace for consistency with their Arm Neon counterparts.
DeltaFile
+5-4mlir/include/mlir/Dialect/ArmSVE/Transforms/Transforms.h
+3-2mlir/lib/Dialect/ArmSVE/Transforms/LowerContractToSVEPatterns.cpp
+2-2mlir/lib/Dialect/ArmSVE/TransformOps/ArmSVEVectorTransformOps.cpp
+2-2mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
+12-104 files

LLVM/project 88d7023lldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.h NativeRegisterContextLinux_arm64.cpp

convert SVE header
DeltaFile
+4-3lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+0-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+4-52 files

LLVM/project 44891adllvm/test/tools/dsymutil/ARM fat-dylib-update.test

[dsymutil][ARM][NFC] Require AArch64 for fat-dylib-update.test (#213836)

fat-test.arm.dylib contains armv7, armv7s, and arm64 slices, so the test
needs the AArch64 backend in addition to ARM.
DeltaFile
+1-1llvm/test/tools/dsymutil/ARM/fat-dylib-update.test
+1-11 files

LLVM/project a4f88felldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.h NativeRegisterContextLinux_arm64.cpp

convert ZA header
DeltaFile
+3-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+0-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+3-42 files

LLVM/project fe624falldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.h NativeRegisterContextLinux_arm64.cpp

convert PAC
DeltaFile
+2-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+0-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+2-42 files

LLVM/project 64092c3lldb/source/ValueObject DILEval.cpp

Remove C++ mentions and rephrase the comment
DeltaFile
+4-7lldb/source/ValueObject/DILEval.cpp
+4-71 files

LLVM/project 660ee62lldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.h NativeRegisterContextLinux_arm64.cpp

convert MTE
DeltaFile
+8-6lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+0-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+8-82 files

LLVM/project d12470elldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.h NativeRegisterContextLinux_arm64.cpp

convert TLS
DeltaFile
+8-6lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+0-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+8-82 files

LLVM/project c6ee2ddlldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.h NativeRegisterContextLinux_arm64.cpp

convert ZT
DeltaFile
+8-6lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+0-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+8-82 files

LLVM/project 4cca95alldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.h NativeRegisterContextLinux_arm64.cpp

convert SVE
DeltaFile
+12-11lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+0-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+12-132 files

LLVM/project ea43c36llvm/test/Transforms/LoopVectorize runtime-checks-diff-wrap-i128-address-space.ll runtime-checks-diff-i128-address-space.ll

Rename test files/move comment to the test function (instead of module-level)
DeltaFile
+0-49llvm/test/Transforms/LoopVectorize/runtime-checks-diff-wrap-i32-address-space.ll
+48-0llvm/test/Transforms/LoopVectorize/runtime-checks-diff-i32-address-space.ll
+0-42llvm/test/Transforms/LoopVectorize/runtime-checks-diff-wrap-i128-address-space.ll
+42-0llvm/test/Transforms/LoopVectorize/runtime-checks-diff-i128-address-space.ll
+90-914 files

LLVM/project a93306bllvm/test/Transforms/LoopVectorize runtime-checks-diff-wrap-i32-address-space.ll

Fix typo in a comment
DeltaFile
+3-3llvm/test/Transforms/LoopVectorize/runtime-checks-diff-wrap-i32-address-space.ll
+3-31 files

LLVM/project 1df3181llvm/lib/Transforms/Utils LoopUtils.cpp, llvm/test/Transforms/LoopVectorize runtime-checks-diff-wrap-i128-address-space.ll

Fix overflow in IC*Stride calculation
DeltaFile
+13-9llvm/lib/Transforms/Utils/LoopUtils.cpp
+1-7llvm/test/Transforms/LoopVectorize/runtime-checks-diff-wrap-i128-address-space.ll
+14-162 files

LLVM/project 1347bcflldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.h NativeRegisterContextLinux_arm64.cpp

convert fpmr
DeltaFile
+8-6lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+0-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+8-82 files

LLVM/project 3a7a301llvm/lib/Transforms/Utils LoopUtils.cpp, llvm/test/Transforms/LoopVectorize runtime-checks-difference-scalable.ll

AccessSize must be part of the key
DeltaFile
+128-0llvm/test/Transforms/LoopVectorize/runtime-checks-difference-scalable.ll
+3-2llvm/lib/Transforms/Utils/LoopUtils.cpp
+131-22 files

LLVM/project b9d8c2ellvm/test/Transforms/LoopVectorize runtime-checks-diff-wrap-i32-address-space.ll runtime-checks-diff-wrap-i128-address-space.ll

Add test showing how we incorrectly truncate `ThresholdMinusOne`

AI-generated, then reviewed/modified manually.
DeltaFile
+48-0llvm/test/Transforms/LoopVectorize/runtime-checks-diff-wrap-i128-address-space.ll
+9-8llvm/test/Transforms/LoopVectorize/runtime-checks-diff-wrap-i32-address-space.ll
+57-82 files

LLVM/project a4cc79dlldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.h NativeRegisterContextLinux_arm64.cpp

convert GCS
DeltaFile
+8-6lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+0-2lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+8-82 files