LLVM/project 0b449f6flang/lib/Frontend CompilerInvocation.cpp, flang/test/Driver do_concurrent_to_omp_cli.f90

[flang] Fix abort on invalid -fdo-concurrent-to-openmp value. (#193929)

We observed that following command can cause an assertion fail
 `flang -fopenmp -fdo-concurrent-to-openmp=devic,e` <file>

It happened because `parseDoConcurrentMapping` reported an error but
still called `val.value()` on failure, tripping std::optional
assertions.

The fix is to return false on error and wire return into
`createFromArgs`.
DeltaFile
+5-4flang/lib/Frontend/CompilerInvocation.cpp
+5-0flang/test/Driver/do_concurrent_to_omp_cli.f90
+10-42 files

LLVM/project f844766llvm/lib/Target/AMDGPU AMDGPUMCInstLower.cpp SIInstrInfo.cpp

AMDGPU: Implement getInstSizeVerifyMode

Replace the custom instruction size check.
DeltaFile
+0-22llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
+7-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+3-0llvm/lib/Target/AMDGPU/SIInstrInfo.h
+10-223 files

LLVM/project 30aa92allvm/include/llvm/CodeGen TargetInstrInfo.h

Update llvm/include/llvm/CodeGen/TargetInstrInfo.h

Co-authored-by: Sam Elliott <aelliott at qti.qualcomm.com>
DeltaFile
+3-3llvm/include/llvm/CodeGen/TargetInstrInfo.h
+3-31 files

LLVM/project 480662clibcxx/docs/ReleaseNotes 23.rst, libcxx/include algorithm

implement fold_right
DeltaFile
+196-0libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/ranges.fold_right.pass.cpp
+52-0libcxx/include/__algorithm/ranges_fold.h
+8-0libcxx/include/algorithm
+3-4libcxx/test/benchmarks/algorithms/nonmodifying/fold.bench.cpp
+4-0libcxx/test/libcxx/algorithms/nodiscard.verify.cpp
+2-2libcxx/docs/ReleaseNotes/23.rst
+265-63 files not shown
+268-89 files

LLVM/project 13c7066llvm/lib/Target/Mips MipsBranchExpansion.cpp

Fix wrong mips iterator
DeltaFile
+1-1llvm/lib/Target/Mips/MipsBranchExpansion.cpp
+1-11 files

LLVM/project 0315b35llvm/include/llvm/CodeGen TargetInstrInfo.h, llvm/lib/CodeGen TargetInstrInfo.cpp

Bundle size in all targets
DeltaFile
+1-12llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
+1-12llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
+1-12llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+12-0llvm/lib/CodeGen/TargetInstrInfo.cpp
+0-12llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+8-0llvm/include/llvm/CodeGen/TargetInstrInfo.h
+23-4812 files not shown
+40-5518 files

LLVM/project 340fb67llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

CodeGen: Fix double counting bundles in inst size verification

The AMDGPU implementation handles bundles by summing the
member instructions. This was starting with the size of the
bundle instruction, then re-adding all of the same instructions.

This loop is over the iterator, not instr_iterator, so it should
not be looking through the bundled instructions. Most of the other
uses of getInstSizeInBytes are also on the iterator, not the
instr_iterator so the convention seems to be targets need to handle
BUNDLE correctly themselves.
DeltaFile
+0-7llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+0-71 files

LLVM/project deb84dbllvm/lib/Target/DirectX DXILOpBuilder.cpp, llvm/test/CodeGen/DirectX is_fpclass.ll BufferLoad.ll

[DirectX] Apply DXIL op fnattrs to declarations (#193622)

We need to apply DXIL op attributes to the functions themselves, and all
DXIL ops should have the `unwind` attribute. This matches the DXC
behaviour and what consumers like warp's GPU-based validation expect.

Fixes #193620
DeltaFile
+26-22llvm/test/CodeGen/DirectX/is_fpclass.ll
+26-18llvm/test/CodeGen/DirectX/BufferLoad.ll
+19-15llvm/lib/Target/DirectX/DXILOpBuilder.cpp
+17-16llvm/test/CodeGen/DirectX/umad.ll
+17-16llvm/test/CodeGen/DirectX/imad.ll
+16-15llvm/test/CodeGen/DirectX/CreateHandleFromBinding.ll
+121-10248 files not shown
+522-37854 files

LLVM/project 40abea9lldb/source/Expression IRMemoryMap.cpp, lldb/unittests/Expression IRMemoryMapTest.cpp CMakeLists.txt

Revert "[lldb] Skip memory region probing in FindSpace when process can't JIT…"

This reverts commit 95a960114e9227e7641fb8f5b2e016f1ef0aa298.
DeltaFile
+0-125lldb/unittests/Expression/IRMemoryMapTest.cpp
+1-7lldb/source/Expression/IRMemoryMap.cpp
+0-1lldb/unittests/Expression/CMakeLists.txt
+1-1333 files

LLVM/project eb17a2elibclc CMakeLists.txt

[libclc] Make sure PACKAGE_VERSION is set for libclc (#193966)

Summary:
This can be unset because CMake does not expose this as a raw variable
when you use the find_package interface. If it is not set as in the case
of standalone builds the clang resource directory won't be found
DeltaFile
+5-0libclc/CMakeLists.txt
+5-01 files

LLVM/project 1bd6f66llvm/include/llvm/Transforms/Utils LowerVectorIntrinsics.h, llvm/lib/CodeGen PreISelIntrinsicLowering.cpp TargetLoweringBase.cpp

Revert "[PreISelIntrinsicLowering] Expand binary elementwise intrinsics (#193552) (#193580) (#193990)

This reverts commit a1d11348aba4b70295ef9ada4a13a722455165d3.

Two problems have been identified:
- The expansion for powi was functionally wrong - the second argument
stales scalar even when the first is a vector.
- AArch64 uses the Expand option on libcalls to select vector libcalls
in some cases. The test coverage for this uses -start-after which
happens to miss this pass.
DeltaFile
+0-167llvm/test/Transforms/PreISelIntrinsicLowering/RISCV/expand-fp-math-binary.ll
+0-95llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-fp-math-binary.ll
+0-55llvm/lib/Transforms/Utils/LowerVectorIntrinsics.cpp
+0-16llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
+0-8llvm/lib/CodeGen/TargetLoweringBase.cpp
+0-4llvm/include/llvm/Transforms/Utils/LowerVectorIntrinsics.h
+0-3456 files

LLVM/project 0f861ecmlir/include/mlir/Dialect/LLVMIR NVVMOps.td, mlir/lib/Dialect/LLVMIR/IR NVVMDialect.cpp

[MLIR][NVVM] Add `nvvm.cos` OP (#193792)

Implement `nvvm.cos` with ftz flag
DeltaFile
+15-0mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+15-0mlir/test/Dialect/LLVMIR/nvvm-transcendentals.mlir
+14-0mlir/test/Target/LLVMIR/nvvm/transcendentals.mlir
+10-0mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
+54-04 files

LLVM/project 0642d03mlir/include/mlir/Dialect/LLVMIR NVVMOps.td

[MLIR][NVVM] Remove ptx version for consistency (#193991)
DeltaFile
+2-2mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+2-21 files

LLVM/project cd4ac81llvm/test/Transforms/SLPVectorizer/RISCV basic-strided-loads.ll

[SLP] Add new test for widened strided loads of > i8 width (#193901)

Currently we don't vectorize into strided loads as expected.
DeltaFile
+213-0llvm/test/Transforms/SLPVectorizer/RISCV/basic-strided-loads.ll
+213-01 files

LLVM/project 94cdc55mlir/lib/Dialect/XeGPU/Transforms XeGPUWgToSgDistribute.cpp, mlir/test/Dialect/XeGPU xegpu-wg-to-sg-unify-ops.mlir

[MLIR][XeGPU] Remove use-by-broadcast-only restriction for ShapeCast op in Wg-to-Sg distribution pass (#193640)

The WgToSgVectorShapeCastOp pattern previously required that
vector.shape_cast operations expanding unit dimensions could only be
used by vector.broadcast operations. This constraint was not necessary
anymore after the recent refectory.
DeltaFile
+24-0mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
+0-11mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
+24-112 files

LLVM/project 87a9cbacompiler-rt/cmake/Modules AllSupportedArchDefs.cmake, compiler-rt/lib/tysan tysan_platform.h

[compiler-rt][TySan] Add Hexagon target support (#191603)

Add shadow memory mapping for Hexagon (32-bit architecture) and enable
the TySan build for the Hexagon target.

Hexagon uses a 4-byte shadow entry (PtrShift=2) with the shadow region
at 0x80000000-0xBFFFFFFF (1GB). A 28-bit mask (kAppMemMsk) covers 256MB
of app address space; addresses differing only in bits 28-31 alias in
the shadow. kAppAddr is set to 0xC0000000 to size the mmap to exactly
the 1GB shadow region.
DeltaFile
+14-0compiler-rt/lib/tysan/tysan_platform.h
+1-1compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
+15-12 files

LLVM/project 6ab7fcallvm/lib/IR AutoUpgrade.cpp, llvm/test/Bitcode upgrade-aarch64-sve-intrinsics.ll

fixup! Fix MLIR and add autoupgrade code and test
DeltaFile
+10-0llvm/test/Bitcode/upgrade-aarch64-sve-intrinsics.ll
+4-4mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td
+7-0llvm/lib/IR/AutoUpgrade.cpp
+1-1mlir/test/Target/LLVMIR/arm-sve.mlir
+22-54 files

LLVM/project b093148libc/shared/math dmulf128.h dmull.h, libc/src/__support/math dmulf128.h dmull.h

[libc][math] Refactor dmul family to header-only (#182151)

Refactors the dmul math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182150

Target Functions:
  - dmulf128
  - dmull
DeltaFile
+31-0libc/src/__support/math/dmulf128.h
+28-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+29-0libc/shared/math/dmulf128.h
+25-0libc/src/__support/math/dmull.h
+23-0libc/shared/math/dmull.h
+19-0libc/src/__support/math/CMakeLists.txt
+155-17 files not shown
+173-1313 files

LLVM/project 25a035dclang/lib/AST/ByteCode Interp.h, clang/test/AST/ByteCode c.c

[clang][bytecode] Reject float-to-int casts on non-numbers (#193968)
DeltaFile
+6-0clang/lib/AST/ByteCode/Interp.h
+2-0clang/test/AST/ByteCode/c.c
+8-02 files

LLVM/project 0899273llvm/lib/Transforms/Vectorize LoopVectorize.cpp

[VPlan] Use early continue in ::buildVPlansWithVPRecipes (NFC). (#193979)

Reduce nesting by using early continue, split off from
https://github.com/llvm/llvm-project/pull/192868
DeltaFile
+25-22llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+25-221 files

LLVM/project 4837b0aclang/lib/Analysis/LifetimeSafety Checker.cpp, clang/test/Sema warn-lifetime-safety-suggestions.cpp

[LifetimeSafety] Suppress suggestion/inference for moved loans (#193899)

Fixes https://github.com/llvm/llvm-project/issues/193747
DeltaFile
+17-0clang/test/Sema/Inputs/lifetime-analysis.h
+17-0clang/test/Sema/warn-lifetime-safety-suggestions.cpp
+9-4clang/lib/Analysis/LifetimeSafety/Checker.cpp
+43-43 files

LLVM/project 785d724llvm/lib/Target/AMDGPU VOPDInstructions.td, llvm/test/MC/Disassembler/AMDGPU gfx1250_dasm_vopd3_unused_operands.txt

[AMDGPU][Disassembler] Permit unneeded VOPD3 operands to be non-zero (#193974)

Use ? instead of 0 in the tablegen definitions for those unused operands
of VOPD3 instructions.
This enables the instruction to be disassembled regardless of what bits
are in those fields, which helps diagnose broken code. Previously, the
disassembler would reject these.
DeltaFile
+36-0llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vopd3_unused_operands.txt
+4-4llvm/lib/Target/AMDGPU/VOPDInstructions.td
+40-42 files

LLVM/project c92bf56lldb/docs/use aarch64-linux.md, lldb/source/Plugins/ABI/AArch64 ABISysV_arm64.cpp

[lldb][AArch64][Linux] Rename "por" register to "por_el0" (#193983)

As agreed with my Arm colleagues working on GDB.

The suffix means we are matching the architectural name exactly, and
reducing confusion if you're
debuging multiple exception levels where there could be por_el<N> as
well.

In the process of updating the tests I found some
"register read" output has changed alignment so I
have fixed that too.
DeltaFile
+29-21lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
+11-11lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
+11-10lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
+6-6lldb/docs/use/aarch64-linux.md
+4-4lldb/test/API/linux/aarch64/permission_overlay/main.c
+3-3lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
+64-553 files not shown
+67-589 files

LLVM/project 52534a1clang/lib/AST StmtProfile.cpp, clang/test/Modules callable-require-clause-merge.cppm polluted-operator.cppm

Revert "[C++20] [Modules] Don't profiling the callee of CXXFoldExpr (#190732)" (#193975)

This reverts commit 4c2e49dc5ce3125be9fb07dcefe9be970ce739ec.

See the discussion in https://github.com/llvm/llvm-project/pull/193885
for detail
DeltaFile
+0-35clang/test/Modules/callable-require-clause-merge.cppm
+1-29clang/lib/AST/StmtProfile.cpp
+7-0clang/test/Modules/polluted-operator.cppm
+8-643 files

LLVM/project f1f2022libc/docs CMakeLists.txt, libc/docs/headers index.rst

[libc][docs] Add sys/uio.h implementation status (#122006) (#193980)

Add sys/uio.h implementation-status docs to llvm-libc.
DeltaFile
+5-0libc/utils/docgen/sys/uio.yaml
+1-0libc/docs/CMakeLists.txt
+1-0libc/docs/headers/index.rst
+7-03 files

LLVM/project 2168f4bflang/test/Lower pointer-assignments.f90 pointer-association-polymorphic.f90

[flang][NFC] Converted five tests from old lowering to new lowering (part 48) (#193889)

Tests converted from test/Lower: pointer-args-caller.f90,
pointer-assignments.f90, pointer-association-polymorphic.f90,
pointer-default-init.f90, pointer-disassociate.f90
DeltaFile
+159-146flang/test/Lower/pointer-assignments.f90
+66-86flang/test/Lower/pointer-association-polymorphic.f90
+38-36flang/test/Lower/pointer-disassociate.f90
+38-27flang/test/Lower/pointer-args-caller.f90
+5-4flang/test/Lower/pointer-default-init.f90
+306-2995 files

LLVM/project c49b177clang-tools-extra/clangd ModulesBuilder.cpp, clang-tools-extra/clangd/unittests PrerequisiteModulesTest.cpp

[clangd] [C++20] [Modules] Introduce GC for clangd built modules (#193973)

This patch introduces simple GC for clangd built module files to avoid
the clangd built module cache to increase infinitely.

The strategy is, in a clangd built module file cache, if the clangd
built module (we think all PCM files in clangd cache are built by
clangd) was not accessed in a time (by default 3 day, controlled by
--modules-builder-versioned-gc-threshold-seconds),clangd will remove it.

The strategy is not perfect. e.g., I heard in some systems, the atime
was forbid or not update. But given a trade off between usability and
maintainability. I feel the current stategy is fine.

AI assisted.
DeltaFile
+169-0clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
+89-0clang-tools-extra/clangd/ModulesBuilder.cpp
+258-02 files

LLVM/project 771440flibc/docs CMakeLists.txt, libc/docs/headers index.rst

[libc][docs] Add dlfcn.h implementation status (#122006) (#193972)

Add dlfcn.h implementation-status docs to llvm-libc.
DeltaFile
+21-0libc/utils/docgen/dlfcn.yaml
+1-0libc/docs/CMakeLists.txt
+1-0libc/docs/headers/index.rst
+23-03 files

LLVM/project c35ef8aflang/lib/Parser openmp-parsers.cpp, libclc CMakeLists.txt

Merge branch 'main' into users/usx95/04-24-shared_ptr_false_positive
DeltaFile
+10-10flang/lib/Parser/openmp-parsers.cpp
+1-1libclc/CMakeLists.txt
+11-112 files

LLVM/project 6c7d16clibclc CMakeLists.txt

[libclc] Use 'LLVM_DEFAULT_TARGET_TRIPLE' instead of 'LLVM_RUNTIMES_TARGET' (#193969)

Summary:
The 'LLVM_RUNTIMES_TARGET' variable is the raw value used by the LLVM
CMake. It can contain multilib arguments which will not compile when
used as a triple. The more canonical value is
`LLVM_DEFAULT_TARGET_TRIPLE`, which is used by flang-rt, libc, openmp,
etc.
DeltaFile
+1-1libclc/CMakeLists.txt
+1-11 files