LLVM/project cedd8d9lldb/source/Plugins/Process/Windows/Common NativeProcessWindows.cpp

[NFC][lldb][windows] simplify NativeProcessWindows::FindSoftwareBreakpoint (#200820)
DeltaFile
+1-4lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp
+1-41 files

LLVM/project 6a80387lldb/source/Plugins/Platform/Windows PlatformWindows.cpp

[NFC][lldb][windows] Simplify PlatformWindows::ConnectRemote (#200823)
DeltaFile
+13-23lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
+13-231 files

LLVM/project fc8911alldb/source/Plugins/Platform/Windows PlatformWindows.cpp

[lldb][windows] fix late null check (#200822)

`process_sp` should be null checked before calling the
`HijackProcessEvents` method. This patch also removes 2 unused
variables.
DeltaFile
+2-5lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
+2-51 files

LLVM/project 06a2741llvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize/AArch64 partial-reduce-fdot-product.ll partial-reduce-costs.ll

Fixups
DeltaFile
+68-0llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-fdot-product.ll
+8-8llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-costs.ll
+1-1llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+0-1llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-chained.ll
+77-104 files

LLVM/project 86548feclang/lib/Headers __clang_hip_runtime_wrapper.h __clang_cuda_math_forward_declares.h, clang/test/Headers hip-constexpr-cmath.hip

[Clang][HIP] Guard declarations of cmath comparisons when using Microsoft's STL

In HIP, constexpr functions are treated as both, __host__ and
__device__.

A new version of the MS STL shipped with the build tools version 14.51.36231
has constexpr definitions for some cmath functions when the compiler in use is Clang.

These definitions conflict with the __device__ delcarations we provide in
the header wrappers.

This patch guards these declarations/definitions to use the ones coming
from the STL.
DeltaFile
+70-0clang/test/Headers/hip-constexpr-cmath.hip
+18-0clang/lib/Headers/__clang_hip_runtime_wrapper.h
+6-0clang/lib/Headers/__clang_cuda_math_forward_declares.h
+2-0clang/lib/Headers/__clang_hip_cmath.h
+96-04 files

LLVM/project c7a58d5llvm/test/Transforms/LoopVectorize/VPlan vplan-printing-flags.ll

[LV] Add test for printing cast flags. (#200806)

Add test showing missing flags when printing VPInstructionWithType
casts.
DeltaFile
+104-0llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-flags.ll
+104-01 files

LLVM/project c0f8fa3llvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange memory-attr.ll

[LoopInterchange] Prevent to interchange when memory-related calls exist
DeltaFile
+7-19llvm/test/Transforms/LoopInterchange/memory-attr.ll
+4-2llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+11-212 files

LLVM/project 460bdfdllvm/test/Transforms/LoopInterchange memory-attr.ll

[LoopInterchange] Add test where loop has memory-affected calls (NFC)
DeltaFile
+140-0llvm/test/Transforms/LoopInterchange/memory-attr.ll
+140-01 files

LLVM/project a2d89d1libc/config/linux/aarch64 headers.txt, libc/config/linux/riscv headers.txt

[libc] Add sys/uio.h to Linux public header target lists (#200793)

The headers don't get installed without this.

Assisted by Gemini.
DeltaFile
+1-0libc/config/linux/aarch64/headers.txt
+1-0libc/config/linux/riscv/headers.txt
+1-0libc/config/linux/x86_64/headers.txt
+3-03 files

LLVM/project 3afd3a9mlir/test/Dialect/NVGPU roundtrip.mlir

[mlir][nvgpu] Add roundtrip tests for warpgroup MMA operations (#199272)

Add roundtrip tests for the following NVGPU dialect operations:
- `nvgpu.warpgroup.mma.init.accumulator`
- `nvgpu.warpgroup.mma.store`

These operations were present in the dialect but lacked roundtrip
test coverage in `roundtrip.mlir`. The tests verify that operand
and result types survive the parser/printer roundtrip.
DeltaFile
+20-0mlir/test/Dialect/NVGPU/roundtrip.mlir
+20-01 files

LLVM/project c9d5ccabolt/lib/Profile DataReader.cpp, bolt/test/X86 nolbr.s

[BOLT] Fix fdata parsing warning (#200725)
DeltaFile
+8-0bolt/test/X86/nolbr.s
+3-2bolt/lib/Profile/DataReader.cpp
+11-22 files

LLVM/project 080286dllvm/include/llvm/IR CFG.h, llvm/lib/AsmParser LLParser.cpp

[IR] BlockAddress doesn't use BasicBlock (#200772)

BlockAddress is the only non-terminator user of a BasicBlock, and it
occurs very rarely. To speed up predecessor iteration, change
BlockAddress to no longer use its BasicBlock.

This should also make uselistorder_bb obsolete.
DeltaFile
+0-51llvm/lib/AsmParser/LLParser.cpp
+0-42llvm/test/Assembler/uselistorder_bb.ll
+5-17llvm/include/llvm/IR/CFG.h
+2-14llvm/lib/CodeGen/IndirectBrExpandPass.cpp
+3-12llvm/lib/IR/AsmWriter.cpp
+0-11llvm/test/Assembler/invalid-uselistorder_bb-float-literal.ll
+10-14717 files not shown
+24-20223 files

LLVM/project 1433381flang/lib/Evaluate type.cpp, flang/lib/Semantics resolve-names.cpp

[flang] Add support for TYPEOF and CLASSOF type specifiers (#188804)

Implements parsing, semantics and lowering for the Fortran 2023 TYPEOF and CLASSOF type specifiers (R703). TYPEOF produces the declared type of a data-ref; CLASSOF produces a polymorphic version. Includes constraint
checks (C709–C713) and tests.

Semantics resolves TYPEOF/CLASSOF to the concrete underlying type in the symbol table, so no lowering code changes were needed. Added a lowering test to verify FIR/HLFIR generation works correctly for intrinsic types,
derived types, extended types, and polymorphic CLASSOF with allocatable/pointer.

Fixes - https://github.com/llvm/llvm-project/issues/185635
DeltaFile
+165-0flang/lib/Semantics/resolve-names.cpp
+85-0flang/test/Lower/typeof-classof.f90
+73-0flang/test/Semantics/typeof-classof-errors.f90
+56-0flang/test/Semantics/typeof-classof.f90
+22-0flang/test/Parser/typeof-classof-attrs.f90
+13-0flang/lib/Evaluate/type.cpp
+414-06 files not shown
+437-412 files

LLVM/project 8cfa45dclang/lib/Headers __clang_hip_runtime_wrapper.h __clang_cuda_math_forward_declares.h, clang/test/Headers hip-constexpr-cmath.hip

[Clang][HIP] Guard declarations of cmath comparisons when using Microsoft's STL

In HIP, constexpr functions are treated as both, __host__ and
__device__.

A new version of the MS STL shipped with the build tools version 14.51.36231
has constexpr definitions for some cmath functions when the compiler in use is Clang.

These definitions conflict with the __device__ delcarations we provide in
the header wrappers.

This patch guards these declarations/definitions to use the ones coming
from the STL.
DeltaFile
+70-0clang/test/Headers/hip-constexpr-cmath.hip
+18-0clang/lib/Headers/__clang_hip_runtime_wrapper.h
+6-0clang/lib/Headers/__clang_cuda_math_forward_declares.h
+94-03 files

LLVM/project e5cf9adlibsycl/include/sycl/__impl index_space_classes.hpp queue.hpp, libsycl/include/sycl/__impl/detail kernel_arg_helpers.hpp

[libsycl] Add parallel_for feature (#189068)

Depends on https://github.com/llvm/llvm-project/pull/188797 (stacked
PRs).

Depends on liboffload PR:
https://github.com/llvm/llvm-project/pull/184343.
Depends on clang driver update to pick the right location for search of
libsycl: follow up for https://github.com/llvm/llvm-project/pull/188770.
Without it test will fail since clang can't find libsycl in build dir.
Depends on future liboffload fix for range. Without it test will fail on
data check.

This is part of the SYCL support upstreaming effort. The relevant RFCs
can be found here:


https://discourse.llvm.org/t/rfc-add-full-support-for-the-sycl-programming-model/74080
https://discourse.llvm.org/t/rfc-sycl-runtime-upstreaming/74479

    [3 lines not shown]
DeltaFile
+412-0libsycl/include/sycl/__impl/index_space_classes.hpp
+195-9libsycl/include/sycl/__impl/queue.hpp
+188-0libsycl/include/sycl/__impl/detail/kernel_arg_helpers.hpp
+111-0libsycl/test/basic/wrapped_usm_pointers.cpp
+87-0libsycl/test/basic/parallel_for_indexers.cpp
+65-0libsycl/include/sycl/__spirv/spirv_vars.hpp
+1,058-94 files not shown
+1,125-1010 files

LLVM/project 397c594llvm/lib/Transforms/Scalar LoopFuse.cpp

[LoopFusion] remove else after return (NFC) (#200783)
DeltaFile
+1-2llvm/lib/Transforms/Scalar/LoopFuse.cpp
+1-21 files

LLVM/project 03075a6llvm/test/TableGen/GlobalISelCombinerEmitter match-table-hoisting-cxx.td, llvm/utils/TableGen GlobalISelCombinerEmitter.cpp

[GlobalISel] Do not use recordsOperand() to check if a Combiner C++ predicate can be hoisted

The combiner does not use RecordNamedOperand, so assume that any operand is "recorded" in the sense
that can be used by a C++ predicate.
DeltaFile
+117-0llvm/test/TableGen/GlobalISelCombinerEmitter/match-table-hoisting-cxx.td
+11-1llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.h
+8-4llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp
+1-1llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.cpp
+137-64 files

LLVM/project 57bde44llvm/include/llvm/CodeGen BreakFalseDeps.h, llvm/include/llvm/Passes MachinePassRegistry.def

[CodeGen] Port break-false-deps to new pass manager (#194262)
DeltaFile
+58-27llvm/lib/CodeGen/BreakFalseDeps.cpp
+37-0llvm/include/llvm/CodeGen/BreakFalseDeps.h
+2-2llvm/test/CodeGen/X86/llc-pipeline-npm.ll
+1-1llvm/include/llvm/Passes/MachinePassRegistry.def
+1-1llvm/lib/CodeGen/CodeGen.cpp
+1-1llvm/lib/Target/ARM/ARMTargetMachine.cpp
+100-327 files not shown
+108-3513 files

LLVM/project b99a6fclldb/source/Plugins/Process/Windows/Common DebuggerThread.cpp

[lldb][windows] bound ReadProcessMemory (#200230)
DeltaFile
+69-28lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
+69-281 files

LLVM/project 76220f2clang/docs ReleaseNotes.rst, clang/lib/Sema SemaCast.cpp

[clang][SemaCXX] Fix crash caused by unresolved overloaded function type when using `__builtin_bit_cast` (#200574)

Resolves #200112

By early checking for placeholder expressions, crash can be avoided for
unreachable builtin type when fetching type info.
DeltaFile
+10-0clang/test/SemaCXX/builtin-bit-cast.cpp
+7-0clang/lib/Sema/SemaCast.cpp
+2-0clang/docs/ReleaseNotes.rst
+19-03 files

LLVM/project 813cf33llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 gfni-xor-fold.ll gfni-xor-fold-avx512.ll

[X86] Fold XOR of VGF2P8AFFINEQB and its source (#198448)

Adds a optimization to fold XORs between `vgf2p8affineqb` and its
source. That XOR can done through the existing affine transformation by
XORing its matrix with the identity matrix. This patch:

- Folds XOR between `vgf2p8affineqb` and its source.
- Only occurs when the matrix is constant, ensuring that it can't
increase the dependency chain.
- Doesn't occur if the affine is multi use, preventing an increase in
code size.
- Includes test coverage for both positive and negative cases.

Fixes #184061
DeltaFile
+97-0llvm/test/CodeGen/X86/gfni-xor-fold.ll
+54-0llvm/test/CodeGen/X86/gfni-xor-fold-avx512.ll
+29-6llvm/lib/Target/X86/X86ISelLowering.cpp
+6-6llvm/test/CodeGen/X86/gfni-operand-and-fold.ll
+186-124 files

LLVM/project d5a24efllvm/docs AMDGPUUsage.rst, llvm/lib/IR Verifier.cpp

[AMDGPU] Replace relaxed-buffer-oob-mode feature with module flag (#160922)

Remove AMDGPU subtarget feature toggle for relaxed buffer OOB handling
and replace it with two explicit LLVM module flags:
- amdgpu.buffer.oob.relaxed for untyped buffer instructions
- amdgpu.tbuffer.oob.relaxed for typed buffer instructions

Each flag is modeled as i32 with Max merge behavior and validated as a
tri-state value, where 0 means Any/default, 1 means Relaxed and 2 means Strict. 
The absence of the module flag implies the default mode, which is currently treated
as Strict by the backend.
DeltaFile
+98-0llvm/test/Verifier/AMDGPU/module-flag-oob-mode.ll
+49-0llvm/docs/AMDGPUUsage.rst
+28-1llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+17-1llvm/lib/Target/AMDGPU/GCNSubtarget.h
+10-5llvm/test/Transforms/LoadStoreVectorizer/AMDGPU/unaligned-buffer.ll
+15-0llvm/lib/IR/Verifier.cpp
+217-76 files not shown
+239-2012 files

LLVM/project de35293flang/lib/Lower ConvertVariable.cpp, flang/test/Lower component-wise-init.f90 pointer-default-init.f90

[flang][lowering] Implement component-wise initialization for derived types (#187465)

Currently, the compiler defaults to a full `memcpy` when initializing
derived types.

This patch introduces component-wise initialization for pointer /
allocatable components, avoiding unnecessary initialization data
generation and redundant copies.

Ineligible cases continue to use the existing `memcpy` initialization
path.

RFC: https://discourse.llvm.org/t/rfc-automatic-static-promotion-of-large-local-variables-in-flang/89539

Key changes:

- In `flang/lib/Lower/ConvertVariable.cpp`:
- Add `genDerivedTypeComponentInit` for component-wise derived type
initialization.

    [11 lines not shown]
DeltaFile
+176-44flang/lib/Lower/ConvertVariable.cpp
+152-0flang/test/Lower/component-wise-init.f90
+41-14flang/test/Lower/HLFIR/structure-constructor.f90
+9-2flang/test/Lower/forall/forall-allocatable-2.f90
+6-2flang/test/Lower/pointer-default-init.f90
+5-2flang/test/Lower/default-initialization.f90
+389-644 files not shown
+399-7110 files

LLVM/project 92090e6llvm/utils/TableGen GlobalISelEmitter.cpp, llvm/utils/TableGen/Common/GlobalISel/MatchTable Matchers.h Matchers.cpp

clang-format
DeltaFile
+45-39llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.h
+18-22llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.cpp
+3-3llvm/utils/TableGen/GlobalISelEmitter.cpp
+66-643 files

LLVM/project ceb18ff.github/workflows release-binaries.yml

workflows/release-binaries: Install LLDB test deps (#199900)

lldb-api tests are hitting:

"/home/runner/work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py",
line 12, in <module>
    from packaging import version
    ModuleNotFoundError: No module named 'packaging'

when building release binaries on Arm64/x86 Linux. Install deps before
running tests.

Fixes #176422.
DeltaFile
+5-0.github/workflows/release-binaries.yml
+5-01 files

LLVM/project 06ffb65clang/lib/Sema SemaConcept.cpp, clang/test/SemaTemplate concepts-using-decl.cpp

[Clang] Profile the NNS of UnresolvedUsingType and CXXThisType correctly in concept hashing (#199617)

They were sometimes incorrect because the written type doesn't contain
an NNS which contains template parameters we're interested in.

No release note because the bug broke MS STL and I want to backport it
to the last 22.x release

Fixes https://github.com/llvm/llvm-project/issues/198663
DeltaFile
+98-0clang/test/SemaTemplate/concepts-using-decl.cpp
+14-0clang/lib/Sema/SemaConcept.cpp
+112-02 files

LLVM/project 725d3ebllvm/lib/Analysis DependenceAnalysis.cpp, llvm/test/Analysis/DependenceAnalysis exact-siv-mul-overflow.ll

[DA] Fix overflow in the Exact test (#200781)

In exactTestImpl, some computations using APInt could overflow, which
might lead to incorrect results.
This patch addresses the issue by replacing APInt with
OverflowSafeSignedAPInt, a class that is sensitive to overflow and
allows us to detect it properly.

Fixes #200766.
DeltaFile
+8-6llvm/lib/Analysis/DependenceAnalysis.cpp
+1-3llvm/test/Analysis/DependenceAnalysis/exact-siv-mul-overflow.ll
+9-92 files

LLVM/project 9e5711cllvm/utils/TableGen GlobalISelEmitter.cpp GlobalISelCombinerEmitter.cpp, llvm/utils/TableGen/Common/GlobalISel/MatchTable Matchers.cpp Matchers.h

[GlobalISel] Do not depend on the RuleMatcher at MatchTable emission

Some PredicateMatchers/MatchAction/OperandRenderers relied on accessing
RuleMatcher at emission as a crutch.
Instead, make these classes collect all necessary information in the
constructor so the `emit` methods don't depend on RuleMatcher anymore.

The primary motivation for this is that I've been looking at ways to optimize the MatchTable better,
and the fact that Predicates/Actions/Renderers are not "pure" objects, in the sense that they keep
accessing a bunch of data all over the place even as late as emission, was a consistent pain.

This is NFCI. There are no changes to any of the match table for AMDGPU/AArch64 in this patch.

This patch has a bunch of noise due to function signature changes so I'll highlight the following interesting changes:
- `SameOperandMatcher` needed a bit of an update in its `canHoistOutsideOf` function. I had to rewrite it
  but I think the end result is the same.
- `EraseInstAction` has been updated as well, and its users in both Combiner/ISel backends have been updated to.
  Instead of ignoring this action if the Inst was already erased, it's now the responsibility of the
  builder to never insert it in the first place. `BuildMIAction` had a small update because of that too.

    [4 lines not shown]
DeltaFile
+106-187llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.cpp
+153-132llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.h
+21-19llvm/utils/TableGen/GlobalISelEmitter.cpp
+7-5llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp
+287-3434 files

LLVM/project 15182d8libsycl/include/sycl/__impl queue.hpp

fix clang-format

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+1-1libsycl/include/sycl/__impl/queue.hpp
+1-11 files

LLVM/project 0ef35beclang/lib/AST/ByteCode Interp.h, clang/test/AST/ByteCode invalid.cpp

[clang][bytecode] Don't deref() non-dereferencable pointers (#200774)

That shouldn't happen and the isDummy() check wasn't enough.
DeltaFile
+11-0clang/test/AST/ByteCode/invalid.cpp
+1-1clang/lib/AST/ByteCode/Interp.h
+12-12 files