LLVM/project 277069eflang/include/flang/Frontend CompilerInstance.h, flang/lib/Frontend FrontendActions.cpp

[Flang] Adjust pass plugin support to match Clang (#174006)

- Pass plugins can use LLVM options, matching #173287.
- Pass plugins can run a hook before codegen, matching #171872.
- Pass plugins are now tested whenever they can be built, matching
#171998.

Plugins currently don't work on AIX, tracked in #172203.
DeltaFile
+42-21flang/lib/Frontend/FrontendActions.cpp
+38-0flang/test/Driver/pass-plugin-codegen.f90
+17-1flang/include/flang/Frontend/CompilerInstance.h
+15-0flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
+7-4flang/test/Driver/pass-plugin.f90
+3-3flang/test/CMakeLists.txt
+122-292 files not shown
+124-308 files

LLVM/project 87d6c27llvm/tools/llvm-objdump COFFDump.cpp

[llvm-objdump][NFC] Use EnumEntry from Support (#174155)

Don't duplicate the EnumEntry type in llvm-objdump.

Spliced off from #173868, where this is required to avoid the name
collision.
DeltaFile
+14-18llvm/tools/llvm-objdump/COFFDump.cpp
+14-181 files

LLVM/project 76c300cbolt/lib/Passes PointerAuthCFIFixup.cpp, bolt/lib/Target/AArch64 AArch64MCPlusBuilder.cpp

[BOLT][BTI] Fix assertions checking getNumOperands (#174600)

Several BTI-related functions are checking that a call MCInst has one
non-annotation operand.

This patch changes these checks to use MCPlus::getNumPrimeOperands,
instead of getNumOperands.

Testing: 
added annotations to existing gtests to serve as regression
tests. These now also explicitly check getNumOperands and getNumPrimeOperands
usage on the annotated MCInsts.
DeltaFile
+14-0bolt/unittests/Core/MCPlusBuilder.cpp
+6-5bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
+1-1bolt/lib/Passes/PointerAuthCFIFixup.cpp
+21-63 files

LLVM/project ad2c2b2clang/test/CodeGen pass-plugins.c codegen-plugins.c

[Clang][NFC] XFAIL plugin tests on AIX

See: https://github.com/llvm/llvm-project/pull/171872#issuecomment-3716175811
DeltaFile
+2-0clang/test/CodeGen/pass-plugins.c
+2-0clang/test/CodeGen/codegen-plugins.c
+4-02 files

LLVM/project c15fcd1llvm/lib/Target/AArch64 AArch64InstrFormats.td, llvm/lib/Target/AArch64/MCTargetDesc AArch64MCTargetDesc.h

Revert "[llvm-exegesis] Add AArch64 operand initializers, SetRegTo (#169912)"

This reverts commit 686ba67a1aef82d13e9368e1babaf6ce96ecf738.
DeltaFile
+0-127llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
+0-126llvm/lib/Target/AArch64/AArch64InstrFormats.td
+0-105llvm/test/tools/llvm-exegesis/AArch64/setReg_init_check.s
+2-12llvm/test/tools/llvm-exegesis/AArch64/all-opcodes.test
+0-2llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
+2-3725 files

LLVM/project 72f18a0llvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/CodeGen/AMDGPU combine-scalar-selects.ll combine-scalar-selects-asm.ll

[VectorCombine] Fold scalar selects from bitcast into vector select (#173990)

DeltaFile
+1,874-0llvm/test/CodeGen/AMDGPU/combine-scalar-selects.ll
+1,372-0llvm/test/CodeGen/AMDGPU/combine-scalar-selects-asm.ll
+118-0llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+3,364-03 files

LLVM/project d618a07bolt README.md

[BOLT][Docs] Add arm/large-bolt-tests to README

On AArch64, we recommend to also test against binaries hosted at:
- https://github.com/arm/large-bolt-tests
DeltaFile
+12-5bolt/README.md
+12-51 files

LLVM/project 029e529clang/docs ReleaseNotes.rst, clang/lib/Sema SemaLambda.cpp

[Clang] prevent assertion failure by avoiding always-dependent lambdas in constraint-related nested scopes (#173776)

Fixes #172814

--- 

This patch resolves an issue in which a lambda could be classified as
always-dependent while traversing nested scopes, causing an assertion
failure during capture handling.

Changes in PR #93206 expanded scope-based dependency handling in a way
that could mark certain lambdas as always-dependent when no
template-dependent context was present.

This update refines the criteria for assigning
`LambdaDependencyKind::LDK_AlwaysDependent` and applies it only after
traversal reaches a distinct enclosing function scope with
template-dependent parameters.
DeltaFile
+9-5clang/lib/Sema/SemaLambda.cpp
+7-1clang/test/SemaCXX/lambda-unevaluated.cpp
+1-0clang/docs/ReleaseNotes.rst
+17-63 files

LLVM/project 7f54675bolt README.md

[BOLT][Docs] Add arm/large-bolt-tests to README

On AArch64, we recommend to also test against binaries hosted at:
- https://github.com/arm/large-bolt-tests
DeltaFile
+11-5bolt/README.md
+11-51 files

LLVM/project a83c894llvm/include/llvm/IR Constants.h

Reapply [ConstantInt] Disable implicit truncation in ConstantInt::get() (#171456)

Reapply after additional fixes.

-----

Disable implicit truncation in the ConstantInt constructor by default.
This means that it needs to be passed a signed/unsigned (depending on
the IsSigned flag) value matching the bit width.

The intention is to prevent the recurring bug where people write
something like `ConstantInt::get(Ty, -1)`, and this "works" until `Ty`
is larger than 64-bit and then the value is incorrect due to missing
type extension.

This is the continuation of
https://github.com/llvm/llvm-project/pull/112670, which originally
allowed implicit truncation in this constructor to reduce initial scope
of the change.
DeltaFile
+4-7llvm/include/llvm/IR/Constants.h
+4-71 files

LLVM/project 42396ecllvm/docs DeveloperPolicy.rst

DeveloperPolicy: Add note about legacy bitcode performance

Note that bitcode does not attempt to guarantee performance
parity with upgraded bitcode.
DeltaFile
+3-0llvm/docs/DeveloperPolicy.rst
+3-01 files

LLVM/project 164cfdabolt/test/AArch64 rseq.s

[BOLT][AArch64] Add rseq test (#174413)

DeltaFile
+36-0bolt/test/AArch64/rseq.s
+36-01 files

LLVM/project fb39250bolt/unittests/Core MCPlusBuilder.cpp

improve regression tests
DeltaFile
+10-6bolt/unittests/Core/MCPlusBuilder.cpp
+10-61 files

LLVM/project 5a3b8bdllvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

Respond to review comments
DeltaFile
+8-5llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+2-10mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+1-1mlir/test/Target/LLVMIR/openmp-taskloop-untied.mlir
+1-1mlir/test/Target/LLVMIR/openmp-taskloop.mlir
+1-1mlir/test/Target/LLVMIR/openmp-taskloop-final.mlir
+1-1mlir/test/Target/LLVMIR/openmp-taskloop-grainsize.mlir
+14-196 files not shown
+20-2512 files

LLVM/project c55c2ab.ci/buildbot worker.py README.md, polly/ci polly-x86_64-linux-test-suite.py polly-x86_64-linux-test-suite.cmake

[Buildbot][Polly] Move polly-x86_64-linux-test-suite build instructions into main repository (#166809)

Allow the main llvm-project repository to contain the buildbot builder
instructions, instead of storing them in llvm-zorg. The corresponding
llvm-zorg PR is https://github.com/llvm/llvm-zorg/pull/648.

Using polly-x86_64-linux-test-suite as a proof-of-concept because that
builder is currently offline, I am its maintainer, and is easier to
build than an configuration supporting offload. Once the design has been
decided, more builders can follow.

Advantages are:
* It is easier to make changes in the llvm-project repository. There are
  more reviewers than for the llvm-zorg repository.
* Buildbot changes can be made in the same PR with changes that require
  updating the buildbot, e.g. changing the name of a CMake option.
* Configuration changes take effect immeditately when landing; no
  buildbot master restart needed.
* Some builders store a CMake cache file in the llvm-project repository

    [36 lines not shown]
DeltaFile
+577-0.ci/buildbot/worker.py
+76-0polly/ci/polly-x86_64-linux-test-suite.py
+49-0.ci/buildbot/README.md
+11-0polly/ci/polly-x86_64-linux-test-suite.cmake
+1-0polly/ci/.gitignore
+714-05 files

LLVM/project ea7bbdeclang/lib/Analysis/LifetimeSafety FactsGenerator.cpp, clang/test/Sema warn-lifetime-safety.cpp warn-lifetime-safety-suggestions.cpp

dereference_operator
DeltaFile
+71-11clang/test/Sema/warn-lifetime-safety.cpp
+11-1clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+6-3clang/test/Sema/warn-lifetime-safety-suggestions.cpp
+6-0clang/test/Sema/warn-lifetime-safety-dataflow.cpp
+94-154 files

LLVM/project 247cc5allvm/docs AMDGPUUsage.rst

Fix rules about barrier init, and prevent out of thin air behavior
DeltaFile
+14-1llvm/docs/AMDGPUUsage.rst
+14-11 files

LLVM/project eb866aallvm/include/llvm/Transforms/Utils UnrollLoop.h LoopPeel.h, llvm/lib/Transforms/Scalar LoopUnrollPass.cpp

[LoopPeel] Peel last iteration to enable load widening

In loops that contain multiple consecutive small loads (e.g., 3 bytes
loading i8's), peeling the last iteration makes it safe to read beyond
the accessed region, enabling the use of a wider load (e.g., i32) for
all other N-1 iterations.

Patterns such as:
```
  %a = load i8, ptr %p
  %b = load i8, ptr %p+1
  %c = load i8, ptr %p+2
  ...
  %p.next = getelementptr i8, ptr %p, 3
```

Can be transformed to:
```
  %wide = load i32, ptr %p  ; Read 4 bytes

    [9 lines not shown]
DeltaFile
+616-0llvm/test/Transforms/LoopUnroll/peel-last-iteration-load-widening.ll
+230-1llvm/lib/Transforms/Utils/LoopPeel.cpp
+104-0llvm/test/Transforms/LoopUnroll/peel-last-iteration-load-widening-be.ll
+24-10llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
+10-8llvm/include/llvm/Transforms/Utils/UnrollLoop.h
+7-1llvm/include/llvm/Transforms/Utils/LoopPeel.h
+991-206 files

LLVM/project c85b8ffmlir/include/mlir/Dialect/MemRef/IR MemRefOps.td, mlir/lib/Dialect/MemRef/IR MemRefOps.cpp

[MemRef] Add dim reification for AssumeAlignmentOp (#174477)

DeltaFile
+35-0mlir/test/Dialect/MemRef/resolve-dim-ops.mlir
+7-0mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
+3-1mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
+45-13 files

LLVM/project b919d62mlir/include/mlir-c BuiltinTypes.h, mlir/include/mlir/Bindings/Python IRTypes.h

[MLIR][Python] Forward the name of MLIR types to Python side (#174700)

In this PR, I added a C API for each (upstream) MLIR type to retrieve
its type name (for example, `IntegerType` -> `mlirIntegerTypeGetName()`
-> `"builtin.integer"`), and exposed a corresponding `type_name` class
attribute in the Python bindings (e.g., `IntegerType.type_name` ->
`"builtin.integer"`). This can be used in various places to avoid
hard-coded strings, such as eliminating the manual string in
`irdl.base("!builtin.integer")`.

Note that parts of this PR (mainly mechanical changes) were produced via
GitHub Copilot and GPT-5.2. I have manually reviewed the changes and
verified them with tests to ensure correctness.
DeltaFile
+84-0mlir/lib/CAPI/IR/BuiltinTypes.cpp
+56-0mlir/include/mlir-c/BuiltinTypes.h
+43-0mlir/test/python/ir/builtin_types.py
+29-0mlir/include/mlir/Bindings/Python/IRTypes.h
+28-0mlir/lib/CAPI/Dialect/EmitC.cpp
+20-0mlir/lib/CAPI/Dialect/Quant.cpp
+260-025 files not shown
+451-031 files

LLVM/project eb13822clang/include/clang/Basic BuiltinsAMDGPU.def, clang/test/CodeGenHIP builtins-amdgcn-gfx950-cvt.hip

[AMDGPU] Modifies cvt and atomic builtin def to take _Float16 for HIP/C++ (#174707)

For cvt and atomic `__builtin_amdgcn_cvt` builtins, using 'x' in the def
to take _Float16 for HIP/C++ and half for OpenCL.
DeltaFile
+419-0clang/test/CodeGenHIP/builtins-amdgcn-gfx950-cvt.hip
+22-22clang/include/clang/Basic/BuiltinsAMDGPU.def
+441-222 files

LLVM/project 58566dd.github new-prs-labeler.yml

[CI] Add more glob patterns for `mlir:python` label

Right now, some paths for `mlir:python` are missing, which means the right maintainers don’t always get notified. This PR adds those paths.
DeltaFile
+3-0.github/new-prs-labeler.yml
+3-01 files

LLVM/project 55eaa6cllvm/lib/Transforms/InstCombine InstCombineCalls.cpp, llvm/test/Transforms/InstCombine/AArch64 neon-shift-intrinsics.ll

[InstCombine][AArch64] Lower NEON shift intrinsics when possible (#172465)

DeltaFile
+429-0llvm/test/Transforms/InstCombine/AArch64/neon-shift-intrinsics.ll
+50-0llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+479-02 files

LLVM/project b4ed102clang/lib/Sema SemaModule.cpp, clang/test/Modules pr174543.cppm

[C++20] [Modules] Avoid infinite loop when checking TU local exposures (#174704)

Close https://github.com/llvm/llvm-project/issues/174543

The root cause of the problem is that the recursion in the code pattern
triggers infinite loop in the checking process for TU local exposure.
DeltaFile
+8-0clang/lib/Sema/SemaModule.cpp
+8-0clang/test/Modules/pr174543.cppm
+16-02 files

LLVM/project 3fbe927llvm/test/Transforms/LoopVectorize/RISCV tail-folding-complex-mask.ll

[LV][EVL] Add test case for issue #173260. nfc (#173262)

DeltaFile
+197-0llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll
+197-01 files

LLVM/project 62ac813mlir/lib/Target/Cpp TranslateToCpp.cpp, mlir/test/Target/Cpp global.mlir

[mlir][emitc] Fix creating pointer from constant array (#162083)

Modify the C++ emitter to detect when an AddressOf op traces back to a const global. If it does, emit a C-style cast `(T*)(&...)` to strip the const qualification.
DeltaFile
+105-3mlir/test/Target/Cpp/global.mlir
+55-3mlir/lib/Target/Cpp/TranslateToCpp.cpp
+160-62 files

LLVM/project 50de34e

Revert "[UniformityAnalysis] Remove an incorrect assertion in uniformity anal…"

This reverts commit 371fad28244a16f64e707eb8e9889202fdacf85f.
DeltaFile
+0-00 files

LLVM/project 0501950llvm/include/llvm/ADT GenericUniformityImpl.h, llvm/test/Analysis/UniformityAnalysis/AMDGPU incorrect-assertion-issue-170048.ll

Revert "[UniformityAnalysis] Remove an incorrect assertion in uniformity analysis (#174117)"

This reverts commit 371fad28244a16f64e707eb8e9889202fdacf85f.

The change only fixes the superficial assertion. The real problem is that bb.3
and bb.4 should not have been identified as joins of bb.5
DeltaFile
+0-56llvm/test/Analysis/UniformityAnalysis/AMDGPU/incorrect-assertion-issue-170048.ll
+3-1llvm/include/llvm/ADT/GenericUniformityImpl.h
+3-572 files

LLVM/project 2451172clang/lib/Serialization ASTWriterDecl.cpp, clang/test/Modules class-instantiate-no-change.cppm malformed-constraint-template-non-type-parm-decl.cpp

[C++20] [Modules] Don't update MarkAsUsed information for decls from named modules (#174687)

Declarations from named modules are used naturally. Thet are
declarations in other TU. We don't need to record the information for
updating them.
DeltaFile
+50-0clang/test/Modules/class-instantiate-no-change.cppm
+12-12clang/test/Modules/malformed-constraint-template-non-type-parm-decl.cpp
+4-1clang/lib/Serialization/ASTWriterDecl.cpp
+66-133 files

LLVM/project 4ac6431mlir/lib/Transforms/Utils RegionUtils.cpp, mlir/test/Transforms canonicalize-block-merge.mlir

[mlir] Fix crash in dropRedundantArguments with produced operands. (#172759)

dropRedundantArguments was incorrectly indexing into forwardedOperands
using the block argument index directly. This crashes when the block has
produced operands (generated by the terminator, not forwarded from
predecessors) because forwardedOperands doesn't include them.

The fix checks isOperandProduced() to skip produced arguments and uses
SuccessorOperands::operator[] which handles the offset correctly.
DeltaFile
+33-0mlir/test/Transforms/canonicalize-block-merge.mlir
+13-3mlir/lib/Transforms/Utils/RegionUtils.cpp
+46-32 files