LLVM/project 5e25601flang/lib/Semantics mod-file.cpp, flang/test/Semantics modfile82.f90

[flang] Add missing module file hashes (#175636)

The compiler emits "!need$" lines to module files only for modules
needed by the module's outermost scope, but misses dependences on other
modules that might be USE'd in inner scopes.

Fixes https://github.com/llvm/llvm-project/issues/175611.
DeltaFile
+22-10flang/lib/Semantics/mod-file.cpp
+29-0flang/test/Semantics/modfile82.f90
+51-102 files

LLVM/project a8ba9c4flang-rt/lib/runtime sum.cpp, flang-rt/unittests/Runtime Reduction.cpp

[flang] Fix spurious NaN  result from infinite Kahan summation (#175373)

There are six instances of Kahan's extended precision summation
algorithm in flang/flang-rt, and they share a bug: the calculation of
the correction value produces a Nan due to the subtraction Inf-Inf after
the accumulation saturates to Inf. This leads to the surprising Nan
result from SUM([Inf, 0.]).

This bug doesn't affect run-time calculation of SUM when optimization is
enabled -- lowering emits an open-coded SUM that lacks Kahan summation
-- but it does affect compilation-time folding and -O0 runtime results.

Fix the one instance of Kahan summation in the runtime, and consolidate
the other five instances in Evaluate into one new member function, also
corrected.

Fixes https://github.com/llvm/llvm-project/issues/89528.
DeltaFile
+7-23flang/lib/Evaluate/fold-reduction.h
+18-0flang/lib/Evaluate/real.cpp
+16-0flang-rt/unittests/Runtime/Reduction.cpp
+9-3flang-rt/lib/runtime/sum.cpp
+11-0flang/lib/Evaluate/complex.cpp
+3-8flang/lib/Evaluate/fold-matmul.h
+64-344 files not shown
+78-4010 files

LLVM/project 3874c45flang/lib/Semantics resolve-names.cpp, flang/test/Semantics bug175207.f90

[flang] Handle useless NAMELIST in interface block (#175214)

NAMELIST has no useful purpose in an interface block, but it's allowed.
Fix a crash due to our deferred handling of NAMELIST groups in the
execution part (which doesn't exist in an interface block).

Fixes https://github.com/llvm/llvm-project/issues/175207.
DeltaFile
+10-0flang/test/Semantics/bug175207.f90
+3-0flang/lib/Semantics/resolve-names.cpp
+13-02 files

LLVM/project 3fe94abflang/docs Extensions.md

[flang][NFC] Document that the integrity of parentheses is not violated (#175071)

Add language to flang/docs/Extensions.md to explain why "A+(B*C)" must
round the result of the multiplication, when REAL and the -ffast-math
option is not used.
DeltaFile
+21-0flang/docs/Extensions.md
+21-01 files

LLVM/project 1c8627fflang CMakeLists.txt, flang/lib/Evaluate fold-real.cpp

[llvm][flang] Silence warning, resume -Werror builds of flang (#175053)

Add (void) uses of two parameters to dodge a C++ compiler warning that
has broken -Werror builds of flang since 9-28-25, and restore that
option as the default for flang builds.
DeltaFile
+1-7flang/lib/Evaluate/fold-real.cpp
+1-1flang/CMakeLists.txt
+2-0llvm/include/llvm/ADT/SmallVector.h
+4-83 files

LLVM/project 014d2b9lldb/source/Plugins/TypeSystem/Clang TypeSystemClang.cpp, lldb/unittests/Symbol TestTypeSystemClang.cpp

[lldb][TypeSystem] Call Type::isIntegralType from TypeSystemClang::IsIntegerType (#175669)

Instead of re-implementing `Type::isIntegralType`, call it explicitly.

This means we get support for `BitIntType` out-of-the-box.

We don't use `IsIntegerType` here because we want to abide by the
language-specific notions of an integer type (which differ between C++
and C).

The slight behaviour change here is that `IsIntegerType` will now treat
complete enumerations as integers in C. This is correct according to the
C standard.
DeltaFile
+44-0lldb/unittests/Symbol/TestTypeSystemClang.cpp
+10-9lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+54-92 files

LLVM/project 44df98eclang/lib/CIR/Dialect/IR CIRDialect.cpp, clang/test/CIR/CodeGen pointers.cpp basic.cpp

[CIR] Implement simple folding for unary operations (#174882)

This extends the UnaryOp folder to handle plus, minus, and not
operations on constant operands.

This is in preparation for a change that will attempt to fold these
unary operations as they are generated, but this change only performs
the folding via the cir-canonicalize pass.
DeltaFile
+185-2clang/test/CIR/Transforms/canonicalize.cir
+67-0clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+11-8clang/test/CIR/CodeGen/pointers.cpp
+3-10clang/test/CIR/CodeGen/basic.cpp
+5-7clang/test/CIR/CodeGen/bitfields_be.c
+4-6clang/test/CIR/Lowering/goto.cir
+275-335 files not shown
+289-4711 files

LLVM/project 1023f91llvm/lib/Target/RISCV RISCVISelLowering.cpp

[llvm][RISCV] Suppress unused `IsMulH` warning. (#175653)

Introduced in commit d28daddd. `IsMulH` is only used in assert(), and
triggers unused variable warnings in non-debug builds.
DeltaFile
+3-2llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+3-21 files

LLVM/project 0828533llvm/lib/Target/X86 X86PreTileConfig.cpp X86.h

[X86][NewPM] Port x86-pre-tile-config (#175649)

Standard pass porting. Used callbacks to get MLI so we do not compute it
in the common case where we have no AMX registers. Also moved the call
to releaseMemory into runOnMachineFunction through a scope exit rather
than calling it through the pass manager so we can get consistent
behavior across both PMs. No test coverage added in this one as we also
need x86-tile-config to be able to run any tests.
DeltaFile
+46-18llvm/lib/Target/X86/X86PreTileConfig.cpp
+8-2llvm/lib/Target/X86/X86.h
+2-2llvm/lib/Target/X86/X86TargetMachine.cpp
+1-1llvm/lib/Target/X86/X86PassRegistry.def
+57-234 files

LLVM/project 496729foffload/plugins-nextgen/level_zero/src L0Memory.cpp

[Offload] Fix level_zero plugin build (#175664)

Build has been broken when OMPTARGET_DEBUG is undefined.
DeltaFile
+0-2offload/plugins-nextgen/level_zero/src/L0Memory.cpp
+0-21 files

LLVM/project 5be5612llvm/include/llvm/MC MCGOFFStreamer.h, llvm/lib/MC MCGOFFStreamer.cpp GOFFObjectWriter.cpp

[SystemZ][z/OS] Handle labels for parts

Global data is emitted into parts, which are modelled as a MCSection.
A label (symbol of type LD) is not allowed in a part, which requires
special handling. The approach is to not emit the label at all, and
using the part symbol in relocations.
DeltaFile
+53-0llvm/test/CodeGen/SystemZ/zos-symbol-2.ll
+6-9llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
+13-0llvm/lib/MC/MCGOFFStreamer.cpp
+3-0llvm/lib/MC/GOFFObjectWriter.cpp
+2-0llvm/include/llvm/MC/MCGOFFStreamer.h
+1-1llvm/test/CodeGen/SystemZ/zos-hlasm-out.ll
+78-106 files

LLVM/project 189adfcclang-tools-extra/clang-doc/assets class-template.mustache comment-template.mustache, clang-tools-extra/test/clang-doc/json class.cpp class-template.cpp

fix merge conflicts
DeltaFile
+21-29clang-tools-extra/clang-doc/assets/class-template.mustache
+17-23clang-tools-extra/test/clang-doc/json/class.cpp
+11-11clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
+1-13clang-tools-extra/clang-doc/assets/comment-template.mustache
+3-9clang-tools-extra/clang-doc/assets/enum-template.mustache
+8-3clang-tools-extra/test/clang-doc/json/class-template.cpp
+61-8811 files not shown
+99-12117 files

LLVM/project 5c764b4llvm/include/llvm/Support KnownFPClass.h

KnownFPClass: Make LLVM_ABI checker happy (#175654)

Warned on PRs that happened to touch nearby lines.
DeltaFile
+1-1llvm/include/llvm/Support/KnownFPClass.h
+1-11 files

LLVM/project f611d12llvm/lib/Target/AMDGPU SIRegisterInfo.td, llvm/test/CodeGen/AMDGPU regalloc-vgpr_lo128-gfx1250.mir shrink-vgpr_lo128-gfx1250.mir

[AMDGPU] Limit allocation of lo128 registers for occupancy

Parent change allows allocation of lo128 VGPRs from all 4 banks.
That may result in the undesired allocation leaving a hole of
maximum 128 registers in case if for example v0-v127 are allocated,
and v128-v255 are free.

Limit the available allocation order to the occupancy. Both hard
occupancy limits and occupancy achieved during scheduling are
considered. That is better to spill a register than to drop occupancy
in this case.
DeltaFile
+97-1llvm/test/CodeGen/AMDGPU/regalloc-vgpr_lo128-gfx1250.mir
+29-0llvm/test/CodeGen/AMDGPU/shrink-vgpr_lo128-gfx1250.mir
+14-2llvm/lib/Target/AMDGPU/SIRegisterInfo.td
+140-33 files

LLVM/project 244f7a0llvm/test/CodeGen/AMDGPU local-stack-alloc-add-references.gfx8.mir coalesce-copy-to-agpr-to-av-registers.mir, llvm/test/MC/Disassembler/AMDGPU gfx12_dasm_vop1_dpp8.txt gfx12_dasm_vop1_dpp16.txt

[AMDGPU] Allow allocation of lo128 registers from all banks

We can encode 16-bit operands in a short form for VGPRs [0..127].
When we have 1K registers available we can in fact allocate 4
times more from all 4 banks. That, however, requires an allocatable
class for these operands. When for most of the instructions it will
result in the VOP3 longer form, for V_FMAAMK/FMADAK_F16 it will
simply prohibit the encoding because these do not have VOP3 forms.

A straight forward solution would be to create a register class
with all registers having bit 8 of the encoding zero, i.e. to
create a register class with holes punched in it: [0-127, 256-383,
512-639, 768-895]. LLVM, however, does not like register classes
with punched holes when they also have subregisters. The cross-
product of all classes explodes and some combinations of a 'class
having a common subreg with another' becomeing impossible. Just
doing so explodes our register info to 4+Gb, uncompilable too.

The solution proposed is to define _lo128 RC with contigous 896

    [17 lines not shown]
DeltaFile
+180-180llvm/test/CodeGen/AMDGPU/local-stack-alloc-add-references.gfx8.mir
+120-120llvm/test/CodeGen/AMDGPU/coalesce-copy-to-agpr-to-av-registers.mir
+90-90llvm/test/CodeGen/AMDGPU/local-stack-alloc-add-references.gfx9.mir
+49-46llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1_dpp8.txt
+94-0llvm/test/CodeGen/AMDGPU/regalloc-vgpr_lo128-gfx1250.mir
+46-46llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1_dpp16.txt
+579-48239 files not shown
+1,018-74745 files

LLVM/project fa36b0clldb/source/Plugins/TypeSystem/Clang TypeSystemClang.cpp, lldb/unittests/Symbol TestTypeSystemClang.cpp

[lldb][TypeSystemClang] Simplify TypeSystemClang::IsEnumerationType implementation (#175560)

We were calling into `IsIntegerType` to determine the signedness of the
enum. Calling the relevant `clang::Type` API is simpler.

This shouldn't have any observable behaviour change.

We were lacking unit-test coverage for this. Added some tests that pass
before and after this change.
DeltaFile
+58-0lldb/unittests/Symbol/TestTypeSystemClang.cpp
+1-5lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+59-52 files

LLVM/project f9a8096llvm/lib/Transforms/Vectorize VPlanRecipes.cpp

[VPlan] Merge Select with previous cases in ::computeCost (NFC).

Merge cases calling the same helper, as suggested post-commit in
https://github.com/llvm/llvm-project/pull/174234
DeltaFile
+0-1llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+0-11 files

LLVM/project 55e7a89llvm/lib/Target/X86 X86TileConfig.cpp X86.h, llvm/test/CodeGen/X86/AMX amx-greedy-ra.ll

[X86][NewPM] Port x86-tile-config (#175647)

Standard porting. Use callbacks to get the needed analyses to make the
pass portable between Legacy/New PMs and to prevent computing anything
if we do not have any AMX registers in the function. No test coverage
for now as amx-greedy-ra.ll is the only test that references this pass
and needs pass pipeline setup in order to work which I plan on getting
to this week.
DeltaFile
+34-13llvm/lib/Target/X86/X86TileConfig.cpp
+8-2llvm/lib/Target/X86/X86.h
+2-2llvm/lib/Target/X86/X86TargetMachine.cpp
+1-1llvm/lib/Target/X86/X86PassRegistry.def
+1-1llvm/test/CodeGen/X86/AMX/amx-greedy-ra.ll
+46-195 files

LLVM/project 78091a9clang/lib/CodeGen CGObjCGNU.cpp

format
DeltaFile
+4-2clang/lib/CodeGen/CGObjCGNU.cpp
+4-21 files

LLVM/project 3d5c00dllvm/include/llvm/Support KnownFPClass.h

KnownFPClass: Make LLVM_ABI checker happy

Warned on PRs that happened to touch nearby lines.
DeltaFile
+1-1llvm/include/llvm/Support/KnownFPClass.h
+1-11 files

LLVM/project 5df9439clang/lib/CodeGen CGObjCGNU.cpp

comment to llvm_unreachable
DeltaFile
+2-2clang/lib/CodeGen/CGObjCGNU.cpp
+2-21 files

LLVM/project 12131c9lldb/source/Plugins/SymbolFile/NativePDB PdbAstBuilder.cpp PdbAstBuilder.h

[lldb][NativePDB] NFC: Add language-agnostic hooks for AST population (#175624)

Currently, `SymbolFileNativePDB` calls several `PdbAstBuilder` methods
for side-effects to ensure the AST is populated.

This change adds new void-returning methods for `SymbolFileNativePDB` to
use as a hook instead, so that it doesn't depend on Clang-specific parts
of `PdbAstBuilder`'s interface.

This is part of the work to allow language-agnostic `PdbAstBuilder` (see
RFC:
https://discourse.llvm.org/t/rfc-lldb-make-pdbastbuilder-language-agnostic/89117)
DeltaFile
+21-0lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
+13-7lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h
+5-5lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
+39-123 files

LLVM/project 71293e4compiler-rt/test/lsan/TestCases swapcontext.cpp

[lsan] Fix flaky test in swapcontext.cpp (#175635)

LSan, by design, can have false negatives, making it unreliable to check
that the leak was found in the stack-allocated case:
```
==123685==Scanning STACK range 0x7ffe6e554ca0-0x7ffe6e557000.
==123685==0x7ffe6e554de0: found 0x51e0000009f0 pointing into chunk 0x51e000000000-0x51e000000c00 of size 3072.
==123685==0x7ffe6e554e30: found 0x51e000000c00 pointing into chunk 0x51e000000c00-0x51e000001668 of size 2664. <- this prevented the leak from being found
```

This has led to flakiness on the buildbots e.g.,
https://lab.llvm.org/buildbot/#/builders/66/builds/24669
```
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lsan/TestCases/swapcontext.cpp:44:11: error: CHECK: expected string not found in input
# | // CHECK: SUMMARY: {{.*}}Sanitizer: 2664 byte(s) leaked in 1 allocation(s)
...
Failed Tests (2):
  LeakSanitizer-HWAddressSanitizer-x86_64 :: TestCases/swapcontext.cpp
  LeakSanitizer-Standalone-x86_64 :: TestCases/swapcontext.cpp

    [3 lines not shown]
DeltaFile
+10-0compiler-rt/test/lsan/TestCases/swapcontext.cpp
+10-01 files

LLVM/project b491241llvm/utils/git github-automation.py

[utils][git] Skip subscribers for PRs labeled as skip-precommit-approval (#174819)

skip-precommit-approval label is intended for simple PR that don't
require approval. To reduce the volume of notifications, avoid sending
notifications to subscribers for PRs labeled as such.
DeltaFile
+8-0llvm/utils/git/github-automation.py
+8-01 files

LLVM/project c259ed5lldb/source/Plugins/SymbolFile/NativePDB PdbAstBuilder.cpp SymbolFileNativePDB.cpp

[lldb][NativePDB] NFC: Remove Clang-specific typedef handling (#175623)

Missed this one in https://github.com/llvm/llvm-project/pull/173111

Also tweaks `PdbAstBuilder::ToCompilerType` to make it more clear that
the change is correct and take advantage of asserts in `TypeSystemClang`

This is part of the work to allow language-agnostic `PdbAstBuilder` (see
RFC:
https://discourse.llvm.org/t/rfc-lldb-make-pdbastbuilder-language-agnostic/89117)
DeltaFile
+10-9lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
+3-5lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
+1-1lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h
+14-153 files

LLVM/project 1df500allvm/include/llvm/Support KnownFPClass.h

KnownFPClass: Make LLVM_ABI checker happy

Warned on PRs that happened to touch nearby lines.
DeltaFile
+2-1llvm/include/llvm/Support/KnownFPClass.h
+2-11 files

LLVM/project d07062aclang/tools/clang-nvlink-wrapper ClangNVLinkWrapper.cpp

[Clang] Fix warning on device debugging when passing `-O0` (#175628)

Summary:
CUDA's Toolchain doesn't support debug information with optimizations,
so we warn on this. The logic was printing this even if you pass `-O0`
yourself. Also fix not passing `-g`.
DeltaFile
+4-2clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp
+4-21 files

LLVM/project 62c97aaclang/include/clang/CodeGen ModuleBuilder.h, clang/lib/CodeGen ModuleBuilder.cpp CodeGenAction.cpp

[Clang] Improve CodeGenerator API a bit (#175239)

Essentially, figuring out how to use `CodeGenerator` was very confusing
to me and I figured the API could be improved a bit, so:
- the `CodeGenerator` ctor is now protected since an instance of
`CodeGenerator` that is not a `CodeGeneratorImpl` is a bit useless (and
deriving from it and implementing it yourself honestly just defeats the
point of using this to begin with);
- `ReleaseModule()` releases ownership of the module, so it should
return a `unique_ptr`;
- `CreateLLVMCodeGen()` also returns a `unique_ptr` now;
- added a `CreateLLVMCodeGen()` overload that takes a
`CompilerInstance&` and uses some of its state instead of requiring the
user to pass everything in manually; this is consistent w/ other parts
of our API, and most uses of this function in the codebase can be
refactored to use that overload instead (and a code search I did also
showed that a lot of people that use this API also just use the state
from a `CompilerInstance`).


    [7 lines not shown]
DeltaFile
+21-12clang/lib/CodeGen/ModuleBuilder.cpp
+19-13clang/include/clang/CodeGen/ModuleBuilder.h
+2-5lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
+1-4clang/tools/clang-import-test/clang-import-test.cpp
+1-4clang/unittests/CodeGen/TestCompiler.h
+1-3clang/lib/CodeGen/CodeGenAction.cpp
+45-416 files

LLVM/project 981c37fllvm/lib/Target/PowerPC PPCISelLowering.cpp PPCInstrInfo.td

Add PPCISD node for AMO stores
DeltaFile
+1-15llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+10-0llvm/lib/Target/PowerPC/PPCInstrInfo.td
+2-0llvm/lib/Target/PowerPC/PPCInstr64Bit.td
+13-153 files

LLVM/project 0ceb20ellvm/test/Transforms/InstCombine simplify-demanded-fpclass-maximum.ll simplify-demanded-fpclass-minimum.ll

InstCombine: Add more tests for min/max SimplifyDemandedFPClass

Test some more refined cases, such as ordering with 0s and within
known positive and known negative cases.
DeltaFile
+394-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maximum.ll
+393-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minimum.ll
+392-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maximumnum.ll
+392-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minimumnum.ll
+1,571-04 files