LLVM/project 5c2126fllvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp

[SPIRV][NFC] Merge Subgroup Reduce into uniform selector (#178802)

The ReduceMax, ReduceMin, and ReduceSum selectors were all doing the
samething with the exception of which opcode they were using.

This change unifies these implementations and allows pick the opcode via
a helper lambda.
DeltaFile
+42-54llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+42-541 files

LLVM/project b560203mlir/test/Dialect/MemRef high-rank-overflow.mlir

[MLIR] Disable high-rank-overflow with UBSan (#178994)

See discussion in #178395
DeltaFile
+2-0mlir/test/Dialect/MemRef/high-rank-overflow.mlir
+2-01 files

LLVM/project ef720acllvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp

[AMDGPU][SIInsertWaitcnts][NFC] Use loop to set Wait entries (#178764)

Please note that the original code was skipping STORE_CNT but this one
is not.
DeltaFile
+7-26llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+7-261 files

LLVM/project 59f8e75clang/lib/Driver/ToolChains Darwin.cpp

[clang][driver][darwin] Tweak the use after scope fix in Darwin driver toolchain (#178981)

It's ever so slightly cleaner looking and less error prone to make the
SmallVector hold std::string instead of making a local just for the
version string.
DeltaFile
+2-3clang/lib/Driver/ToolChains/Darwin.cpp
+2-31 files

LLVM/project 6a9aed5compiler-rt/lib/sanitizer_common sanitizer_posix_libcdep.cpp

[compiler-rt][common] Don't try to unmap non-page aligned pointers

When the sanitizer hasn't mapped the alternate signal stack, but the
host program has (like LLVM), the stack's base pointer may not be
aligned, if it were allocated via malloc, and thus wouldn't be safe to
unmap anyway. A solution that doesn't unmap the alternate stack unless
the sanitizer had mapped it in the first place will take more time to
design. For now, we can just avoid calling munmap on pointers without
the correct alignment.
DeltaFile
+2-1compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp
+2-11 files

LLVM/project 2f97c47flang/lib/Optimizer/OpenACC/Support FIROpenACCOpsInterfaces.cpp, flang/test/Transforms licm.fir

[flang,openacc] Fixed canMoveOutOf() for acc.loop. (#178971)

We should check all data operands, and do not exit after the first one.
DeltaFile
+33-0flang/test/Transforms/licm.fir
+5-4flang/lib/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.cpp
+38-42 files

LLVM/project a01b91fflang/include/flang/Parser options.h, flang/lib/Parser parsing.cpp Fortran-parsers.cpp

[flang] Add support for additional compiler directive sentinel (#178941)

This patch allows to set up additional compiler directive sentinel in
addition to the default `!dir$`. Some user code could use other vendor
specific compiler directive sentinel and this solution allows to add
them to the parser options.
DeltaFile
+14-0flang/test/Parser/compiler-directive-sentinel.f90
+8-0flang/tools/bbc/bbc.cpp
+3-0flang/lib/Parser/parsing.cpp
+1-1flang/lib/Parser/Fortran-parsers.cpp
+1-0flang/include/flang/Parser/options.h
+27-15 files

LLVM/project 78ab5efmlir/test/Dialect/MemRef high-rank-overflow.mlir

actually xfail

Created using spr 1.3.6
DeltaFile
+1-1mlir/test/Dialect/MemRef/high-rank-overflow.mlir
+1-11 files

LLVM/project 5632c25mlir/test/Dialect/MemRef high-rank-overflow.mlir

[𝘀𝗽𝗿] initial version

Created using spr 1.3.6
DeltaFile
+2-0mlir/test/Dialect/MemRef/high-rank-overflow.mlir
+2-01 files

LLVM/project 629236allvm/test/CodeGen/AMDGPU fneg-combines.f16.ll fneg-combines.ll, llvm/test/CodeGen/RISCV fpclamptosat.ll

Merge branch 'main' into users/chapuni/mcdc/nest/covmapdesc
DeltaFile
+56,025-0llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+14,154-5,110llvm/test/CodeGen/RISCV/rvv/clmul-sdnode.ll
+850-5,393llvm/test/CodeGen/RISCV/fpclamptosat.ll
+2,230-3,501llvm/test/CodeGen/AMDGPU/fneg-combines.f16.ll
+2,626-2,303llvm/test/CodeGen/AMDGPU/fneg-combines.ll
+4,716-0llvm/test/MC/AMDGPU/gfx13_asm_sop2.s
+80,601-16,307959 files not shown
+134,810-36,629965 files

LLVM/project 7e48b14llvm/lib/CodeGen/SelectionDAG SelectionDAGISel.cpp

[SelectionDAGISel] Avoid unnecessary MatchScope copy. NFC (#178957)

Add the MatchScope to the vector first, then write its fields.
DeltaFile
+1-2llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+1-21 files

LLVM/project 9926b04llvm/test/Transforms/VectorCombine/X86 binop-shuffle-mask1-cm.ll

VectorCombine: Mark the test `+asserts` (fixup for #178072)
DeltaFile
+1-0llvm/test/Transforms/VectorCombine/X86/binop-shuffle-mask1-cm.ll
+1-01 files

LLVM/project b847795clang/test/ClangScanDeps prune-scanning-modules.m

[ClangScanDeps] Add test that proves pruning happens on scanning pcms (#178733)

The test was adapted from clang/test/Modules/prune.m
DeltaFile
+62-0clang/test/ClangScanDeps/prune-scanning-modules.m
+62-01 files

LLVM/project 49c3c4eclang/lib/CIR/CodeGen CIRGenModule.cpp

fmt yo
DeltaFile
+1-1clang/lib/CIR/CodeGen/CIRGenModule.cpp
+1-11 files

LLVM/project 4351184clang/lib/CIR/CodeGen CIRGenModule.cpp, clang/test/CIR/CodeGen/CUDA filter-decl.cu

address comments
DeltaFile
+32-14clang/test/CIR/CodeGen/CUDA/filter-decl.cu
+2-9clang/lib/CIR/CodeGen/CIRGenModule.cpp
+34-232 files

LLVM/project 96b46falld/MachO SectionPriorities.cpp, lld/test/MachO order-file-cstring.s

[lld][MachO] Accept hex format for cstring hashes in order file (#178933)

Support both decimal and hexadecimal formats for cstring hashes in
the order file. Hex values must use the 0x prefix (case insensitive).
    
    Examples:
      CSTR;1234567890    (decimal)
      CSTR;0x499602D2    (hex)

Co-authored-by: Sharon Xu <sharonxu at fb.com>
DeltaFile
+4-4lld/test/MachO/order-file-cstring.s
+3-1lld/MachO/SectionPriorities.cpp
+7-52 files

LLVM/project 202f45cclang/lib/Driver/ToolChains Darwin.cpp

[clang][Driver] Fix use after scope in darwin driver (#178967)

`Version.getAsString()` returns an `std::string`, and thus the
`StringRef` points to an invalid location when pushed into the
Components vector. This just keeps the temporary alive for the
new string to be generated, to fix the ASAN failure after #176541
DeltaFile
+2-1clang/lib/Driver/ToolChains/Darwin.cpp
+2-11 files

LLVM/project a1993f2mlir/include/mlir/Bindings/Python IRCore.h

Narrow down crash on Windows CI
DeltaFile
+1-1mlir/include/mlir/Bindings/Python/IRCore.h
+1-11 files

LLVM/project f3d81d4llvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp, llvm/lib/Target/RISCV/MCTargetDesc RISCVBaseInfo.h

[RISCV] Rename ConstraintMask->RVVConstraintMask. NFC (#178963)

This matches how we refer to it in tablegen.
DeltaFile
+6-6llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
+1-1llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+7-72 files

LLVM/project 485eb62llvm/lib/Transforms/IPO AttributorAttributes.cpp, llvm/test/Transforms/Attributor nofpclass.ll

Attributor: Use anchor scope for SimplifyQuery context (#178958)

This was asserting in computeKnownFPClass when a dominator tree
check happened across functions.

Fixes #178954
DeltaFile
+80-38llvm/test/Transforms/Attributor/nofpclass.ll
+1-1llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+81-392 files

LLVM/project d944d16clang/lib/Driver/ToolChains Darwin.cpp

[clang][Driver] Fix use after scope in darwin driver

`Version.getAsString()` returns an `std::string`, and thus the
`StringRef` points to an invalid location when pushed into the
Components vector. This just keeps the temporary alive for the
new string to be generated, to fix the ASAN failure after #176541
DeltaFile
+2-1clang/lib/Driver/ToolChains/Darwin.cpp
+2-11 files

LLVM/project 7639d21llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 cls.ll

[AArch64] Convert CLS intrinsics to use ISD::CTLS (#178885)

This patch converts AArch64 CLS intrinsics (aarch64_neon_cls) to use the
generic ISD::CTLS node.

- aarch64_neon_cls: Lowered to ISD::CTLS, pattern-matched to CLS
instruction
- Set ISD::CTLS as Legal for NEON vector types (v8i8, v16i8, v4i16,
v8i16, v2i32, v4i32)

Also adds generic CTLS expansion support:
- ExpandIntRes_CTLS in LegalizeIntegerTypes for i64->i32 type expansion
- expandCTLS in TargetLowering for targets without native CLS
instruction

Part of: https://github.com/llvm/llvm-project/issues/174337
DeltaFile
+14-0llvm/test/CodeGen/AArch64/cls.ll
+9-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+1-1llvm/lib/Target/AArch64/AArch64InstrInfo.td
+24-13 files

LLVM/project 09f9a28llvm/lib/Target/SystemZ SystemZInstrInfo.cpp SystemZScheduleZ14.td, llvm/test/CodeGen/SystemZ copy-physreg-vr16.ll

[SystemZ] Bugfix: Add VLR16 to SystemZInstrInfo::copyPhysReg(). (#178932)

Support COPYs involving higher FP16 regs (like F24H) with a new pseudo
instruction 'VLR16'.

This is needed with -O0/regalloc=fast, and probably in more cases as
well.

Fixes #178788.
DeltaFile
+35-0llvm/test/CodeGen/SystemZ/copy-physreg-vr16.ll
+2-0llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+1-1llvm/lib/Target/SystemZ/SystemZScheduleZ14.td
+1-1llvm/lib/Target/SystemZ/SystemZScheduleZ15.td
+1-1llvm/lib/Target/SystemZ/SystemZScheduleZ16.td
+1-1llvm/lib/Target/SystemZ/SystemZScheduleZ17.td
+41-43 files not shown
+44-59 files

LLVM/project 6ca8f79lldb/test/API/tools/lldb-dap/variables TestDAP_variables.py, lldb/tools/lldb-dap Variables.cpp JSONUtils.cpp

lldb-dap: Stop using replicated variable ids (#124232)

Closes #119784 

Probably closes #147105 as well, but I couldn't test due to #156473: 

This PR fixes two bugs:
1. It generates unique variable reference IDs per suspended debuggee
state.
2. It stores all created variables in a stopped state instead of
dropping variables in unselected scopes. So it can properly handle all
scope/variable requests

It does this by storing all variables in their respective scopes and
using that mapping in request handlers that relied on the old mapping.
It dynamically creates new variable/scope IDs instead of resetting IDs
whenever a new scope is created.

I also removed some unused code as well.

    [5 lines not shown]
DeltaFile
+116-16lldb/tools/lldb-dap/Variables.cpp
+0-85lldb/tools/lldb-dap/JSONUtils.cpp
+72-10lldb/tools/lldb-dap/Variables.h
+3-56lldb/tools/lldb-dap/Handler/ScopesRequestHandler.cpp
+46-9lldb/unittests/DAP/VariablesTest.cpp
+36-0lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py
+273-1764 files not shown
+318-18910 files

LLVM/project 1ab74eellvm/lib/Transforms/IPO AttributorAttributes.cpp, llvm/test/Transforms/Attributor nofpclass.ll

Attributor: Use anchor scope for SimplifyQuery context

This was asserting in computeKnownFPClass when a dominator tree
check happened across functions.

Fixes #178954
DeltaFile
+80-38llvm/test/Transforms/Attributor/nofpclass.ll
+1-1llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+81-392 files

LLVM/project a0b99e3llvm/test/Transforms/LoopVectorize/AArch64 partial-reduce-sub.ll partial-reduce-incomplete-chains.ll

[LV] Add additional partial reduction test coverage for #167851.

Add test cases for which earlier versions of
https://github.com/llvm/llvm-project/pull/167851 was not NFC.

Test chained_sext_adds is moved to a new file.
DeltaFile
+149-0llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub.ll
+0-113llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-incomplete-chains.ll
+79-0llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-with-invariant-stores.ll
+228-1133 files

LLVM/project a73c315clang/test/CIR/CodeGen coro-task.cpp

[CIR][NFC] Add OGCG tests for coroutines (#178821)

This PR adds OGCG tests for `coro-task.cpp`. These tests are intended to
be used once the lowering is implemented, allowing us to compare the
generated output.
DeltaFile
+76-0clang/test/CIR/CodeGen/coro-task.cpp
+76-01 files

LLVM/project c7f53eellvm/lib/Transforms/IPO FunctionImport.cpp, llvm/test/ThinLTO/X86 local_name_conflict_var.ll

[ThinLTO] Stop attempting variable import once we see a non-variable (#178944)

This is a compile time improvement. Instead of looking through every
single copy of a value (of which there can be many for large targets
with linkonce_odr copies of the same values) for an importable variable,
stop immediately after we see a non-variable summary.

In most cases this is NFC because we expect all copies of a value to be
of the same type (e.g. all variables, or all functions). This only makes
a noticeable, slightly conservative, change in the case of same-named
local values in different modules compiled without distinguishing path.
The new test shows the effect of this (and is safe due to PR178761).

This makes a large reduction in thin link time for large targets that
have many copies of linkonce_odr vtables, all referencing functions.
DeltaFile
+12-2llvm/lib/Transforms/IPO/FunctionImport.cpp
+10-0llvm/test/ThinLTO/X86/local_name_conflict_var.ll
+22-22 files

LLVM/project c15853e.github/workflows docs.yml, clang/utils/analyzer entrypoint.py

[OpenMP] Remove LLVM_ENABLE_PROJECTS=openmp build mode (#176950)

Reapply #152189 and #174963 which were reverted because it broke
publish-sphinx-docs and publish-doxygen-docs.

The build mode has been deprecated in #136314 and was supposed to be
removed in the LLVM 21 release (#136314).

OpenMP currently supports 4 build modes:

 * `cmake <llvm-project>/llvm -DLLVM_ENABLE_PROJECTS=openmp`
 * `cmake <llvm-project>/llvm -DLLVM_ENABLE_RUNTIMES=openmp` (bootstrapping build)
 * `cmake <llvm-project>/openmp` (standalone build)
 * `cmake <llvm-project>/runtimes -DLLVM_ENABLE_RUNTIMES=openmp` (runtimes default/standalone build)

Each build mode increased the maintanance overhead since all build modes
must continue working and user confusion when there do not (see #151117,
#174126, #154117, ...). Let's finally remove it.
DeltaFile
+10-13llvm/CMakeLists.txt
+2-17flang/tools/f18/CMakeLists.txt
+0-7llvm/runtimes/CMakeLists.txt
+2-2.github/workflows/docs.yml
+2-2clang/utils/analyzer/entrypoint.py
+2-2flang-rt/README.md
+18-431 files not shown
+19-437 files

LLVM/project 95ac931llvm/lib/Target/WebAssembly WebAssemblyFastISel.cpp, llvm/test/CodeGen/WebAssembly funcref-call.ll

[WebAssembly] Prevent FastISel from trying to select funcref calls (#178742)

Before, Wasm FastISel treated all indirect calls the same, causing
miscompilations at O0 when trying to call a funcref (`call ptr
addrspace(20)`), as it would treat the funcref as a normal `ptr`

This adds a check so it falls back to ISelDAG when encountering calls
outside addrspace 0 (which covers direct calls and indirect calls
through normal function pointers).

Related: #140933
DeltaFile
+6-0llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
+2-1llvm/test/CodeGen/WebAssembly/funcref-call.ll
+8-12 files