LLVM/project 6558595lld/COFF Writer.cpp, lld/test/COFF merge-bss-text-filealign1.test

[LLD][COFF] Fix out-of-bounds write when filling gaps with INT3 in code sections (#180411)

When merging `.bss` into a code section (e.g., `/MERGE:.bss=.text`), the
INT3 gap-filling loop in `writeSections()` would write past the output
buffer. This happens because `.bss` chunks have `hasData=false`, so they
contribute to `VirtualSize` but not `SizeOfRawData`. The loop was using
chunk RVAs without checking if they exceeded the raw data region.

This caused a crash on Windows with `/FILEALIGN:1` (access violation
0xC0000005). The tight alignment leaves no slack in the mapped buffer,
so the overflow immediately hits unmapped memory.

The fix bounds all memset operations to `rawSize` and exits early when
encountering chunks beyond the raw data boundary.

Fixes #180406
DeltaFile
+60-0lld/test/COFF/merge-bss-text-filealign1.test
+7-2lld/COFF/Writer.cpp
+67-22 files

LLVM/project b46d6dcllvm/test/Transforms/LoopIdiom/SPARC popcnt.ll lit.local.cfg, llvm/test/Transforms/LoopIdiom/Sparc popcnt.ll lit.local.cfg

Rename llvm/test/Transforms/LoopIdiom/Sparc -> /SPARC

This is consistent with all other SPARC test directories.
DeltaFile
+325-0llvm/test/Transforms/LoopIdiom/SPARC/popcnt.ll
+0-325llvm/test/Transforms/LoopIdiom/Sparc/popcnt.ll
+0-2llvm/test/Transforms/LoopIdiom/Sparc/lit.local.cfg
+2-0llvm/test/Transforms/LoopIdiom/SPARC/lit.local.cfg
+327-3274 files

LLVM/project dca7b11llvm/test/CodeGen/X86 vector-target-demanded-elts.ll

[X86] Add tests showing failure to reduce the vector width of vpmaddwd/vpmaddubsw/pmulhrsw nodes (#180728)

Missing demanded elts handling
DeltaFile
+71-0llvm/test/CodeGen/X86/vector-target-demanded-elts.ll
+71-01 files

LLVM/project 0ae350allvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp SPIRVGlobalRegistry.cpp

[SPIRV] Replace SPIRVType with SPIRVTypeInst as much as we can

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+325-322llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+203-193llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
+178-167llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+94-94llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
+56-55llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
+37-31llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+893-8629 files not shown
+988-95315 files

LLVM/project 1051d38llvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Finish SPIRVTypeInst implementation
DeltaFile
+31-4llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+31-41 files

LLVM/project 0d37546mlir/lib/Dialect/Linalg/Transforms Detensorize.cpp, mlir/test/Dialect/Linalg detensorize_if.mlir detensorize_while_impure_cf.mlir

[mlir][linalg] Remove abandoned `Detensorize` pass (#177579)

RFC:
https://discourse.llvm.org/t/how-to-deal-with-abandoned-unmaintained-code/89560
DeltaFile
+0-569mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp
+0-177mlir/test/Dialect/Linalg/detensorize_if.mlir
+0-104mlir/test/Dialect/Linalg/detensorize_while_impure_cf.mlir
+0-102mlir/test/Dialect/Linalg/detensorize_0d.mlir
+0-71mlir/test/Dialect/Linalg/detensorize_while.mlir
+0-58mlir/test/Dialect/Linalg/detensorize_while_pure_cf.mlir
+0-1,0815 files not shown
+0-1,22911 files

LLVM/project 9501114llvm/lib/IR Verifier.cpp, llvm/test/CodeGen/LoongArch merge-base-offset-tlsle.ll merge-base-offset.ll

[Verifier] Make verifier fail when global variable size exceeds address space size (#179625)

When a global variable has a size that exceeds the size of the address
space it resides in, the verifier should fail as the variable can
neither be materialized nor fully accessed. This patch adds a check to
the verifier to enforce it.

---------

Signed-off-by: Steffen Holst Larsen <HolstLarsen.Steffen at amd.com>
Co-authored-by: Steffen Holst Larsen <HolstLarsen.Steffen at amd.com>
DeltaFile
+21-0llvm/test/Verifier/global-var-too-big.ll
+9-0llvm/lib/IR/Verifier.cpp
+1-1llvm/test/CodeGen/LoongArch/merge-base-offset-tlsle.ll
+1-1llvm/test/CodeGen/LoongArch/merge-base-offset.ll
+1-1llvm/test/Transforms/GlobalOpt/large-element-size.ll
+33-35 files

LLVM/project 9d23031libcxx/include __tree map, libcxx/include/__functional operations.h

[libc++] Only make comparators transparent in __tree if they don't cause a conversion (#179453)

We're currently unwrapping `less<T>` even if the `key_type` isn't `T`.
This causes the removal of an implicit conversion to `const T&` if the
types mismatch. Making `less<T>` transparent in that case changes
overload resolution and makes it fail potentially.

Fixes #179319
DeltaFile
+11-7libcxx/include/__type_traits/make_transparent.h
+12-0libcxx/test/std/containers/associative/map/map.ops/find.pass.cpp
+3-2libcxx/include/__tree
+2-2libcxx/include/map
+2-2libcxx/include/__functional/operations.h
+30-135 files

LLVM/project c1a6b13utils/bazel/llvm-project-overlay/mlir/test/Dialect BUILD.bazel

[bazel] Port b4032db.
DeltaFile
+2-4utils/bazel/llvm-project-overlay/mlir/test/Dialect/BUILD.bazel
+2-41 files

LLVM/project 6d5bb4dllvm/lib/Target/X86 X86ISelLowering.cpp

[X86] Fixed flags issue of onlyZeroFlagUsed (#180405)

Fixes
https://github.com/llvm/llvm-project/pull/173543#discussion_r2670058843
DeltaFile
+5-1llvm/lib/Target/X86/X86ISelLowering.cpp
+5-11 files

LLVM/project 8545724

Merge branch 'users/jmmartinez/spirv/guardrails' into users/jmmartinez/spirv/guardrails_continue
DeltaFile
+0-00 files

LLVM/project 36cb989clang/lib/AST/ByteCode Pointer.cpp

[clang][bytecode] Only reject function types in Pointer::toRValue() (#180722)

No test because I'm not sure how to reproduce this, but this patch fixes
`CodeGen/ptrauth-qualifier-function.c`.

For function pointer types and function reference types, we use
`Pointer`s these days, so we _can_ return them.
DeltaFile
+1-2clang/lib/AST/ByteCode/Pointer.cpp
+1-21 files

LLVM/project 2889098llvm/lib/Analysis IVDescriptors.cpp

[IVDesc] Add `[[maybe_unused]]` to `NumNonPHIUsers` (NFC) (#180729)

DeltaFile
+1-1llvm/lib/Analysis/IVDescriptors.cpp
+1-11 files

LLVM/project 5682417llvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Deprecate SPIRVType
DeltaFile
+1-1llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+1-11 files

LLVM/project fa22d41llvm/lib/Target/SPIRV SPIRVISelLowering.cpp

[SPIRV][NFC] Replace `SPIRVType` with `SPIRVTypeInst`
DeltaFile
+8-5llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+8-51 files

LLVM/project a4df742llvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Finish SPIRVTypeInst implementation
DeltaFile
+31-4llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+31-41 files

LLVM/project 541016cllvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Add a `SPIRVTypeInst` type with some guardrails

Currently `SPIRVType` is an alias of `MachineInstr`:

```cpp
using SPIRVType = const MachineInstr;
```

Consider the function below from the backend:

```cpp
inline Register getTypeReg(MachineRegisterInfo *MRI, Register OpReg) {
    SPIRVType *TypeInst = MRI->getVRegDef(OpReg);
      return TypeInst && TypeInst->getOpcode() ==
      SPIRV::OpFunctionParameter
                   ? TypeInst->getOperand(1).getReg()
                                : OpReg;
}
```

    [10 lines not shown]
DeltaFile
+23-0llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+23-01 files

LLVM/project f03dbbfllvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp SPIRVGlobalRegistry.cpp

[SPIRV] Replace SPIRVType with SPIRVTypeInst as much as we can

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+325-322llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+203-193llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
+178-167llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+94-94llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
+56-55llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
+37-31llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+893-8629 files not shown
+988-95315 files

LLVM/project 788597fllvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Deprecate SPIRVType
DeltaFile
+1-1llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+1-11 files

LLVM/project 232f8ballvm/lib/Target/SPIRV SPIRVISelLowering.cpp

[SPIRV][NFC] Replace `SPIRVType` with `SPIRVTypeInst`
DeltaFile
+8-5llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+8-51 files

LLVM/project 5ff6686llvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Finish SPIRVTypeInst implementation
DeltaFile
+31-4llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+31-41 files

LLVM/project 5770257llvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Add a `SPIRVTypeInst` type with some guardrails

Currently `SPIRVType` is an alias of `MachineInstr`:

```cpp
using SPIRVType = const MachineInstr;
```

Consider the function below from the backend:

```cpp
inline Register getTypeReg(MachineRegisterInfo *MRI, Register OpReg) {
    SPIRVType *TypeInst = MRI->getVRegDef(OpReg);
      return TypeInst && TypeInst->getOpcode() ==
      SPIRV::OpFunctionParameter
                   ? TypeInst->getOperand(1).getReg()
                                : OpReg;
}
```

    [10 lines not shown]
DeltaFile
+23-0llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+23-01 files

LLVM/project 7e18ee5clang/include/clang/StaticAnalyzer/Core/PathSensitive CoreEngine.h ExplodedGraph.h

[NFC][analyzer] Get rid of imaginary friends (of classes) (#180188)

These NodeBuilder classes were deleted from the codebase in 2011
(fifteen years ago!) by 3eae33412d18c4a4a4a8592898b3e65ad5946a89 so
don't declare them as friends.
DeltaFile
+0-2clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
+0-1clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
+0-32 files

LLVM/project 33f427ccross-project-tests/debuginfo-tests/llvm-prettyprinters/lldb expected.test

[cross-project-tests][lldb] Further relax llvm::Expected test assertions

Fixes following error on macOS:
```
CHECK-NEXT: (llvm::SmallVector<int, 2>) value = size=2 {
^
<stdin>:41:65: note: scanning from here
(llvm::Expected<llvm::SmallVector<int, 2> &>) ExpectedVecRef = {
                                                                ^
<stdin>:42:31: note: possible intended match here
 (std::__1::reference_wrapper<llvm::SmallVector<int, 2> >::type) value = size=2 {
```
DeltaFile
+1-1cross-project-tests/debuginfo-tests/llvm-prettyprinters/lldb/expected.test
+1-11 files

LLVM/project 70b7245libcxx/include __tree

[libc++] Prepare for PR #134330 by migrating to std::__static_fancy_pointer_cast (#180546)

To reduce the noise in #134330 for `libcxx/include/__tree`, we migrate
from certain `static_cast` to `std::__static_fancy_pointer_cast` in this
separate patch.

This change is needed to properly work with fancy pointers like
`min_pointer` during constant evaluation for `std::map`

Co-authored-by: Joseph Huber <huberjn at outlook.com>
DeltaFile
+172-148libcxx/include/__tree
+172-1481 files

LLVM/project aef8a2cflang/lib/Lower/OpenMP ClauseProcessor.cpp OpenMP.cpp, flang/lib/Lower/Support PrivateReductionUtils.cpp ReductionProcessor.cpp

[Flang][OpenMP] Fix crash with character types in declare_reduction (#178038)

Fixes #177501

This PR fixes a compilation crash when using character types in OpenMP
REDUCTION clauses with declare_reduction directives.

The problem was that character types weren't being handled properly
during OpenMP lowering. Specifically:
- Missing character length parameters in hlfir.declare operations
- Incorrect type wrapping for by-ref reductions
- Missing special case handling for boxed/unboxed character types

The fix ensures character types are treated similarly to derived types
throughout the reduction pipeline, since fir::isa_trivial() excludes
them.

Added a regression test to verify the fix works for both allocatable and
non-allocatable character reductions.

    [2 lines not shown]
DeltaFile
+31-5flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+27-8flang/lib/Lower/Support/PrivateReductionUtils.cpp
+33-0flang/test/Lower/OpenMP/declare-reduction-character-allocatable.f90
+14-5flang/lib/Lower/OpenMP/OpenMP.cpp
+11-0flang/test/Lower/OpenMP/Todo/reduction-character-dynamic-length.f90
+5-0flang/lib/Lower/Support/ReductionProcessor.cpp
+121-186 files

LLVM/project 7d7b85cllvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Deprecate SPIRVType
DeltaFile
+1-1llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+1-11 files

LLVM/project 39a0ab1llvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Finish SPIRVTypeInst implementation
DeltaFile
+31-4llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+31-41 files

LLVM/project 6d2f34fllvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Add a `SPIRVTypeInst` type with some guardrails

Currently `SPIRVType` is an alias of `MachineInstr`:

```cpp
using SPIRVType = const MachineInstr;
```

Consider the function below from the backend:

```cpp
inline Register getTypeReg(MachineRegisterInfo *MRI, Register OpReg) {
    SPIRVType *TypeInst = MRI->getVRegDef(OpReg);
      return TypeInst && TypeInst->getOpcode() ==
      SPIRV::OpFunctionParameter
                   ? TypeInst->getOperand(1).getReg()
                                : OpReg;
}
```

    [10 lines not shown]
DeltaFile
+23-0llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+23-01 files

LLVM/project e81a8fellvm/lib/Target/SPIRV SPIRVISelLowering.cpp

[SPIRV][NFC] Replace `SPIRVType` with `SPIRVTypeInst`
DeltaFile
+8-5llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+8-51 files