[all-commits] [llvm/llvm-project] 2340e6: [VPlan] Don't replicate extractvalues that would r...
Alexey Bataev via All-commits
all-commits at lists.llvm.org
Mon Sep 7 06:43:38 PDT 2026
Branch: refs/heads/users/alexey-bataev/spr/slp-enable-full-non-power-of-2-vectorization-by-default
Home: https://github.com/llvm/llvm-project
Commit: 2340e6238c911ffdbed6c716114f9edabce2a6a7
https://github.com/llvm/llvm-project/commit/2340e6238c911ffdbed6c716114f9edabce2a6a7
Author: Luke Lau <luke at igalia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/multiple-result-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/struct-return-replicate.ll
Log Message:
-----------
[VPlan] Don't replicate extractvalues that would require extracting lanes from a struct (#219941)
In the added test cases, we have an extractvalue in a replicate region:
vector.ph:
WIDEN-INTRINSIC ir<%sincos> = call llvm.sincos(ir<0.000000e+00>)
...
pred.store.if:
EMIT vp<%3> = extractelement ir<%sincos>, ir<0>
CLONE ir<%cos> = extractvalue vp<%3>
CLONE store ir<%cos>, ir<%cos_dst>
However the operand
a) doesn't generate per lane
b) isn't defined in the same replicate region
so replicateRegionByVF tries to extract a lane from a struct, which
doesn't work. This fixes it by choosing to widen the extractvalue
earlier on when we know we'll end up trying to extract lanes otherwise.
This is an alternative to #219819
Fixes https://github.com/llvm/llvm-project/issues/210376
Commit: 67f9f425e3bff87da61b041a98a5dd033e12b9d8
https://github.com/llvm/llvm-project/commit/67f9f425e3bff87da61b041a98a5dd033e12b9d8
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/Analysis/TBAAForest.h
M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
M flang/lib/Optimizer/Transforms/AddAliasTags.cpp
M flang/test/Fir/tbaa-codegen2.fir
M flang/test/Transforms/tbaa.fir
Log Message:
-----------
[fir][AddAliasTags] allow usage of AddAliasTag pass after FirToMemref (#219493)
This is a first patch to improve mixed-dialect support in Flang. The
goal is to allow TBAA tags to be generated before codegen even
after FIRToMemRef or ExternalNameConversion has run.
Concretely:
- Treat non-FIR allocation operations as local allocations under the
"allocated data" TBAA subtree. They cannot alias Fortran dummy
arguments. If a conversion pass copied the Fortran variable uniq_name
onto the new allocation, use that name so the access is distinct from other
named allocations; otherwise use the unnamed "allocated data" tag.
- Always look for fir.internal_name when building the TBAA tree, not
only on llvm.func. This removes the assumption that
ExternalNameConversion has not run before AddAliasTags and
makes it possible to place the pass later in new pipelines.
Note that this patch is not enough to generate Fortran TBAA tags in LLVM
IR after FIRToMemRef. MemRef will also need to understand the tbaa
attribute and propagate it through its LLVM lowering.
Commit: 9c4f80497ccfc5324a76aad70fc3f432691188c0
https://github.com/llvm/llvm-project/commit/9c4f80497ccfc5324a76aad70fc3f432691188c0
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpFrame.cpp
Log Message:
-----------
[clang][bytecode][NFC] Use Func->getDecl() instead of getCallee() (#220230)
We already `assert(Func)` above and use `Func` directly in other places
in this function, so just get the `FunctionDecl` from that instead of
going through the virtual function.
Commit: af2ddf42e4499169f8d96d1ff928f3d92bbcc9a2
https://github.com/llvm/llvm-project/commit/af2ddf42e4499169f8d96d1ff928f3d92bbcc9a2
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/SmallVector.h
M llvm/unittests/ADT/SmallVectorTest.cpp
Log Message:
-----------
[ADT] Allow SmallVector move construction without move assignment (#219934)
Move-construct inline elements directly instead of using move assignment.
This avoids requiring element types to be move-assignable, only move-constructible.
Such types at the moment forces us to fall back to std::vector, for no good reason other
than an implementation quirks which is fixed here.
Assisted-by: Codex
Commit: 9e25ecd7dbb06d0af6faa461af033c5ca3ecc590
https://github.com/llvm/llvm-project/commit/9e25ecd7dbb06d0af6faa461af033c5ca3ecc590
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
Log Message:
-----------
[analyzer] Use makeNode instead of ExplodedGraph::getNode (#218462)
The method `CoreEngine::makeNode` is the canonical way of creating a new
node in the exploded graph and connecting it to its predecessor. Apply
it in two locations that previously duplicated its logic.
Note that `ExplodedGraph::getNode` always returns a non-null
`ExplodedNode *` (that points to either an old node or the freshly
created node); `inlineCall` had no reason to check whether it returns a
nullpointer.
This change is very close to being NFC, but could technically change the
behavior if the state is `PosteriorlyOverconstrained` (which is
vanishingly rare).
Commit: 7a0d80e8fac18a9eb0f9d8f9af59b6552c65af29
https://github.com/llvm/llvm-project/commit/7a0d80e8fac18a9eb0f9d8f9af59b6552c65af29
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
Log Message:
-----------
RISCV: Pass instruction and operand index to getMinimumVLForUser (#219509)
Commit: 5099b35d9db46421fa7d7263cce951a54c65f21f
https://github.com/llvm/llvm-project/commit/5099b35d9db46421fa7d7263cce951a54c65f21f
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
Log Message:
-----------
[SandboxVec][LoadStoreVec][NFC] Extract vectorizeStores from runOnRegion (#215860)
Move runOnRegion()'s body -- the store-chain legality checks, operand
classification, vector value construction, and profitability decision --
into a new vectorizeStores(Bndl, Rgn, Sched, A) method. runOnRegion()
now only builds the initial bundle from the region's Aux and calls
vectorizeStores() once. Also extract the cost-check tail into
acceptIfProfitable(), a small helper worth having on its own. NFC.
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 0ea84b42aa30a7f1e0b5cb7cbac35b53bd56345a
https://github.com/llvm/llvm-project/commit/0ea84b42aa30a7f1e0b5cb7cbac35b53bd56345a
Author: Marco Milanese <marco.milanese at sonarsource.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
A clang/test/Analysis/ctu/stu-workremaining-with-ctu-calls.cpp
A clang/test/Analysis/ctu/stu-workremaining.cpp
Log Message:
-----------
[analyzer] Fix false positive on `UnreachableCode` with CTU mode
This PR fixes a false positive on `UnreachableCodeChecker` occurring
when STU exploration exhausts the steps budget and the CTU phase
completes its exploration (i.e., has no more work to do).
There are three code pieces to consider:
* When we transition from STU exploration to CTU exploration
([`CoreEngine.h:173`](https://github.com/llvm/llvm-project/blob/main/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp#L173))
we move `CTUWList` to `WList`:
```c++
if (CTUWList) {
NumSTUSteps += STUSteps;
const unsigned MinCTUSteps =
this->ExprEng.getAnalysisManager().options.CTUMaxNodesMin;
const unsigned Pct =
this->ExprEng.getAnalysisManager().options.CTUMaxNodesPercentage;
unsigned MaxCTUSteps = std::max(STUSteps * Pct / 100, MinCTUSteps);
WList = std::move(CTUWList); // remaining STU work gets discarded
const unsigned CTUSteps = ProcessWList(MaxCTUSteps);
NumCTUSteps += CTUSteps;
}
```
* At the end of the analysis `UnreachableCodeChecker` checks for code
that was not explored. This is corresponds to actual dead code only as
long as the exploration is complete, thus (correctly) the checker calls
`hasWorkRemaining`
([`CoreEngine.h:149`](https://github.com/llvm/llvm-project/blob/main/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h#L149-L151)).
If such predicate is true it immediately bails out as any finding may be
due to the uncomplete exploration.
* `hasWorkRemaining` relies on `WList` being empty or not to determine
if there is work remaining (i.e., complete/uncomplete exploration):
```c++
bool hasWorkRemaining() const { return wasBlocksExhausted() ||
WList->hasWork() ||
wasBlockAborted(); }
```
Now, consider the scenario where:
1. STU exploration was *not* exhaustive (i.e., some code was not
analyzed because we did not have enough steps budget).
2. CTU exploration was exhaustive.
In this case `hasWorkRemaining` should return `true` as STU exploration
had more work to do, but because we override it with the CTU worklist
(and the latter is fully emptied), then `hasWorkRemaining` will return
`false`, raising the false positive.
This can be simulated in the regression test by setting a very low STU
budget and enabling CTU mode. Actually, we don't need to do any CTU work
or even provide extra TUs; this is because the switch to the CTU
worklist (empty) is always done when CTU mode is enabled.
--
CPP-8856
Commit: e9e08e8a1fb9211bc823efde25bdbebba5814f58
https://github.com/llvm/llvm-project/commit/e9e08e8a1fb9211bc823efde25bdbebba5814f58
Author: Scott Manley <rscottmanley at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/include/flang/Lower/ConvertConstant.h
M flang/include/flang/Lower/ConvertVariable.h
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
M flang/include/flang/Optimizer/Dialect/FIRAttr.td
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Lower/ConvertConstant.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/IO.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/Builder/Runtime/EnvironmentDefaults.cpp
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFComputeSharedMemoryOffsetsAndSize.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceGlobal.cpp
M flang/unittests/Optimizer/Builder/FIRBuilderTest.cpp
M mlir/lib/Dialect/OpenACC/Transforms/ACCDeclareGPUModuleInsertion.cpp
Log Message:
-----------
[flang][FIR] Represent fir.global linkage with a typed enum attribute (#220243)
Replace the string linkName on fir.global with fir::LinkageAttr /
LinkageEnum so only the supported linkages can be used, and CodeGen can
map them without string compares.
Commit: df25b023555de2f6905e903e6d7c544bc6055b81
https://github.com/llvm/llvm-project/commit/df25b023555de2f6905e903e6d7c544bc6055b81
Author: agozillon <Andrew.Gozillon at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
R flang/test/Lower/OpenMP/cptr-usm-close-and-use-device-ptr.f90
Log Message:
-----------
[Flang][OpenMP] Remove special USM/Close handling for c_ptr's in MapInfoFinalization (#219508)
This no longer appears to be necessary, as can be evidenced by the
usm_map_close.f90 check-offload test still passing with the removal of
the code. We also shouldn't be applying the close map type to things
without a user specifying it explicitly as this will force data
transferal in zero-copy mode.
We also don't need special handling for c_ptr's as they are just a
record type with an i64 member, this means it will be mapped as a whole
and does not need a member map, any map type applied to the top level
record type gets applied to the member in this scenario. So, map(close,
to: c_ptr) will encompass the address and outer layer without this
segment of code currently.
Commit: fccf59f2a7c3f17c96f48555f2cf5f4140e47ad7
https://github.com/llvm/llvm-project/commit/fccf59f2a7c3f17c96f48555f2cf5f4140e47ad7
Author: agozillon <Andrew.Gozillon at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/lib/Lower/OpenMP/Utils.cpp
R flang/test/Lower/OpenMP/default-mapper-iso-c-nested.f90
M flang/test/Lower/OpenMP/target.f90
A offload/test/offloading/fortran/target-map-cptr-cfunptr.f90
Log Message:
-----------
[Flang][OpenMP] Stop implicit declare mapper emission for derived types containing iso_c types (#219543)
Follow up patch to the previous PR, removing the mapper emission for
iso_c types as it should be unrequired as shown by the check-offload
test added in the PR. When mapping the derived type we capture the whole
object, including the iso_c types that are themselves record types
containing an integer for the address.
The overall intent is to try and limit the number of cases where we emit
mappers as they can be detrimental to performance in certain cases.
Commit: bb3b509138f4a34cb3d5c659955ccc16745ae82e
https://github.com/llvm/llvm-project/commit/bb3b509138f4a34cb3d5c659955ccc16745ae82e
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
Log Message:
-----------
[clang][bytecode] Add an `ExplicitlyDestroyed` flag to `LocalScope` (#220253)
When a local scope has been destroyed via `destroyLocals()`, don't do it
again automatically (further calls to `destroyLocals()` keep working, as
before).
For
```c++
constexpr void inc4(int &a) {
char c[1];
++a;
}
```
we used to generate:
```
inc4 0x7c6e999e5480
frame size: 64
arg size: 48
rvo: 0
this arg: 0
0 InitScope 0
16 GetParamPtr 0
32 IncPopSint32 1
48 Destroy 0
64 Destroy 0
80 RetVoid
```
and now we generate:
```
inc4 0x7d3b1b1e5480
frame size: 64
arg size: 48
rvo: 0
this arg: 0
0 InitScope 0
16 GetParamPtr 0
32 IncPopSint32 1
48 Destroy 0
64 RetVoid
```
Commit: 07ed92d6987f639b2c29c37a08d99313c69293cd
https://github.com/llvm/llvm-project/commit/07ed92d6987f639b2c29c37a08d99313c69293cd
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/include/llvm/Analysis/AliasSetTracker.h
M llvm/lib/Analysis/AliasSetTracker.cpp
Log Message:
-----------
[Analysis] Remove dead declarations in AliasAnalysis and AliasSetTracker (NFC) (#220184)
AAResults::doesNotAccessMemory(const Function *),
AAResults::onlyReadsMemory(const Function *): The last callers were
removed on December 15, 2004 in commits b17f3e13ec7a and 71d04bce5509
when call sites were migrated to getModRefBehavior (later renamed to
getMemoryEffects).
AAResults::canBasicBlockModify(..., const Value *): Added on
September 14, 2010 in commit 41f14cf3e981ca1eb39d087d4c567098ee56514d
without any callers.
AAResults::callCapturesBefore(..., const Value *): Added on May 14, 2012
in commit a968caf8e024c51cb90872fef60cd529043e25d0 without any callers.
AAResults::canInstructionRangeModRef(..., const Value *): Added on
December 15, 2014 in commit a5599bfd7215e6ded1aad312c192f906d473877a
without any callers.
AliasSetTracker::add(const AliasSetTracker &): Added on March 3, 2003 in
commit c048bb3addb47b8a9b01eb756ce5060db3ee6585 without any callers.
Assisted-by: Antigravity
Commit: e0424be5bb143bac25257f42fc2d0e217c5e1895
https://github.com/llvm/llvm-project/commit/e0424be5bb143bac25257f42fc2d0e217c5e1895
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/docs/ReleaseNotes.md
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
A flang/test/Integration/debug-local-storage.f90
A flang/test/Integration/debug-module-constant-relocation.f90
A flang/test/Integration/debug-module-constant.f90
A flang/test/Integration/debug-module-not-defined.f90
A flang/test/Integration/debug-submodule-procedure.F90
M flang/test/Integration/debug-use-stmt.f90
A flang/test/Transforms/debug-local-constant.fir
M flang/test/Transforms/debug-local-global-storage-1.fir
M flang/test/Transforms/debug-module-1.fir
A flang/test/Transforms/debug-module-constant-declaration.fir
A flang/test/Transforms/debug-module-constant.fir
M flang/test/Transforms/debug-module-line.fir
A flang/test/Transforms/debug-module-submodule-procedure.fir
Log Message:
-----------
Reland [flang][debug] Emit debug info for named constants- #213974 (#215369)
Reland of #213974, which was reverted in #214813 because of #214777.
This is the same as #213974 with a check added to skip a constant for which we only have a declaration. A constant of a user module is still described in the unit defining the module, so nothing is lost there. An intrinsic module has no such unit, so its constants are not described until we emit DW_AT_const_value for them, which can be done separately.
Whether a module is described as a definition or a declaration is now decided up front rather than inferred from whichever member reached getOrCreateModuleAttr first.
Two tests are added: one on the pass, and one checking that the object file has no undefined symbol from iso_fortran_env, which is the case the original change did not cover.
Commit: 937027de8df5823b2fa23c5aeabdef2cb05af767
https://github.com/llvm/llvm-project/commit/937027de8df5823b2fa23c5aeabdef2cb05af767
Author: Valery Dmitriev <valeryd at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
A flang/test/Transforms/FIRToMemRef/index-overflow-flags.mlir
M flang/test/Transforms/FIRToMemRef/slice.mlir
Log Message:
-----------
[flang] Try to keep overflow flags in `FIRToMemRef::canonicalizeIndex'. (#220127)
The method specifically runs on every `fir.array_coor` subscript. For
`arith.addi` it recursively canonicalizes both operands and then
unconditionally rebuilds the op defaulting flags to `none`. Thus
subscript operand becomes a flagless clone, with the original one left
behind dead. The patch makes a couple of changes: (1) use the original
op if unmodified and (2) when its type preserved keep overflow flags of
the original.
Assisted-by: Claude Opus 5
Commit: 8ac016e7cc566701ef2751e23edc6bf44ef233e3
https://github.com/llvm/llvm-project/commit/8ac016e7cc566701ef2751e23edc6bf44ef233e3
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td
M llvm/lib/Target/RISCV/RISCVSchedule.td
A llvm/test/MC/RISCV/rvq-zfhmin-invalid.s
A llvm/test/MC/RISCV/rvq-zfhmin-valid.s
Log Message:
-----------
[RISCV] Add MC support for FCVT.H.Q and FCVT.Q.H (#220176)
According to the
[SPEC](https://github.com/riscv/riscv-isa-manual/blob/e5c0c60fa1fbfcc1d343e314299d15693485f678/src/unpriv/zfh.adoc?plain=1#L77-L82),
`FCVT.Q.H` and `FCVT.H.Q` are available when both the Q and Zfhmin
extensions are present. This commit adds MC support for these
instructions.
Commit: 9218dcbd52414fa9ce04bc12dffeaac3ae7bc624
https://github.com/llvm/llvm-project/commit/9218dcbd52414fa9ce04bc12dffeaac3ae7bc624
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
Revert "[Bazel] Fixes 16a770d (#220089)" (#220153)
Commit: 63078085291f2ad1febc96f4e87cd70955c584a6
https://github.com/llvm/llvm-project/commit/63078085291f2ad1febc96f4e87cd70955c584a6
Author: Jeremy Johnson <jeremy.johnson at arm.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
M mlir/test/Dialect/Tosa/invalid_extension.mlir
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p0-invalid.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p1-valid.mlir
M mlir/test/Dialect/Tosa/verifier.mlir
Log Message:
-----------
[mlir][tosa] Add support for mxfp in TRANSPOSE_CONV2D (#218953)
TOSA Speicifcation changes:
* https://github.com/arm/tosa-specification/pull/65
* https://github.com/arm/tosa-specification/pull/77
Signed-off-by: Jeremy Johnson <jeremy.johnson at arm.com>
Commit: 012ea2319f73fc24c1614f8c8868c26de6d58ce9
https://github.com/llvm/llvm-project/commit/012ea2319f73fc24c1614f8c8868c26de6d58ce9
Author: Alexander Hück <ahuck at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
Log Message:
-----------
[AMDGPU][DOC] Fix private address space in CFI documentation (#220274)
The CFI implementation has always used the private wave address space.
Update the documentation, which erroneously referred to the private lane
address space.
Commit: fff9753f4ff3ce302d791f559f4fa085a7c9eba8
https://github.com/llvm/llvm-project/commit/fff9753f4ff3ce302d791f559f4fa085a7c9eba8
Author: IllogicalMoose <joshualang at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsNVPTX.td
M clang/test/CodeGen/builtins-nvptx.c
Log Message:
-----------
[Clang][NVPTX] Add sm_107 to SM_Instantiate for NVPTX builtins (#220019)
Add sm_107 to the list of architectures instantiated for NVPTX builtins
in BuiltinsNVPTX.td.
Also add a test invocation with -target-cpu sm_107a to builtins-nvptx.c.
Commit: 73156395412f075a9a43bf313ca565795d2b6625
https://github.com/llvm/llvm-project/commit/73156395412f075a9a43bf313ca565795d2b6625
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
Log Message:
-----------
[flang][debug] Fix build after fir.global linkage became a typed enum (#220280)
#220243 replaced the string `linkName` on `fir.global` with a typed
`fir::LinkageAttr`, so `GlobalOp::getLinkName()` no longer exists.
It landed 46 minutes before #215369 was merged, and the two changes
touch
disjoint sets of files: #220243 never touched `AddDebugInfo.cpp`, and
#215369 added the only `getLinkName()` call in it. They merged cleanly
with
no textual conflict, and main is currently unable to build flang:
```
flang/lib/Optimizer/Transforms/AddDebugInfo.cpp:564:39: error:
'class fir::GlobalOp' has no member named 'getLinkName';
did you mean 'getLinkage'?
```
Use the typed accessor, matching what #220243 did for the same idiom in
`CUFDeviceGlobal.cpp`.
This is offered in place of reverting #215369 (#220272), since the rest
of
that change is unaffected by the rename. `flang/test/Transforms` and
`flang/test/Integration` pass locally.
Made with [Cursor](https://cursor.com)
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 49d043f831b92a0b824472bbfa5ee99eb003b726
https://github.com/llvm/llvm-project/commit/49d043f831b92a0b824472bbfa5ee99eb003b726
Author: Andrew Haberlandt <ahaberlandt at apple.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M compiler-rt/lib/fuzzer/FuzzerDriver.cpp
M compiler-rt/lib/fuzzer/FuzzerUtil.h
M compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp
M compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp
M compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
M compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
Log Message:
-----------
[libFuzzer] [Darwin] Let the kernel kill fuzzers when OOM (#216836)
Commit: 289b634fc923526464016c46c9bbfce061dcb6e5
https://github.com/llvm/llvm-project/commit/289b634fc923526464016c46c9bbfce061dcb6e5
Author: Kyungwoo Lee <kyulee at meta.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lld/MachO/SyntheticSections.cpp
M lld/MachO/SyntheticSections.h
M lld/MachO/Writer.cpp
M lld/docs/ReleaseNotes.md
A lld/test/MachO/objc-stubs-order-file-icf-safe-thunks.s
A lld/test/MachO/objc-stubs-order-file.s
Log Message:
-----------
[lld][MachO] Order objc stubs by caller priority (#218732)
__objc_stubs is synthetic, so the input section sorting never reaches
its entries. A stub is faulted in when its caller runs, so stubs called
from hot code end up scattered across pages that startup otherwise never
touches.
Record the sections that branch to each stub, give each stub the lowest
priority among its callers, and stable-sort the stubs before addresses
are assigned. Stubs with no prioritized caller keep their relative order
at the end.
This reduces page faults in __objc_stubs by 40% for a large app.
Commit: 7088c00aa22317b674cebcba5d3ede021547d959
https://github.com/llvm/llvm-project/commit/7088c00aa22317b674cebcba5d3ede021547d959
Author: ZERICO2005 <zerico2005 at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/Support/KnownFPClass.h
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Support/KnownFPClass.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
M llvm/unittests/Analysis/ValueTrackingTest.cpp
M llvm/unittests/CodeGen/GlobalISel/KnownFPClassTest.cpp
M llvm/unittests/Target/AArch64/AArch64SelectionDAGTest.cpp
Log Message:
-----------
[KnownFPClass] Refactor direct access to `KnownFPClass::SignBit` [NFC] (#218514)
Part of https://github.com/llvm/llvm-project/issues/217072
This PR is the first step in refactoring `KnownFPClass`. It replaces
direct access to the `SignBit` field with getters and setters.
The long-term goal is to eliminate the `SignBit` field so that
`KnownFPClass` can be represented by a single bitmask, rather than an
`FPClassTest` together with a `std::optional<bool>`.
```c++
struct KnownFPClass {
FPClassTest KnownFPClasses = fcAllFlags;
std::optional<bool> SignBit;
};
struct KnownFPClass {
// Also distinguishes positive/negative qNaN and sNaN.
KnownFPMask KnownFPClasses = kfcAllFlags;
};
```
In particular, the future `KnownFPMask` (name tentative) would directly
encode `kfcPosQNaN`, `kfcNegQNaN`, `kfcPosSNaN`, and `kfcNegSNaN`,
allowing the separate `SignBit` state to be removed.
***
Overall, the plan is to do these commits:
1. Replace direct uses of the `SignBit` field with getters/setters.
(This PR)
2. Replace direct uses of the `KnownFPClasses` field with
getters/setters.
3. Replace `KnownFPClasses` and `SignBit` with a single `KnownFPMask`.
Commit: 5dfed0dd1f01cf1b1ba163cf2a738d46aaf0e0c8
https://github.com/llvm/llvm-project/commit/5dfed0dd1f01cf1b1ba163cf2a738d46aaf0e0c8
Author: Corentin Jabot <corentinjabot at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
R clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.depend/p1.cpp
R clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.depend/p2.cpp
M clang/test/CodeCompletion/attr.cpp
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
M clang/test/Parser/cxx0x-attributes.cpp
M clang/test/Parser/cxx11-stmt-attributes.cpp
M clang/test/Parser/cxx1z-decomposition.cpp
M clang/test/Parser/stmt-attributes.c
M clang/test/Preprocessor/has_attribute.cpp
M clang/test/Preprocessor/macro-reserved-attrs-cxx11.cpp
M clang/test/SemaCXX/attr-cxx0x.cpp
M clang/test/SemaCXX/cxx2c-attributes.cpp
M clang/www/cxx_status.html
Log Message:
-----------
[Clang] Remove `[[carries_dependency]]` (#219912)
Implement
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3475r2.pdf by
rebasing https://reviews.llvm.org/D143670
That initial PR was rejected - however since then,
`[[carries_dependency]]` was removed from the C++ standard.
And while that paper was not a DR, it seems reasonable to no longer
support this attribute at all.
We never did anything with it.
Code search on github found very few uses, except for an old fork of
EASTL.
Note that neither GCC, MSVC, or EDG recognize the attribute.
Commit: de0a006ef659dcf0d800042b28ee867d170e6e0b
https://github.com/llvm/llvm-project/commit/de0a006ef659dcf0d800042b28ee867d170e6e0b
Author: Daniel Paoliello <danpao at microsoft.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/aarch64-security-options.c
Log Message:
-----------
[clang][AArch64] Use B-key for -msign-return-address= on Windows (#220122)
`-mbranch-protection=` defaults to B-key on AArch64 Windows but the
`-msign-return-address=` flag hard-codes `a_key` for every target. That
flag has no syntax for selecting the key, so on AArch64 Windows it used
an unsupported key.
After #203989 trying to use `-msign-return-address=` on AArch64 Windows
became a hard error:
```
error: A-key return address signing is unsupported on AArch64 Windows
```
The fix is to default the key to `b_key` on AArch64 Windows, matching
`parseBranchProtection()`. Windows now emits `pacibsp`/`autibsp` (hint
`#27` / `#31`) with `.seh_pac_sign_lr` for every spelling; other targets
keep `a_key` unless `b_key` is requested.
Assisted-by: Claude Opus 5 (via VS Code)
Commit: 234ce03692ede13ffd2fcb35570d801c1e332814
https://github.com/llvm/llvm-project/commit/234ce03692ede13ffd2fcb35570d801c1e332814
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
A llvm/test/CodeGen/AArch64/sme-za-tailcall-fpdiff-align.ll
Log Message:
-----------
[llvm][AArch64] Ensure stack alignment in non-sibcall tail calls with FPDiff (#217156)
When a caller has a non-multiple of the minimum stack alignment more
argument stack space than the callee it is tail calling, we need to
ensure that the resulting FPDiff's magnitude has been rounded up to a
multiple of the platform's minimum stack alignment.
rdar://184474075
Commit: 890b9c1445772cccd94abad849519cdc490d75f6
https://github.com/llvm/llvm-project/commit/890b9c1445772cccd94abad849519cdc490d75f6
Author: ZERICO2005 <zerico2005 at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/unittests/Support/KnownFPClassTest.cpp
Log Message:
-----------
[KnownFPClass] Fix remaining direct accesses to `KnownFPClass.SignBit` (#220289)
Fixes post commit failures from
https://github.com/llvm/llvm-project/pull/218514
Commit: 67da20374a3e3307681d72cd4701be068820f71c
https://github.com/llvm/llvm-project/commit/67da20374a3e3307681d72cd4701be068820f71c
Author: Ebuka Ezike <e_ezike at apple.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lldb/include/lldb/lldb-enumerations.h
Log Message:
-----------
[lldb] Do not break lldb SBAPI (#219555)
libsanitizers ASan integration was removed in commit
8921ec7e89e024c6185bc99cc195d787b3537ea6.
The flag `eInstrumentationRuntimeTypeLibsanitizersAsan` should not be
renamed since it is part of the public SBAPI.
Commit: 1696f6631c4d622d7ba0fba695658fa0266e3af0
https://github.com/llvm/llvm-project/commit/1696f6631c4d622d7ba0fba695658fa0266e3af0
Author: Anchu Rajendran S <asudhaku at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
A llvm/test/Transforms/LoopFusion/scalar_eq_cannot_fuse.ll
Log Message:
-----------
[LoopFusion] NFC: Add tests for same-iteration scalar dependence fusion (#216243)
Commit: 96a1365dd635b3aa5f58b101d49841ea3d829312
https://github.com/llvm/llvm-project/commit/96a1365dd635b3aa5f58b101d49841ea3d829312
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/test/TableGen/AMDGPUTargetDefSubArchSpelling.td
M llvm/unittests/TargetParser/TargetParserTest.cpp
M llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
Log Message:
-----------
[AMDGPU] Add `getLDSBankCount` query to TargetParser (#219064)
Emit LDSBankCount as a column of the generated AMDGPU GPU table and
expose `getLDSBankCount()` from TargetParser, so consumers that only
have a GPUKind or subarch can read it without an `MCSubtargetInfo`.
Commit: b0829c5a09a9cc480718df21d90c454be5dddb88
https://github.com/llvm/llvm-project/commit/b0829c5a09a9cc480718df21d90c454be5dddb88
Author: Nick Desaulniers <ndesaulniers at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M libcxx/include/__config
M libcxx/include/__cxx03/__config
M libcxx/src/filesystem/operations.cpp
Log Message:
-----------
libcxx: fixups for __BIONIC__ (#219591)
A few header guards seem to check various libc's, but not Android's libc
(Bionic).
Bionic supports:
- arc4random
- copy_file_range
- getcwd() extension
Link:
https://android-review.git.corp.google.com/c/platform/bionic/+/41445
Link:
https://android.googlesource.com/platform/bionic/+/refs/heads/main/libc/SYSCALLS.TXT
Link:
https://android.googlesource.com/platform/bionic/+/refs/heads/main/libc/upstream-openbsd/lib/libc/crypt/arc4random.c
Commit: 1738b7e7fb32953d7ab05eda759cab84c89a9c04
https://github.com/llvm/llvm-project/commit/1738b7e7fb32953d7ab05eda759cab84c89a9c04
Author: Matsu <47756807+khaki3 at users.noreply.github.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToSCF.cpp
M flang/test/Fir/FirToSCF/do-loop.fir
Log Message:
-----------
[flang][FIRToSCF] Build the typed induction variable in i64 and narrow with nsw (#219281)
Example:
```fortran
do i = 1, n
s = s + a(i) * b(i)
end do
```
In this code, the typed DO variable is recomputed in closed form from
the
canonical `index` IV, so narrowing it back to `i32` is a plain
`fir.convert`,
i.e. a bare `trunc`. The `iter_args` phi it replaced carried `nsw`,
giving SCEV
a `{lb,+,step}<nsw>` recurrence in `i32`. Through the `trunc` SCEV no
longer
sees that recurrence, and the loops are unrolled differently. That puts
a
different number of copies in the block, so under `-ffast-math` the
MachineCombiner measures different dependency depths and rebalances the
FP
accumulation tree into `(A+C)+B` instead of `A+(C+B)`, which rounds
differently
in the last bit.
Fix: build the DO variable as `low + step * canonicalIV` in i64, then
narrow the
result with `arith.trunci` carrying `nsw`. The i64 arithmetic cannot
wrap for any
trip count flang supports, and the result is a value of the DO variable
by
construction, so the narrowing is exact. Not `nuw`: the variable may be
negative.
Wider IVs and `set-nsw=false` keep the plain conversion.
Commit: 5407e6e55fe7daf8c48a801e607fa118f65b62be
https://github.com/llvm/llvm-project/commit/5407e6e55fe7daf8c48a801e607fa118f65b62be
Author: Aditya Medhane <sherlockedaditya at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Sema/SemaExpr.cpp
M clang/test/Analysis/pointer-sub.c
M clang/test/Sema/empty1.c
A clang/test/SemaCXX/pointer-sub-zero-size.cpp
Log Message:
-----------
[clang][Sema] Don't report pointer subtraction on a VLA as zero size (#217465)
CheckSubtractionOperands warns when the pointee type has zero size,
because the subtraction divides by that size. A variably modified type
such as int[n] has no statically known size, and getTypeInfoImpl models
it as zero, so the check reported it as an empty type even though its
size is only determined at run time.
Instead of trusting the static size, decide whether the size is provably
zero: walk the array dimensions, folding each variable bound as an
integer constant expression, and warn only when a dimension is provably
zero or the base element type has zero size. Genuinely empty cases keep
warning, including int[0], zero-sized structs, and VLAs of zero-sized
types such as struct Empty vla[n] or int vla[n][0].
Fixes #28328
Commit: 85e903099313aa5ea98d175698aaa40e27a0d743
https://github.com/llvm/llvm-project/commit/85e903099313aa5ea98d175698aaa40e27a0d743
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M clang/tools/cir-translate/cir-translate.cpp
M clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp
M clang/tools/clang-import-test/clang-import-test.cpp
M flang/include/flang/Optimizer/CodeGen/CodeGen.h
M flang/lib/Frontend/FrontendActions.cpp
M llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h
M llvm/include/llvm/IR/IRPrintingPasses.h
M llvm/include/llvm/IR/Metadata.h
M llvm/include/llvm/IR/Module.h
M llvm/include/llvm/IR/ModuleSlotTracker.h
M llvm/include/llvm/IRPrinter/IRPrintingPasses.h
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MIRPrintingPass.cpp
M llvm/lib/CodeGen/MachineBasicBlock.cpp
M llvm/lib/CodeGen/MachineModuleSlotTracker.cpp
M llvm/lib/CodeGen/MachineOperand.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/IRPrintingPasses.cpp
M llvm/lib/IR/LLVMContextImpl.cpp
M llvm/lib/IR/LLVMContextImpl.h
M llvm/lib/IR/Metadata.cpp
M llvm/lib/IR/MetadataImpl.h
M llvm/lib/IR/SSAContext.cpp
M llvm/lib/IRPrinter/IRPrintingPasses.cpp
M llvm/lib/Target/DirectX/DXILPrettyPrinter.cpp
M llvm/test/CodeGen/DirectX/DebugInfo/di-globalvariable.ll
M llvm/test/CodeGen/Hexagon/swp-no-alias.mir
M llvm/test/CodeGen/MIR/AMDGPU/instr-mmra.mir
M llvm/test/CodeGen/MIR/AMDGPU/machine-metadata.mir
M llvm/test/CodeGen/MIR/X86/instr-heap-alloc-operands.mir
M llvm/test/CodeGen/MIR/X86/instr-pcsections.mir
M llvm/test/CodeGen/MIR/X86/instructions-debug-location.mir
M llvm/test/CodeGen/MIR/X86/machine-metadata.mir
M llvm/test/CodeGen/MIR/X86/mem-cache-hint.mir
M llvm/test/CodeGen/MIR/X86/memory-operands.mir
M llvm/test/CodeGen/MIR/X86/metadata-operands.mir
M llvm/test/CodeGen/MIR/X86/pr38773.mir
M llvm/test/CodeGen/MIR/X86/stack-object-debug-info.mir
M llvm/test/DebugInfo/MIR/AArch64/no-dbg-value-after-terminator.mir
M llvm/test/Other/legacy-callgraph-scc-pass-printer.ll
A llvm/test/Other/print-changed-persistent-metadata-ids.ll
A llvm/test/Other/print-persistent-metadata-ids.ll
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/loop-distribute.ll.expected
M llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-print-basic-details.test
M llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-select-logical-elements.test
M llvm/test/tools/llvm-debuginfo-analyzer/IR/02-ir-logical-lines.test
M llvm/test/tools/llvm-debuginfo-analyzer/IR/06-ir-full-logical-view.test
M llvm/tools/llvm-dis/llvm-dis.cpp
M llvm/tools/llvm-extract/llvm-extract.cpp
M llvm/tools/llvm-link/llvm-link.cpp
M llvm/tools/llvm-reduce/ReducerWorkItem.cpp
M llvm/tools/llvm-split/llvm-split.cpp
M llvm/tools/llvm-stress/llvm-stress.cpp
M llvm/tools/opt/NewPMDriver.cpp
M llvm/tools/opt/optdriver.cpp
M llvm/tools/verify-uselistorder/verify-uselistorder.cpp
M llvm/unittests/AsmParser/AsmParserTest.cpp
M llvm/unittests/IR/AsmWriterTest.cpp
M llvm/unittests/IR/MetadataTest.cpp
M llvm/unittests/IR/ModuleTest.cpp
M llvm/unittests/MIR/MachineMetadata.cpp
M mlir/lib/Target/LLVMIR/ConvertToLLVMIR.cpp
M mlir/test/Target/LLVMIR/Import/import-failure.ll
M polly/test/ForwardOpTree/atax.ll
M polly/test/ForwardOpTree/jacobi-1d.ll
M polly/test/ScopInfo/preserve-equiv-class-order-in-basic_block.ll
M polly/test/ScopInfo/stmt_split_exit_of_region_stmt.ll
M polly/test/ScopInfo/stmt_split_no_after_split.ll
M polly/test/ScopInfo/stmt_split_no_dependence.ll
M polly/test/ScopInfo/stmt_split_phi_in_beginning_bb.ll
M polly/test/ScopInfo/stmt_split_phi_in_stmt.ll
M polly/test/ScopInfo/stmt_split_scalar_dependence.ll
M polly/test/ScopInfo/stmt_split_within_loop.ll
Log Message:
-----------
[IR] Use persistent metadata IDs for printing (#216838)
Repeated pass and debug printing currently rebuilds metadata slot
numbers
by scanning the module. On large modules, this repeated setup can take
more time than printing the requested function.
Store a persistent print ID in each metadata node and use that ID
whenever
metadata is printed. Before final assembly output, renumber the IDs into
canonical compact order so normal textual IR output remains unchanged.
This keeps metadata numbers stable across pass snapshots while avoiding
repeated module-wide metadata scans.
Commit: a4708180ab844ab8a9c7a7acb7d3bec21a1eddd1
https://github.com/llvm/llvm-project/commit/a4708180ab844ab8a9c7a7acb7d3bec21a1eddd1
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenException.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/test/CIR/CodeGen/lifetime-marker.cpp
M clang/test/CIR/IR/catch-param.cir
M clang/test/CIR/IR/invalid-try-catch.cir
Log Message:
-----------
[CIR] Allow lifetime markers before begin_catch in a try handler (#219600)
When exceptions were enabled and lifetime markers were emitted, we were
getting CIR verification errors because the cir.lifetime.start op
appeared before cir.begin_catch and cir.construct_catch_param in a
cir.try operation's catch handler region. These operations were
correctly placed, the verifier just needed to be updated to properly
check for them.
Fixes https://github.com/llvm/llvm-project/issues/219549
Assisted-by: Cursor / claude-opus-5
Commit: cc7a58e36d6ef7990472d55f8b998269e700afad
https://github.com/llvm/llvm-project/commit/cc7a58e36d6ef7990472d55f8b998269e700afad
Author: Madhur Kumar <152476790+MadhurKumar004 at users.noreply.github.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/bfm.ll
Log Message:
-----------
[AMDGPU] Fix BFMPatterns multiclass operand type for i64 (#216690)
The operands ($a, $b) were typed with vt, making them i64 when
instantiated with BFMPatterns<i64,...>. This conflicts with the
instruction's i32 operands (SSrc_b32), causing tablegen to fail with
"Type set is empty". Type them as i32 explicitly, since all BFM
instructions use 32-bit count operands regardless of result type.
Commit: 16d31ae250efaebeb990d7b44ee1584e6477dc10
https://github.com/llvm/llvm-project/commit/16d31ae250efaebeb990d7b44ee1584e6477dc10
Author: Chris Kennelly <ckennelly at ckennelly.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/ProfileData/SampleProf.h
A llvm/test/Transforms/SampleProfile/Inputs/cfi-suffix.prof
A llvm/test/Transforms/SampleProfile/cfi-suffix.ll
Log Message:
-----------
[SampleProfile] Ignore the .cfi suffix when matching functions to profiles (#220271)
In the ThinLTO backend, LowerTypeTests renames the body of every CFI
jump table member from foo to foo.cfi, and the original name becomes the
jump table entry. Sample profiles are keyed by the original name
(llvm-profgen uses the DWARF linkage name, which is not renamed), so any
pass that matches functions to profiles by name after LowerTypeTests
failed to find samples for them.
Add ".cfi" to the suffixes that FunctionSamples::getCanonicalFnName
strips. It is appended after all the other known suffixes, so it comes
first in the list; a promoted local function that is a jump table member
is named foo.llvm.<hash>.cfi.
Assisted-by: Claude Code
---------
Co-authored-by: Vitaly Buka <vitalybuka at google.com>
Commit: 3b90cb155a6bf30da86ebcb3d0854d38c53b51b0
https://github.com/llvm/llvm-project/commit/3b90cb155a6bf30da86ebcb3d0854d38c53b51b0
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/unistd.yaml
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/getegid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setgid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setregid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setreuid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setuid.h
M libc/src/unistd/CMakeLists.txt
A libc/src/unistd/getegid.h
M libc/src/unistd/linux/CMakeLists.txt
A libc/src/unistd/linux/getegid.cpp
A libc/src/unistd/linux/setgid.cpp
A libc/src/unistd/linux/setregid.cpp
A libc/src/unistd/linux/setreuid.cpp
A libc/src/unistd/linux/setuid.cpp
A libc/src/unistd/setgid.h
A libc/src/unistd/setregid.h
A libc/src/unistd/setreuid.h
A libc/src/unistd/setuid.h
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/getegid_test.cpp
A libc/test/src/unistd/setgid_test.cpp
A libc/test/src/unistd/setregid_test.cpp
A libc/test/src/unistd/setreuid_test.cpp
A libc/test/src/unistd/setuid_test.cpp
Log Message:
-----------
[libc] Add <unistd.h> functions for user/group ID management. (#220087)
* Add POSIX functions `getegid` (in addition to existing
`get(eu|g|s|u)id` ones);
* Add matching POSIX setter functions: `setgid`, `setregid`, `setreuid`,
`setuid` (in addition to existing `setsid`);
* Implement these functions on Linux as straightforward syscall
wrappers, and enable on Linux platforms;
* Add unit test to sanity-check returned values and verify the expected
errno values for invalid arguments (typically EINVAL or EPERM).
Assisted by automated tooling, human-verified.
Commit: 32300f3257d758811d06e54820426bfeeba5fc6f
https://github.com/llvm/llvm-project/commit/32300f3257d758811d06e54820426bfeeba5fc6f
Author: Pawan Nirpal <pawannirpal at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
A llvm/test/Transforms/LoopVectorize/epilog-vectorization-anyof-no-rdx-result.ll
M llvm/test/Transforms/LoopVectorize/select-cmp-blend-chain.ll
Log Message:
-----------
[VPlan] - Generalize dead cycle removal in removeDeadRecipes. (#213632)
Generalize the existing dead cycle detection in removeDeadRecipes to
handle arbitrary dead phi cycles. The new tryToRemoveDeadCycle helper
collects all transitive users of a phi-like recipe and, if none of them
have side
effects or escape through another phi, replaces the phi with its start
value and
erases the entire cycle.
This fixes a crash in epilogue vectorization when an AnyOf reduction's
ComputeReductionResult was optimized away (because the exit value was
simplified to the start value), leaving a dead reduction cycle that
preparePlanForEpilogueVectorLoop would trip over.
Fixes https://github.com/llvm/llvm-project/issues/213601
Commit: 62438a74ede6e0c5d2b84acfe391bd0bc751925d
https://github.com/llvm/llvm-project/commit/62438a74ede6e0c5d2b84acfe391bd0bc751925d
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/AST/StmtPrinter.cpp
M flang/lib/Frontend/CompilerInvocation.cpp
M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
M llvm/include/llvm/Frontend/OpenMP/OMP.h
M llvm/include/llvm/Frontend/OpenMP/OMPDescriptors.h
A llvm/include/llvm/Frontend/OpenMP/OMPVersion.h
M llvm/lib/Frontend/OpenMP/DirectiveNameParser.cpp
M llvm/lib/Frontend/OpenMP/OMP.cpp
M llvm/lib/Frontend/OpenMP/OMPDescriptors.cpp
M llvm/lib/Frontend/OpenMP/OMPDescriptors.inc
M llvm/test/TableGen/directive1.td
M llvm/test/TableGen/directive2.td
M llvm/unittests/Frontend/OpenMPDecompositionTest.cpp
M llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp
M llvm/unittests/Frontend/OpenMPDirectiveNameTest.cpp
M llvm/unittests/Frontend/OpenMPParsingTest.cpp
M llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
Log Message:
-----------
[OpenMP] Make OpenMP version have separate type (#219820)
It's unsigned now. Giving it a separate type would make the code
clearer,
and it would make it easier to change the effective type if it's ever
needed.
---------
Co-authored-by: Alexey Bataev <a.bataev at gmx.com>
Commit: bd9c6fcae707e51a8294c971577e2f5343f5135c
https://github.com/llvm/llvm-project/commit/bd9c6fcae707e51a8294c971577e2f5343f5135c
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/Basic/LangOptions.h
M clang/lib/AST/DeclPrinter.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
Log Message:
-----------
[clang][OpenMP] Switch OpenMP version from unsigned to llvm::omp::Version (#219821)
Commit: 579a8843ba7564cb5e194732b57fdc2289abc88b
https://github.com/llvm/llvm-project/commit/579a8843ba7564cb5e194732b57fdc2289abc88b
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/include/flang/Parser/openmp-utils.h
M flang/include/flang/Semantics/openmp-modifiers.h
M flang/include/flang/Semantics/openmp-utils.h
M flang/include/flang/Semantics/symbol.h
M flang/include/flang/Support/LangOptions.h
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/Lower/OpenMP/Atomic.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.h
M flang/lib/Lower/OpenMP/Decomposer.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/PFTBuilder.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/openmp-utils.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/check-omp-atomic.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-variant.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/openmp-utils.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/unittests/Semantics/OpenMPUtils.cpp
M llvm/include/llvm/Frontend/OpenMP/OMPVersion.h
Log Message:
-----------
[flang][OpenMP] Switch OpenMP version from unsigned to llvm::omp::Version (#219822)
Also make llvm::omp::Version converting constructor/operstor explicit.
Commit: a581d29d032ceb2402b696b67b261d58075a96c2
https://github.com/llvm/llvm-project/commit/a581d29d032ceb2402b696b67b261d58075a96c2
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/test/CIR/CodeGen/agg-atomic-cast.c
Log Message:
-----------
[CIR] Support Aggregate Atomic to non atomic with padding (#219680)
Implement support for Aggregate Atomic to non-atomic cast with padding
Commit: 593d6710ca06f2113b6644d8581154df6089189b
https://github.com/llvm/llvm-project/commit/593d6710ca06f2113b6644d8581154df6089189b
Author: Volodymyr Sapsai <vsapsai at apple.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclObjC.cpp
M clang/lib/Sema/SemaModule.cpp
M clang/lib/Sema/SemaTemplate.cpp
A clang/test/Modules/reentered-header-duplicate.m
Log Message:
-----------
[modules] Avoid redefinition errors when access modular header as non-modular. (#214345)
Despite mechanisms to enforce a single inclusion (e.g., header guards,
pragma once) treating the same header as modular and non-modular can
defeat these mechanisms. Primarily it is caused by the fact that a
module has a separate preprocessor state that's not shared with the
includer. In practice it causes redefinition errors where both
definitions are in the same file, at the same location. And it is very
confusing and unactionable to clang users.
In most cases both definitions are identical and the error doesn't
provide any value. Don't reject such redefinitions immediately and
re-use the same mechanism when we detect a definition with the same name
as in a hidden submodule, i.e., check the definitions are identical and
use one of them.
rdar://183938264
Commit: 81c2b77bf6f3c05b16f0115f410ab4b56571952e
https://github.com/llvm/llvm-project/commit/81c2b77bf6f3c05b16f0115f410ab4b56571952e
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
Log Message:
-----------
[SCEV] Collect loop guards once in getSmallConstantTripMultiple (NFC). (#219722)
Add a new variant of getSmallConstantTripMultiple that takes loop
guards. Use it to collect loop guards once per call, instead of per
exit. Loop guards hold for the entry of the loop, so can be shared
between all exits.
This avoids some unnecessary work (and should make it easier to extend
collection with less compile-time impact in the future), even though
compile-time impact is currently in the noise
https://llvm-compile-time-tracker.com/compare.php?from=ad3ba4569c37e0dc028cc928393f90a16e0b162d&to=1f7467b845a398fdcdf49c4c9151cb7612e19e40&stat=instructions:u
PR: https://github.com/llvm/llvm-project/pull/219722
Commit: b2d8db043675b21ce5f2e789e4a44e4b8633a4c1
https://github.com/llvm/llvm-project/commit/b2d8db043675b21ce5f2e789e4a44e4b8633a4c1
Author: aokblast <aokblast at FreeBSD.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lldb/include/lldb/Symbol/ObjectFile.h
M lldb/include/lldb/Symbol/Symbol.h
M lldb/source/Breakpoint/BreakpointResolverName.cpp
M lldb/source/Expression/IRExecutionUnit.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
M lldb/source/Symbol/Symbol.cpp
M lldb/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
M lldb/unittests/Target/CMakeLists.txt
A lldb/unittests/Target/ReExportedSymbolTest.cpp
Log Message:
-----------
[LLDB] Support Auxiliary library in ELF format (#208905)
An ELF filter library (DT_FILTER) or auxiliary filter (DT_AUXILIARY)
delegates symbol resolution to its filtee: the dynamic linker looks up
each symbol in the filtee first, falling back to the filter library's
own definition. Filter libraries may export placeholder symbols whose
addresses are not the actual function entry points.
For example, FreeBSD's libc is split into libc and libsys, with libsys
serving as an auxiliary library for libc. As a result, some symbols are
defined in libsys rather than libc. The original LLDB symbol resolver
resolves symbols based on library load order, so it arbitrarily select
the wrong symbol when the same symbol exists in both libraries. This can
result in an unusable debugger.
To support this, we teach ObjectFileELF to parse the filtee and model
placeholder function definition in filter libraries as ReExported,
reusing the existing re-export machinery.
Notice that in ELF, we don't record the per-symbol target ReExported
library like Macho. Instead, it is a suggestion list from the libraries
that exposes this symbol. As a result, we need to pass the library
Module to read the suggestion list to correctly parse the file in
Resolver.
Fixes: https://github.com/llvm/llvm-project/issues/180444
Assisted-by: Claude Fable 5
Commit: 4bb9664e368b166fca6b9b6186f6d0a9f7cd3b91
https://github.com/llvm/llvm-project/commit/4bb9664e368b166fca6b9b6186f6d0a9f7cd3b91
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/unistd.yaml
M libc/src/unistd/CMakeLists.txt
M libc/src/unistd/linux/CMakeLists.txt
A libc/src/unistd/linux/tcgetpgrp.cpp
A libc/src/unistd/linux/tcsetpgrp.cpp
A libc/src/unistd/tcgetpgrp.h
A libc/src/unistd/tcsetpgrp.h
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/tcgetpgrp_test.cpp
A libc/test/src/unistd/tcsetpgrp_test.cpp
Log Message:
-----------
[libc] Add <unistd.h> functions for managing foreground process group IDs (#220121)
* Add POSIX functions `tcgetpgrp` and `tcsetpgrp` that get/set process
group IDs of foreground process groups associated with a terminal;
* Implement these functions as `ioctl` syscall wrappers and enable them
on Linux;
* Add unit test to verify the expected errno values for common error
cases (`EBADF` / `ENOTTY`),
but don't verify the "positive" cases, since it's challenging to do in a
unit test environment w/o using fork and
creating pseudo-terminal fixtures.
Assisted by automated tooling, human-verified.
Commit: a83764068eadc525b4e1ff4b40585fc1c2329e6d
https://github.com/llvm/llvm-project/commit/a83764068eadc525b4e1ff4b40585fc1c2329e6d
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/test/OpenMP/amdgpu_throw_trap.cpp
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_function_name.ll
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_function_name.ll.expected
Log Message:
-----------
AMDGPU: Use subarch triples in misc. tests (#220247)
Commit: 5cc76ecb867c396512f76e323d1a46fddf787fa4
https://github.com/llvm/llvm-project/commit/5cc76ecb867c396512f76e323d1a46fddf787fa4
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
M llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll
M llvm/test/DebugInfo/Generic/debug-names-hash-collisions.ll
A llvm/unittests/CodeGen/AccelTableTest.cpp
M llvm/unittests/CodeGen/CMakeLists.txt
Log Message:
-----------
[AccelTable] Order colliding hashes by name (#220109)
Sorting the buckets only looked at the hash value, so names whose hashes
collide came out in the order they were added. The parallel DWARF linker
gathers accelerator records from all cloning threads into a lock-free
list. Since the order would vary between runs, it would result in
different bytes, while still being semantically equivalent.
We can break ties by name to provide a total order. Without equal
entries, there is nothing for a stable sort to preserve so we can drop
llvm::stable_sort and use llvm::sort again.
The temporary symbols were created while walking Entries, which is in
insertion order too, so the assembly for a sorted bucket list came out
scrambled. Create them after the sort instead.
This covers the bucket contents only. The per-name Values sort still
orders on DWARF5AccelTableData::order(), which is the unit-relative DIE
offset alone, and .debug_pubnames for the artificial type unit still
replays the same unconstrained list. Both need their own fix.
Assisted-by: Claude
Commit: b35570ada899b44bc8879af115fcd88ecc83992c
https://github.com/llvm/llvm-project/commit/b35570ada899b44bc8879af115fcd88ecc83992c
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume.ll
Log Message:
-----------
[InstCombine] Fold assume(not(icmp eq %x, 0)) to assume [nonnull %x] (#220055)
proof: https://alive2.llvm.org/ce/z/ZVj9iF
Commit: 875b2139bf261dc5a226c3eb6f4f3a822e541575
https://github.com/llvm/llvm-project/commit/875b2139bf261dc5a226c3eb6f4f3a822e541575
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/unistd.yaml
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/getpgid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setpgid.h
M libc/src/unistd/CMakeLists.txt
A libc/src/unistd/getpgid.h
A libc/src/unistd/getpgrp.h
M libc/src/unistd/linux/CMakeLists.txt
A libc/src/unistd/linux/getpgid.cpp
A libc/src/unistd/linux/getpgrp.cpp
A libc/src/unistd/linux/setpgid.cpp
A libc/src/unistd/setpgid.h
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/getpgid_test.cpp
A libc/test/src/unistd/getpgrp_test.cpp
A libc/test/src/unistd/setpgid_test.cpp
Log Message:
-----------
[libc] Add <unistd.h> functions for process group management. (#220044)
* Add POSIX functions `getpgid`, `getpgrp`, and `setpgid` that get/set
process group IDs. Define them in `<unistd.h>`
header and add entrypoints on Linux platforms;
* Implement these functions on Linux as `getpgid`/`setpgid` syscall
wrappers.
* Add unit test to sanity-check returned values and validate the
expected `errno` values for invalid arguments. Given the
simplicity of implementation, don't write fork-based tests to validate
that the process group management works as
expected on Linux machines.
Assisted by automated tooling, human-verified.
Commit: ce1a7aefc06f2d9bf6d1ee797303017c807d7c67
https://github.com/llvm/llvm-project/commit/ce1a7aefc06f2d9bf6d1ee797303017c807d7c67
Author: Daniel Cederman <cederman at gaisler.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
A llvm/test/MC/Sparc/sparc-unary-not.s
Log Message:
-----------
[SPARC] Parse unary complement immediates (#219970)
Accept the tilde operand for unary complement of assembler immediates.
Commit: abc9e50d382b1a03220f97c3f872effa9bad9738
https://github.com/llvm/llvm-project/commit/abc9e50d382b1a03220f97c3f872effa9bad9738
Author: Akash Manna <akash.manna.mymail at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Sema/SemaExpand.cpp
A clang/test/SemaCXX/GH214917.cpp
Log Message:
-----------
[Clang] Fix crash when expanding an expansion statement after a fatal error (#220042)
Fixes #214917
When the error limit is reached, clang emits `fatal error: too many
errors emitted` but keeps parsing with diagnostics suppressed. If it
then reaches a well-formed `template for`, `FinishCXXExpansionStmt`
tries to instantiate the body for each element. The
`InstantiatingTemplate` it constructs deliberately refuses to push a
`CodeSynthesisContext` after a fatal error and marks itself invalid —
but unlike every other instantiation site, this one never checked
`isInvalid()` and called `SubstStmt` anyway, hitting the "Cannot perform
an instantiation without some context on the instantiation stack"
assertion. The junk in the fuzzer reproducer only matters for pushing
the error count past the limit; the expansion statement itself is fine,
since `V` destructures through its public members.
The fix adds the standard `if (Inst.isInvalid()) return StmtError();`
guard before the substitution, so the expansion bails out cleanly like
every other caller of `InstantiatingTemplate`. This also covers the
other way the constructor can decline to push, exceeding the
instantiation depth limit. The assertion itself is untouched.
LLM tools were used for this contribution. I've reviewed, built, and
tested the change myself before pushing to GitHub.
Commit: e99ecf3426ff8578a3e4d4b8ad4b1c7874d713ea
https://github.com/llvm/llvm-project/commit/e99ecf3426ff8578a3e4d4b8ad4b1c7874d713ea
Author: Yuta Nakamura <yutanak6 at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
Log Message:
-----------
[GlobalISel][NFC] Use TyBits in computeNumSignBits (#220324)
Found some inefficiency while trying to make pr #220317.
DstTyBits are already computed as TyBits, so let's use that instead of
recomputing the value.
## AI disclosure
I made AI write it because this is not the first issue, but I understand
what I'm doing.
Commit: c59f3776973d7e0485461372c125e684b0d6dc21
https://github.com/llvm/llvm-project/commit/c59f3776973d7e0485461372c125e684b0d6dc21
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/unittests/TargetParser/TargetParserTest.cpp
Log Message:
-----------
AMDGPU: Add getSubArchFromGPUName utility (#220328)
Add a utility function to map a GPU name to the correct subarch.
This provides the minimum effort mapping for frontends to convert their
current target name system to produce a subarch triple.
Co-authored-by: Claude (Claude-Opus-4.8)
Commit: bd5b1f58ae58cceab2cadb882cceb1d96f4ad33e
https://github.com/llvm/llvm-project/commit/bd5b1f58ae58cceab2cadb882cceb1d96f4ad33e
Author: Yao Qi <yao_qi at apple.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lldb/unittests/Target/MemoryTest.cpp
Log Message:
-----------
[lldb] [unittests] [nfc] Assert the requests the memory cache tests make, not the read budget (#220171)
`TesetMemoryCacheRead`, `TestReadStopsAtAnInvalidRange` and
`TestReadMemoryRangesUsesL2Cache` showed which memory a read fetched by
checking `process->m_bytes_left`, a cumulative byte budget. Any request
of
at least the asserted size drains it, so the check held for a wrong
request
just as well: it cannot see the address asked for, and it cannot tell
one
request from two.
Log every `DoReadMemory` request in the mock process as (address, size)
and
assert that list instead. The straddling read at 0x4001 in
`TesetMemoryCacheRead` shows what this buys. It crosses a line boundary,
and
`MemoryCache::Read` serves it one line at a time, so the list is
`(0x4000, line)` then `(0x4000+line, line)`: two requests for two
adjacent
lines, a round trip that a single fetch of both would save. The
`m_bytes_left`
cannot show this.
Commit: 8953244331f5e19e3f040e69da4c0635fdc77a52
https://github.com/llvm/llvm-project/commit/8953244331f5e19e3f040e69da4c0635fdc77a52
Author: Zachary Yedidia <zyedidia at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
Log Message:
-----------
[LFI][AArch64] Refactor LFI rewriter to use MCInstBuilder (#219890)
This refactors the LFI rewriter to use the `MCInstBuilder` API to
construct new `MCInst` objects.
Commit: df8b53d0dc2ab3ed948e9a74dc24d8c59e520f44
https://github.com/llvm/llvm-project/commit/df8b53d0dc2ab3ed948e9a74dc24d8c59e520f44
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lld/test/MachO/U-dynamic-lookup.s
Log Message:
-----------
[lld-macho][NFC] Change _baz to _qux in test (#220337)
These assertions are very broad and when running these tests in bazel
there is a file path log that gets incorrectly matched with _baz.
Commit: 5f3e8f36d69f7758eb3df00cc51a9f047726723e
https://github.com/llvm/llvm-project/commit/5f3e8f36d69f7758eb3df00cc51a9f047726723e
Author: Sharjeel Khan <sharjeelkhan at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M libcxx/include/__memory/assume_aligned.h
Log Message:
-----------
[libc++] Add _LIBCPP_NO_SANITIZE for std::__assume_aligned (#220296)
std::assume_aligned takes void* from __builtin_assume_aligned and
converts it _Tp* that causes cfi-unrelated-cast to consider it a
downcast leading to CFI checks. Since std::find_if calls
std::assume_aligned on __last, it will lead to a CFI check that
dereferences __last causing a failure. Based on discussion, we can just
add _LIBCPP_NO_SANITIZE for cfi-unrelated-cast because the check rejects
well-defined behavior.
Fix: https://github.com/llvm/llvm-project/issues/219306
Commit: 91bd18e0e18d5f8a6e119cb60288bdd87ce2b8e0
https://github.com/llvm/llvm-project/commit/91bd18e0e18d5f8a6e119cb60288bdd87ce2b8e0
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/test/Bitcode/attributes.ll
Log Message:
-----------
[IR] Support hybrid_patchable attribute in bitcode reader (#219804)
Missing in #92965.
Commit: 81dc0604e4b64cdf826fa7fee0526600982a3135
https://github.com/llvm/llvm-project/commit/81dc0604e4b64cdf826fa7fee0526600982a3135
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/docs/LangRef.md
Log Message:
-----------
[LangRef] Add hybrid_patchable attribute description (#219806)
Commit: 8d1b38f87103eb339224d1e6d397aad191f919e6
https://github.com/llvm/llvm-project/commit/8d1b38f87103eb339224d1e6d397aad191f919e6
Author: beetrees <b at beetr.ee>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
A llvm/test/CodeGen/PowerPC/ppc32-f128-abi.ll
Log Message:
-----------
Fix `fp128` reaching `llvm_unreachable` on 32-bit PowerPC (#216613)
`fp128` is a legal type that is passed in vector registers when `vsx` is
enabled on 32-bit PowerPC: the switch statement didn't account for that,
causing an LLVM assertion.
Fixes #213355
cc @folkertdev
Commit: f204c0dfd0ad6031a05302b63a8cf37d99cf0441
https://github.com/llvm/llvm-project/commit/f204c0dfd0ad6031a05302b63a8cf37d99cf0441
Author: Ambrose Leeb <aleeb at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/DeclCXX.h
M clang/lib/AST/Decl.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaCoroutine.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/test/Parser/cxx2c-expansion-statements.cpp
A clang/test/SemaCXX/cxx2c-expansion-stmts-warnings.cpp
M clang/test/SemaCXX/cxx2c-expansion-stmts.cpp
M clang/test/SemaCXX/expansion-statements-local-extern-decls.cpp
Log Message:
-----------
[Clang] Fix a number of issues involving expansion statements (#217110)
This fixes a number of problems around expansion statements, most of
which arise from the fact that we check if `CurContext` is a
`FunctionDecl` (which it isn't inside of an expansion statement) and
then complain that we're not inside a function (even though we are).
I also updated `DeclContext::isFunctionOrMethod()` to return true for
`CXXExpansionStmtDecl`. That helper already does this for other
`DeclContext`s that aren’t functions or Objective-C methods, but which
to my understanding can only occur in one (e.g. `CapturedDecl` is an
example of this I believe).
Commit: ff7e21df60353e7ddfdd6cbf28de94ae6fe5f591
https://github.com/llvm/llvm-project/commit/ff7e21df60353e7ddfdd6cbf28de94ae6fe5f591
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lldb/docs/resources/lldbgdbremote.md
M lldb/source/Plugins/Process/wasm/ProcessWasm.cpp
M lldb/test/API/functionalities/gdb_remote_client/TestWasm.py
Log Message:
-----------
[lldb] Drop the trailing separator from the qWasmGlobal instance suffix (#220338)
The instance suffix was spelled ";instance:<id>;", which ends a packet
with a separator that separates nothing. Spell it ";instance:<id>" and
avoid the redundant semicolon.
Commit: 87d11355951b2cdd87ef3fe1cbfe412b0ad07aa3
https://github.com/llvm/llvm-project/commit/87d11355951b2cdd87ef3fe1cbfe412b0ad07aa3
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M clang/tools/cir-translate/cir-translate.cpp
M clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp
M clang/tools/clang-import-test/clang-import-test.cpp
M flang/include/flang/Optimizer/CodeGen/CodeGen.h
M flang/lib/Frontend/FrontendActions.cpp
M llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h
M llvm/include/llvm/IR/IRPrintingPasses.h
M llvm/include/llvm/IR/Metadata.h
M llvm/include/llvm/IR/Module.h
M llvm/include/llvm/IR/ModuleSlotTracker.h
M llvm/include/llvm/IRPrinter/IRPrintingPasses.h
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MIRPrintingPass.cpp
M llvm/lib/CodeGen/MachineBasicBlock.cpp
M llvm/lib/CodeGen/MachineModuleSlotTracker.cpp
M llvm/lib/CodeGen/MachineOperand.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/IRPrintingPasses.cpp
M llvm/lib/IR/LLVMContextImpl.cpp
M llvm/lib/IR/LLVMContextImpl.h
M llvm/lib/IR/Metadata.cpp
M llvm/lib/IR/MetadataImpl.h
M llvm/lib/IR/SSAContext.cpp
M llvm/lib/IRPrinter/IRPrintingPasses.cpp
M llvm/lib/Target/DirectX/DXILPrettyPrinter.cpp
M llvm/test/CodeGen/DirectX/DebugInfo/di-globalvariable.ll
M llvm/test/CodeGen/Hexagon/swp-no-alias.mir
M llvm/test/CodeGen/MIR/AMDGPU/instr-mmra.mir
M llvm/test/CodeGen/MIR/AMDGPU/machine-metadata.mir
M llvm/test/CodeGen/MIR/X86/instr-heap-alloc-operands.mir
M llvm/test/CodeGen/MIR/X86/instr-pcsections.mir
M llvm/test/CodeGen/MIR/X86/instructions-debug-location.mir
M llvm/test/CodeGen/MIR/X86/machine-metadata.mir
M llvm/test/CodeGen/MIR/X86/mem-cache-hint.mir
M llvm/test/CodeGen/MIR/X86/memory-operands.mir
M llvm/test/CodeGen/MIR/X86/metadata-operands.mir
M llvm/test/CodeGen/MIR/X86/pr38773.mir
M llvm/test/CodeGen/MIR/X86/stack-object-debug-info.mir
M llvm/test/DebugInfo/MIR/AArch64/no-dbg-value-after-terminator.mir
M llvm/test/Other/legacy-callgraph-scc-pass-printer.ll
R llvm/test/Other/print-changed-persistent-metadata-ids.ll
R llvm/test/Other/print-persistent-metadata-ids.ll
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/loop-distribute.ll.expected
M llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-print-basic-details.test
M llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-select-logical-elements.test
M llvm/test/tools/llvm-debuginfo-analyzer/IR/02-ir-logical-lines.test
M llvm/test/tools/llvm-debuginfo-analyzer/IR/06-ir-full-logical-view.test
M llvm/tools/llvm-dis/llvm-dis.cpp
M llvm/tools/llvm-extract/llvm-extract.cpp
M llvm/tools/llvm-link/llvm-link.cpp
M llvm/tools/llvm-reduce/ReducerWorkItem.cpp
M llvm/tools/llvm-split/llvm-split.cpp
M llvm/tools/llvm-stress/llvm-stress.cpp
M llvm/tools/opt/NewPMDriver.cpp
M llvm/tools/opt/optdriver.cpp
M llvm/tools/verify-uselistorder/verify-uselistorder.cpp
M llvm/unittests/AsmParser/AsmParserTest.cpp
M llvm/unittests/IR/AsmWriterTest.cpp
M llvm/unittests/IR/MetadataTest.cpp
M llvm/unittests/IR/ModuleTest.cpp
M llvm/unittests/MIR/MachineMetadata.cpp
M mlir/lib/Target/LLVMIR/ConvertToLLVMIR.cpp
M mlir/test/Target/LLVMIR/Import/import-failure.ll
M polly/test/ForwardOpTree/atax.ll
M polly/test/ForwardOpTree/jacobi-1d.ll
M polly/test/ScopInfo/preserve-equiv-class-order-in-basic_block.ll
M polly/test/ScopInfo/stmt_split_exit_of_region_stmt.ll
M polly/test/ScopInfo/stmt_split_no_after_split.ll
M polly/test/ScopInfo/stmt_split_no_dependence.ll
M polly/test/ScopInfo/stmt_split_phi_in_beginning_bb.ll
M polly/test/ScopInfo/stmt_split_phi_in_stmt.ll
M polly/test/ScopInfo/stmt_split_scalar_dependence.ll
M polly/test/ScopInfo/stmt_split_within_loop.ll
Log Message:
-----------
Revert "[IR] Use persistent metadata IDs for printing" (#220334)
This reverts commit 85e903099313aa5ea98d175698aaa40e27a0d743.
The change breaks MSVC builds because an inline SmallPtrSet operation
requires a complete DILocation type. It also causes expensive-check
builds to report that the DXIL pretty-printer modifies its input
without reporting it.
Revert while fixes and test coverage are prepared.
Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/2/builds/60795
Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/187/builds/23268
Commit: be44dfe510d106df4490e661e0cca0f7a4706515
https://github.com/llvm/llvm-project/commit/be44dfe510d106df4490e661e0cca0f7a4706515
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
A utils/bazel/llvm-project-overlay/lld/test/BUILD.bazel
A utils/bazel/llvm-project-overlay/lld/test/COFF/BUILD.bazel
A utils/bazel/llvm-project-overlay/lld/test/ELF/BUILD.bazel
A utils/bazel/llvm-project-overlay/lld/test/MachO/BUILD.bazel
A utils/bazel/llvm-project-overlay/lld/test/MinGW/BUILD.bazel
A utils/bazel/llvm-project-overlay/lld/test/wasm/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[bazel] Add support for lld tests (#220311)
Commit: 835747f9cf122081323b9f1bd9a42dfff5503cd4
https://github.com/llvm/llvm-project/commit/835747f9cf122081323b9f1bd9a42dfff5503cd4
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/Target/AMDGPU/AMDGPULowerKernelAttributes.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/R600Subtarget.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/tools/llvm-calc-occupancy/llvm-calc-occupancy.cpp
Log Message:
-----------
AMDGPU: Move flat work group size constants to AMDGPUTargetParser (#220346)
getMinFlatWorkGroupSize and getMaxFlatWorkGroupSize are constants that
do not depend on the subtarget. Move them from IsaInfo to
AMDGPUTargetParser so they can be queried without an MCSubtargetInfo.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
Commit: 1b4fc7b6e9e35c7a33748dd1598070a233b61afc
https://github.com/llvm/llvm-project/commit/1b4fc7b6e9e35c7a33748dd1598070a233b61afc
Author: Yonah Goldberg <ygoldberg at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
M llvm/test/CodeGen/NVPTX/cache-hint-atomics.ll
M llvm/test/CodeGen/NVPTX/cache-hint-invalid.ll
M llvm/test/CodeGen/NVPTX/cache-hint-sm-version.ll
Log Message:
-----------
[SDAG][NVPTX] Support cache hints on atomic operations (#214918)
Support cache hints on atomic loads/stores, these have the same support
as normal loads/stores.
Support cache hints on atomicrmw. These will drop everything except for
.level::cache_hint.
Cmpxchg doesn't support cache hints, should drop all.
AI assisted
Commit: 1e5ad0192e93337f0f72fddb9421d4ecac63da53
https://github.com/llvm/llvm-project/commit/1e5ad0192e93337f0f72fddb9421d4ecac63da53
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
Log Message:
-----------
[compiler-rt] Fix undefined abort for ubsan_minimal GPU targets (#220314)
Summary:
When compiling with debug enabled this would call `abort()`. The minimal
UBSan for GPUs is intentionally written to just depend on `printf`
which most vendors support and aborting is done through hardware traps.
I neglected to update this part because I had not done it with debugging
enabled, just wrap this into a helper function.
Commit: 07e310c312063aebc5525c360a1cea70981e31d0
https://github.com/llvm/llvm-project/commit/07e310c312063aebc5525c360a1cea70981e31d0
Author: Deric C. <cheung.deric at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/test/CodeGenHLSL/resources/Textures-Mips.hlsl
Log Message:
-----------
[HLSL] Fix initialization of mips' copy of the resource handle (#220349)
This is a fixup to https://github.com/llvm/llvm-project/pull/219561
which left the `mips` member's copy of the resource handle uninitialized
due to reordering of `addCopyConstructor`, `addCopyAssignmentOperator`
and `addStaticInitializationFunctions` to before the optional methods.
This PR particularly fixes the following offload test failures:
```
OffloadTest-clang-d3d12 :: Feature/Textures/Array.mips.OperatorIndex.test
OffloadTest-clang-d3d12 :: Feature/Textures/mips.OperatorIndex.test
OffloadTest-clang-d3d12 :: Tools/Offloader/TextureMipLevelValidation.test
OffloadTest-clang-vk :: Feature/Textures/Array.mips.OperatorIndex.test
OffloadTest-clang-vk :: Feature/Textures/mips.OperatorIndex.test
```
Assisted by: Claude Opus 5
Commit: 8d529bb65a37a7c756477fdc44c66262c6cd6b5c
https://github.com/llvm/llvm-project/commit/8d529bb65a37a7c756477fdc44c66262c6cd6b5c
Author: Yonah Goldberg <ygoldberg at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/test/CodeGen/NVPTX/cache-hint-intrinsics.ll
Log Message:
-----------
[SelectionDAG][NVPTX] Support cache hints on masked loads and stores (#215307)
Masked loads/stores support all the same cache hints. When splitting
masked loads/stores during legalization, I duplicate the hints. I think
this makes sense for the eviction hints, but not for prefetching. For
prefetching, it probably makes sense to only preserve the hint on the
first load.
For now, I duplicate the hints no matter what. If we want to support
selectively dropping hints during splitting, we will probably need a
target hook.
AI assisted.
Commit: 071b3c2fe08770c7d1875c1d58b6e1f9fe74506f
https://github.com/llvm/llvm-project/commit/071b3c2fe08770c7d1875c1d58b6e1f9fe74506f
Author: lntue <lntue at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M libc/hdr/types/char8_t.h
M libc/include/llvm-libc-types/char8_t.h
Log Message:
-----------
[libc] Fix char8_t public and proxy headers. (#220352)
Commit: de1b1781323c5468d877763d4eb6a365cd4d7bdd
https://github.com/llvm/llvm-project/commit/de1b1781323c5468d877763d4eb6a365cd4d7bdd
Author: ZERICO2005 <zerico2005 at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/Support/KnownFPClass.h
M llvm/lib/Support/KnownFPClass.cpp
M llvm/unittests/CodeGen/GlobalISel/KnownFPClassTest.cpp
Log Message:
-----------
[KnownFPClass] Remove `propagateNonNan` `PreserveSign` parameter (#219841)
`void propagateNonNaN(const KnownFPClass &Src, bool PreserveSign =
false)`
Things work as you would expect if `PreserveSign` is `false`. But when
`PreserveSign` is `true`, it does not do what you would expect (I
thought it would copy the signbit of `NaN`). If `PreserveSign` is
`true`, it will copy `Src.SignBit` if and only if `Src` is never `NaN`,
which is counterintuitive. It also does not properly update
`KnownFPClasses`, and allows for potentially erroneous states to be
generated. Such as `fcNegZero` having a positive sign bit.
I have removed `void propagateNonNaN(const KnownFPClass &Src, bool
PreserveSign = false)` and replaced it with just `void
propagateNonNaN(const KnownFPClass &Src)`.
This fixes https://github.com/llvm/llvm-project/issues/217127
I discovered this while working on
https://github.com/llvm/llvm-project/pull/218514
Commit: 7c44c505cd7688a8994779f1751e0f9b4b95ab4c
https://github.com/llvm/llvm-project/commit/7c44c505cd7688a8994779f1751e0f9b4b95ab4c
Author: Ambrose Leeb <aleeb at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/DeclCXX.h
M clang/lib/AST/Decl.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaCoroutine.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/test/Parser/cxx2c-expansion-statements.cpp
R clang/test/SemaCXX/cxx2c-expansion-stmts-warnings.cpp
M clang/test/SemaCXX/cxx2c-expansion-stmts.cpp
M clang/test/SemaCXX/expansion-statements-local-extern-decls.cpp
Log Message:
-----------
Revert "[Clang] Fix a number of issues involving expansion statements" (#220375)
Reverts llvm/llvm-project#217110
This caused a CI failure in one of the expansion statements tests; I’ll
revert this for now and investigate.
Commit: 238ef87194f80ed19a6023901acecd52b214faec
https://github.com/llvm/llvm-project/commit/238ef87194f80ed19a6023901acecd52b214faec
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/unittests/TargetParser/TargetParserTest.cpp
Log Message:
-----------
[AMDGPU] Add `getVGPRAllocGranule` to TargetParser (#220065)
Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Commit: 4c791a6ff02052395296f2f6d201deefaca636be
https://github.com/llvm/llvm-project/commit/4c791a6ff02052395296f2f6d201deefaca636be
Author: Stan Ulbrych <stan at python.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/docs/HardwareAssistedAddressSanitizerDesign.md
Log Message:
-----------
[docs] Fix capitalisation of "HWASan" (#220355)
Commit: d3b93db802d67017c51e78a65d48dee90f93dd21
https://github.com/llvm/llvm-project/commit/d3b93db802d67017c51e78a65d48dee90f93dd21
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/CodeGen/QualTypeMapper.cpp
M llvm/include/llvm/ABI/Types.h
M llvm/lib/ABI/Targets/X86.cpp
M llvm/lib/ABI/Types.cpp
Log Message:
-----------
Revert "[LLVMABI][NFC] Align base class handling with Clang's AST (#218545)" (#220353)
This reverts commit 0260138561bdadca6685e1873d578b892fddf736.
The extra tracking for direct virtual base classes appears not to be
needed.
Commit: f74a8c29a8262910549891b783e86e7bb9b511df
https://github.com/llvm/llvm-project/commit/f74a8c29a8262910549891b783e86e7bb9b511df
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/lld/BUILD.bazel
Log Message:
-----------
[bazel] Use lld's Version.inc.in file (#220342)
Just in case this ever changes it will fail more obviously. This is the
same value cmake uses for the version so I think the TODO was outdated.
Commit: 9189d4da568824ed0c36385f7ba0578c22f208ab
https://github.com/llvm/llvm-project/commit/9189d4da568824ed0c36385f7ba0578c22f208ab
Author: Michael Spencer <bigcheesegs at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Support/VirtualFileSystem.cpp
Log Message:
-----------
[llvm][vfs] Assert RedirectingFileSystem has an external file system (#216887)
No part of `RedirectingFileSystem` actually supports a null
`ExternalFS`, so assert that it exists in the constructor.
Commit: c237e6e79a48a43d850b52da906014cae0c32e14
https://github.com/llvm/llvm-project/commit/c237e6e79a48a43d850b52da906014cae0c32e14
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
A llvm/docs/CommandGuide/llvm-libtool-darwin.md
R llvm/docs/CommandGuide/llvm-libtool-darwin.rst
A llvm/docs/CommandGuide/llvm-link.md
R llvm/docs/CommandGuide/llvm-link.rst
A llvm/docs/CommandGuide/llvm-lipo.md
R llvm/docs/CommandGuide/llvm-lipo.rst
A llvm/docs/CommandGuide/llvm-locstats.md
R llvm/docs/CommandGuide/llvm-locstats.rst
A llvm/docs/CommandGuide/llvm-mc.md
R llvm/docs/CommandGuide/llvm-mc.rst
A llvm/docs/CommandGuide/llvm-mca.md
R llvm/docs/CommandGuide/llvm-mca.rst
A llvm/docs/CommandGuide/llvm-nm.md
R llvm/docs/CommandGuide/llvm-nm.rst
A llvm/docs/CommandGuide/llvm-objcopy.md
R llvm/docs/CommandGuide/llvm-objcopy.rst
A llvm/docs/CommandGuide/llvm-objdump.md
R llvm/docs/CommandGuide/llvm-objdump.rst
A llvm/docs/CommandGuide/llvm-offload-binary.md
R llvm/docs/CommandGuide/llvm-offload-binary.rst
A llvm/docs/CommandGuide/llvm-opt-report.md
R llvm/docs/CommandGuide/llvm-opt-report.rst
A llvm/docs/CommandGuide/llvm-otool.md
R llvm/docs/CommandGuide/llvm-otool.rst
A llvm/docs/CommandGuide/llvm-pdbutil.md
R llvm/docs/CommandGuide/llvm-pdbutil.rst
A llvm/docs/CommandGuide/llvm-profdata.md
R llvm/docs/CommandGuide/llvm-profdata.rst
A llvm/docs/CommandGuide/llvm-profgen.md
R llvm/docs/CommandGuide/llvm-profgen.rst
A llvm/docs/CommandGuide/llvm-ranlib.md
R llvm/docs/CommandGuide/llvm-ranlib.rst
A llvm/docs/CommandGuide/llvm-readelf.md
R llvm/docs/CommandGuide/llvm-readelf.rst
A llvm/docs/CommandGuide/llvm-readobj.md
R llvm/docs/CommandGuide/llvm-readobj.rst
A llvm/docs/CommandGuide/llvm-reduce.md
R llvm/docs/CommandGuide/llvm-reduce.rst
A llvm/docs/CommandGuide/llvm-remarkutil.md
R llvm/docs/CommandGuide/llvm-remarkutil.rst
A llvm/docs/CommandGuide/llvm-size.md
R llvm/docs/CommandGuide/llvm-size.rst
A llvm/docs/CommandGuide/llvm-stress.md
R llvm/docs/CommandGuide/llvm-stress.rst
A llvm/docs/CommandGuide/llvm-strings.md
R llvm/docs/CommandGuide/llvm-strings.rst
A llvm/docs/CommandGuide/llvm-strip.md
R llvm/docs/CommandGuide/llvm-strip.rst
A llvm/docs/CommandGuide/llvm-symbolizer.md
R llvm/docs/CommandGuide/llvm-symbolizer.rst
A llvm/docs/CommandGuide/llvm-tblgen.md
R llvm/docs/CommandGuide/llvm-tblgen.rst
A llvm/docs/CommandGuide/llvm-test-mustache-spec.md
R llvm/docs/CommandGuide/llvm-test-mustache-spec.rst
A llvm/docs/CommandGuide/llvm-tli-checker.md
R llvm/docs/CommandGuide/llvm-tli-checker.rst
A llvm/docs/CommandGuide/mlir-tblgen.md
R llvm/docs/CommandGuide/mlir-tblgen.rst
A llvm/docs/CommandGuide/opt.md
R llvm/docs/CommandGuide/opt.rst
A llvm/docs/CommandGuide/tblgen.md
R llvm/docs/CommandGuide/tblgen.rst
M llvm/test/tools/llvm-symbolizer/relativenames.s
Log Message:
-----------
[docs] Rename remaining CommandGuide docs to Markdown (#220096)
Tracking issue: #201242
See the [migration guide] for more information.
[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is the initial straight rename commit. It will probably break the
docs build, but it has to be a separate PR for blame preservation
purposes.
Commit: b0ec5f2ed2fd9401a40ff2e2061fc1e7fe1b3ede
https://github.com/llvm/llvm-project/commit/b0ec5f2ed2fd9401a40ff2e2061fc1e7fe1b3ede
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-libtool-darwin.md
M llvm/docs/CommandGuide/llvm-link.md
M llvm/docs/CommandGuide/llvm-lipo.md
M llvm/docs/CommandGuide/llvm-locstats.md
M llvm/docs/CommandGuide/llvm-mc.md
M llvm/docs/CommandGuide/llvm-mca.md
M llvm/docs/CommandGuide/llvm-nm.md
M llvm/docs/CommandGuide/llvm-objcopy.md
M llvm/docs/CommandGuide/llvm-objdump.md
M llvm/docs/CommandGuide/llvm-offload-binary.md
M llvm/docs/CommandGuide/llvm-opt-report.md
M llvm/docs/CommandGuide/llvm-otool.md
M llvm/docs/CommandGuide/llvm-pdbutil.md
M llvm/docs/CommandGuide/llvm-profdata.md
M llvm/docs/CommandGuide/llvm-profgen.md
M llvm/docs/CommandGuide/llvm-ranlib.md
M llvm/docs/CommandGuide/llvm-readelf.md
M llvm/docs/CommandGuide/llvm-readobj.md
M llvm/docs/CommandGuide/llvm-reduce.md
M llvm/docs/CommandGuide/llvm-remarkutil.md
M llvm/docs/CommandGuide/llvm-size.md
M llvm/docs/CommandGuide/llvm-stress.md
M llvm/docs/CommandGuide/llvm-strings.md
M llvm/docs/CommandGuide/llvm-strip.md
M llvm/docs/CommandGuide/llvm-symbolizer.md
M llvm/docs/CommandGuide/llvm-tblgen.md
M llvm/docs/CommandGuide/llvm-test-mustache-spec.md
M llvm/docs/CommandGuide/llvm-tli-checker.md
M llvm/docs/CommandGuide/mlir-tblgen.md
M llvm/docs/CommandGuide/opt.md
M llvm/docs/CommandGuide/tblgen.md
M llvm/docs/ProgrammersManual.md
Log Message:
-----------
[docs] Convert remaining CommandGuide docs to Markdown (#220097)
These are the remaining .rst CommandGuide files after #219625. I locally
rendered some man pages to ensure the groff output was OK. I made some
manually cleanups to remove blockquotes from things like llvm-nm. I also
patched up some eval-rst grid-tables manuallly.
Tracking issue: #201242
See the [migration guide] for more information.
[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is a stacked PR based on #220096 , which will be a standalone
commit that
renames *.rst -> *.md before this PR lands for history preservation
purposes.
Commit: fdfa0d62db8f2f387dbd6fe0f2ca83bdaa5282a7
https://github.com/llvm/llvm-project/commit/fdfa0d62db8f2f387dbd6fe0f2ca83bdaa5282a7
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/test/CIR/CodeGen/pointer-to-empty-data-member.cpp
R clang/test/CIR/CodeGen/record-member-kinds-nyi.cpp
M clang/test/CIR/CodeGen/record-member-kinds.cpp
Log Message:
-----------
[CIR] Start representing empty-for-layout-but-not-ABI fields (#219569)
This new special case was added recently as an assert, and a situation
where we can actually access certain fields. This patch makes sure we
represent these in the CIR struct/union types, and adjusts get_member to
use these instead of offset.
Fixes: #219547
Commit: ffe0e6f157ec6df6e76c0af641f6e27ef76f0b76
https://github.com/llvm/llvm-project/commit/ffe0e6f157ec6df6e76c0af641f6e27ef76f0b76
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
M mlir/test/Conversion/XeVMToLLVM/legalize_large_vector.mlir
Log Message:
-----------
[MLIR][XeVM] Legalize large vectors when shuffle second operand is poison (#220360)
The SPIR-V backend now rejects OpTypeVector with a component count
outside {2, 3, 4, 8, 16} with a fatal error, instead of silently
emitting invalid SPIR-V that IGC happened to accept (36135544a13c). This
exposed a gap in the large-vector legalization performed by
convert-xevm-to-llvm.
HandleVectorExtractPattern exists to split vectors wider than 16
elements so that they never reach the backend, but its
isExtractingContiguousSlice guard required both shufflevector source
operands to be the same value. XeGPU lowering can produce a contiguous
slice extraction whose second operand is poison instead of a copy of the
first one:
%0 = llvm.mlir.poison : vector<32xf16>
%1 = llvm.load %p : !llvm.ptr -> vector<32xi16>
%2 = llvm.bitcast %1 : vector<32xi16> to vector<32xf16>
%3 = llvm.shufflevector %2, %0 [0, 1, 2, 3, 4, 5, 6, 7] : vector<32xf16>
For those the pattern bailed out, the vector<32x...> chain survived to
the SPIR-V backend, and compilation aborted with:
LLVM ERROR: OpTypeVector with 32 components requires the following
SPIR-V extension: SPV_EXT_long_vector
The check was stricter than necessary. The mask bounds checks already
ensure that every index addresses the first operand, so the second one
is never read; accept it when it is poison or undef.
Also bounds-check the first mask element, which was previously unchecked
and allowed a single-element mask referring to the second operand to
slip through.
Commit: a8faf300ea7795e40cc9202f01326bbff339d412
https://github.com/llvm/llvm-project/commit/a8faf300ea7795e40cc9202f01326bbff339d412
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/test/Analysis/LoopAccessAnalysis/non-affine-monotonic-bounds.ll
Log Message:
-----------
[LAA] Remove over-eager assert after monotonicity check. (#220363)
The assert added in https://github.com/llvm/llvm-project/pull/210626 is
overly aggressive. SCEV may fail to prove the condition because
SplitIntoInitAndPostInc/getSCEVAtScope may drop flags needed to prove
the condition in the assert.
Add a test case where the start value is not 0, and remove assert.
Fixes https://github.com/llvm/llvm-project/issues/220286.
Commit: 6b27bfe70e8b9737f6c91cdfb48befe4b0583ac1
https://github.com/llvm/llvm-project/commit/6b27bfe70e8b9737f6c91cdfb48befe4b0583ac1
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lldb/docs/resources/lldbgdbremote.md
M lldb/source/Plugins/Process/wasm/ProcessWasm.cpp
M lldb/test/API/functionalities/gdb_remote_client/TestWasm.py
Log Message:
-----------
Revert "[lldb] Drop the trailing separator from the qWasmGlobal instance suffix" (#220388)
Reverts llvm/llvm-project#220338. @jasonmolenda says that the key-value
semi-colon separated format says "end with a ;", which indeed matches
existing packets:
```
send packet: $qMemoryRegionInfo:16fdff310#a5
read packet: $start:16f604000;size:7fc000;permissions:rw;dirty-pages:16fdf0000,16fdf4000,16fdf8000,16fdfc000;type:stack;#00
```
Commit: 6612be67efb8e275f11c842ebde090d3ba1f5d05
https://github.com/llvm/llvm-project/commit/6612be67efb8e275f11c842ebde090d3ba1f5d05
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/AArch64/wide-vscale-range-max-runtime-vf.ll
Log Message:
-----------
[LV] Add tests showing incorrect handling of large vscale ranges (NFC). (#219290)
Add tests with very large VScale max (2^30) showing incorrect handling
of wrapping when computing VF * vscale max in computeVF. We incorrectly
determine that no scalar epilogue is needed for the first test function
with a low trip count loop, and vectorize with a scalar epilogue instead
of tail-folding.
PR: https://github.com/llvm/llvm-project/pull/219290
Commit: 519a7ffc164d1b2c4e29750eb8e43c435d43de44
https://github.com/llvm/llvm-project/commit/519a7ffc164d1b2c4e29750eb8e43c435d43de44
Author: aokblast <aokblast at FreeBSD.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
Log Message:
-----------
[LLDB] Support Re-export Symbol for FunctionCall (#208998)
A symbol can be a stub that is re-exported to another library. For
example, ELF can specify an auxiliary library and emit a zero-sized
symbol in the symbol table. This can cause expression evaluation to
resolve the stub instead of the actual function. Fix this by resolving
re-exported symbols to their actual addressed.
Commit: 1e9384ccd1c050c0919dc1ee91bdb4238291c8b9
https://github.com/llvm/llvm-project/commit/1e9384ccd1c050c0919dc1ee91bdb4238291c8b9
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanLowering.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Insert into vector preheader after phi recipes (NFC). (#220384)
Several transforms insert or hoist recipes to the start of the vector
preheader. Insert after any phi recipes instead
This is NFC today, but prepares for modeling the full epilogue skeleton
in VPlan, which requires adding phi nodes in the preheader before
execute.
Commit: 5d797cf600bb48d872b4919d3ff9687c39992072
https://github.com/llvm/llvm-project/commit/5d797cf600bb48d872b4919d3ff9687c39992072
Author: Farzon Lotfi <farzonlotfi at microsoft.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/Function.h
M llvm/include/llvm/IR/Module.h
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/Target/DirectX/DXILPrettyPrinter.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.h
Log Message:
-----------
[DirectX] Make DXILDebugInfo report that it Modified the IR (#220242)
fixes https://github.com/llvm/llvm-project/issues/220241
When Running Expensive Checks the following tests fail: Failed Tests
(7):
LLVM :: CodeGen/DirectX/DebugInfo/dbg-assign.ll
LLVM :: CodeGen/DirectX/DebugInfo/dbg-declare-undef.ll
LLVM :: CodeGen/DirectX/DebugInfo/dbg-value-arglist.ll
LLVM :: CodeGen/DirectX/DebugInfo/dbg-value.ll
LLVM :: CodeGen/DirectX/DebugInfo/debug-info.ll
LLVM :: CodeGen/DirectX/DebugInfo/di-label.ll
LLVM :: CodeGen/DirectX/debug-info.ll
DXILDebugInfo can modify the IR via convertFromNewDbgValues and other
places. We need to report these modification. It uses the DXILWriter as
its legacy pass, but the writer doesn't know that debuginfo can be
modified so update the Writer too so it can report modifications.
The plan is to make DXILDebugInfoMap have a modified field we can check.
Just setting this to true all the time fixes the expensive checks issue.
Long term we DXILDebugInfo needs to become its own pass.
Commit: a882a47ddb2408488156d0a59165a691b1429ad1
https://github.com/llvm/llvm-project/commit/a882a47ddb2408488156d0a59165a691b1429ad1
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/test/Fir/CUDA/cuda-code-gen.mlir
Log Message:
-----------
[flang][cuda] Look through declare/xdeclare when placing embox descriptors (#220361)
isDeviceAllocation() stopped at fir.declare / fircg.ext_declare, so an
embox of managed data could land on the stack. That happens with -g,
where declare is rewritten to fircg.ext_declare and kept until codegen.
Walk through those ops so the descriptor for managed data is still
allocated in managed memory. Also dyn_cast the adaptor block argument
instead of assuming it is always a BlockArgument.
Add a cuda-code-gen.mlir case for embox of a CUFMemAlloc result reached
through fircg.ext_declare.
Commit: b51e2b0557bd461aa034d55ff54f081132f5103a
https://github.com/llvm/llvm-project/commit/b51e2b0557bd461aa034d55ff54f081132f5103a
Author: Yonah Goldberg <ygoldberg at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/test/Transforms/SROA/select-load.ll
Log Message:
-----------
[SROA] Remove pointer bitcast lookthrough for selects (#220199)
`isSafeSelectToSpeculate` finds load users of the select through
bitcasts. But bitcasts from pointer to pointer don't happen anymore (or
are really uncommon?) after the introduction of opaque pointers. Remove
this functionality.
llvm-opt-benchmark shows no perf diff.
Commit: 7e80c4c7a9f68e8d61d27c035c0777a639a2a90f
https://github.com/llvm/llvm-project/commit/7e80c4c7a9f68e8d61d27c035c0777a639a2a90f
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Remove dead EpilogueLoopVectorizationInfo::EpiloguePlan (NFC). (#220383)
The field has had no readers since 7f3428d3ed71 ("[VPlan] Compute
induction end values in VPlan.", #112145), which removed the last one.
Remove the dead field.
Commit: bea207b72938758a59b499e2aba345d9c882cb3c
https://github.com/llvm/llvm-project/commit/bea207b72938758a59b499e2aba345d9c882cb3c
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lldb/unittests/Host/ProcessRunLockTest.cpp
M lldb/unittests/Utility/PolicyTest.cpp
Log Message:
-----------
[lldb/test] Suppress crash reports from LLDB's gtest death tests (#218981)
PolicyStackDeathTest.GuardDestroyedOnDifferentThread and
ProcessRunLockDeathTest.MoveLockedAcrossThreads deliberately trip
thread-affinity checks that call report_fatal_error, so the forked
death-test child dies via SIGABRT. On platforms with a system crash
reporter that leaves a crash log behind for each run, which CI scrapes
and reports as a test failure even though both tests pass.
Call llvm::sys::Process::PreventCoreFiles() as the first statement
inside the EXPECT_DEATH block. EXPECT_DEATH forks by default, so this
only affects the child process and leaves the runner's own signal
handling alone. The assertions still hold: report_fatal_error writes to
stderr before aborting, so the regex still matches, and the nonzero exit
status satisfies ExitedUnsuccessfully.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Commit: b2c390e532f1a89c6946b65644c6cf05ca2b8b90
https://github.com/llvm/llvm-project/commit/b2c390e532f1a89c6946b65644c6cf05ca2b8b90
Author: Sadaf Ebrahimi <sadafebrahimi at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/allocator_config.def
M compiler-rt/lib/scudo/standalone/allocator_config.h
M compiler-rt/lib/scudo/standalone/common.h
M compiler-rt/lib/scudo/standalone/include/scudo/interface.h
M compiler-rt/lib/scudo/standalone/secondary.h
M compiler-rt/lib/scudo/standalone/tests/allocator_config_test.cpp
M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
M compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
M compiler-rt/lib/scudo/standalone/wrappers_c.cpp
Log Message:
-----------
[scudo] Add MaxCacheResidentBytes to Secondary
Introduce DefaultMaxCacheResidentBytes in the cache configuration and
MaxCacheResidentBytes at runtime to enforce an upper bound on total
resident memory in the Secondary cache.
When storing a block causes resident bytes to exceed the threshold,
physical pages from the oldest cached entries are released to the OS via
releaseAndZeroPagesToOS() while preserving their virtual address
mappings in the cache.
Also adds Option::MaxCacheResidentBytes and M_CACHE_RESIDENT_BYTES_MAX
to allow tuning this limit dynamically via mallopt().
Commit: 9d3b4b1c53d207c91afdc71029c930fc23fa4766
https://github.com/llvm/llvm-project/commit/9d3b4b1c53d207c91afdc71029c930fc23fa4766
Author: Sam Clegg <sbc at chromium.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/docs/LanguageExtensions.md
M clang/docs/ReleaseNotes.md
M clang/include/clang/Basic/BuiltinsWebAssembly.def
M clang/lib/CodeGen/TargetBuiltins/WebAssembly.cpp
M clang/test/CodeGen/builtins-wasm.c
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
M llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td
A llvm/test/CodeGen/WebAssembly/bulk-memory-intrinsics.ll
A llvm/test/CodeGen/WebAssembly/bulk-memory-intrinsics64.ll
Log Message:
-----------
[WebAssembly] Add intrinsics and builtins for `memory.copy` and `memory.fill` (#220111)
Add `@llvm.wasm.memory.copy` and `@llvm.wasm.memory.fill` intrinsics,
along with corresponding `__builtin_wasm_memory_copy` and
`__builtin_wasm_memory_fill` Clang builtins.
These map directly to the WebAssembly `memory.copy` and `memory.fill`
instructions, allowing low-level runtime and libc code (such as
Emscripten) to emit bulk memory operations directly in C/C++ without
needing out-of-line assembly.
Fixes: #220086
Commit: 6eeb31408415aea06088726d1720952c6bf4d664
https://github.com/llvm/llvm-project/commit/6eeb31408415aea06088726d1720952c6bf4d664
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SchedulerTest.cpp
Log Message:
-----------
[SandboxVec][Scheduler][NFC] Assert scheduling direction (#219544)
This patch implements a check that will cause a crash if we attempt to
schedule in the direction opposite to the one set when initializing the
scheduler. Crashing early with a helpful error message is better than
what we currently do, which is silently accepting the scheduling attempt
which may not even cause an immediate crash but could cause a crash
sometime later, providing few clues about what went wrong.
The vectorizer won't exercise switching directions, so this is tested
with unittests.
Commit: 169d56c4f80537fb062b4a0c69a1160fa25aba5f
https://github.com/llvm/llvm-project/commit/169d56c4f80537fb062b4a0c69a1160fa25aba5f
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lld/test/MachO/icf-safe-thunks.ll
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/test/CodeGen/AArch64/macro-fusion-cluster-conflict.mir
M llvm/test/TableGen/aarch64-apple-tuning-features.td
Log Message:
-----------
[AArch64] Remove FeatureFuseAddress from Apple targets (#219838)
As this kind of clustering has not proved to be beneficial.
Commit: c0e52e80ffe1d10959ca71849ac0be9e639143b5
https://github.com/llvm/llvm-project/commit/c0e52e80ffe1d10959ca71849ac0be9e639143b5
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/unittests/ProfileData/SampleProfTest.cpp
Log Message:
-----------
[nfc][test][SampleProf] Add unittest coverage to getCanonicalFnName (#220319)
Assisted-by: Gemini
Commit: 272ad5da54a63a16312e8c3ba0de4290d4931002
https://github.com/llvm/llvm-project/commit/272ad5da54a63a16312e8c3ba0de4290d4931002
Author: Justin Fargnoli <jfargnoli at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/test/CodeGen/fat-lto-objects-cfi.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
Log Message:
-----------
Revert "[LTO] Enable `PrepareForLTO` for loop unrolling in pre-link pipelines" (#220057)
Reverts llvm/llvm-project#192155 due to
https://github.com/llvm/llvm-project/pull/192155#issuecomment-5481311618
Commit: ced97f3b8e9d1d13098e820b6a2b3fba50d948fd
https://github.com/llvm/llvm-project/commit/ced97f3b8e9d1d13098e820b6a2b3fba50d948fd
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/Utils/XeGPUUtils.h
M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
M mlir/test/Dialect/XeGPU/propagate-layout-subgroup-invalid.mlir
M mlir/test/Dialect/XeGPU/resolve-layout-conflicts.mlir
Log Message:
-----------
[mlir][xegpu] Resolve scf.while "after" region argument layouts (#220094)
This PR handles the layout conflict resolution and argument layout
access for scf.while. It limited the scf.while to pass-through use case:
when `scf.condition` forwards a "before" argument unchanged, the "after"
argument's layout can be accessed as scf.while's expected operand layout
for the init operands. In this way, the handling of scf.for is unified
with scf.while, the argument layout can be derived by the loop op's
operand's layout.
assited-by-claude
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Commit: d9754ed9356ad42a53270e4dfe2007d15a27d8a4
https://github.com/llvm/llvm-project/commit/d9754ed9356ad42a53270e4dfe2007d15a27d8a4
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/docs/DefiningDialects/Operations.md
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/mlir-tblgen/op-attribute.td
M mlir/test/mlir-tblgen/op-decl-and-defs.td
M mlir/test/mlir-tblgen/op-error.td
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
M mlir/unittests/TableGen/OpBuildGen.cpp
Log Message:
-----------
[mlir][ODS] Populate properties in legacy aggregate builders (#219194)
Partition mixed aggregate attributes before operation creation and
deprecate the generated compatibility overloads for operations with
non-empty properties.
This is part of a general migration to use the "new" properties-based
APIs #155475
Assisted-by: Codex
Commit: 925658474fe44aebd0997ad51ab0800174dbae49
https://github.com/llvm/llvm-project/commit/925658474fe44aebd0997ad51ab0800174dbae49
Author: Mircea Trofin <mtrofin at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/IR/Constants.cpp
A llvm/test/Transforms/ThinLTOBitcodeWriter/cfi_dso_local_equivalent.ll
M llvm/unittests/IR/ConstantsTest.cpp
Log Message:
-----------
[IR] `replaceUsesWith` when aliasing a GV and the use is `dso_local_equivalent` (#220336)
When we want to replace all uses of a GlobalValue `GV` with an alias to
it, the replacing should keep `dso_local_equivalent` semantics - i.e.
such use will be to a `dso_local_equivalent` of the alias of the GV.
Fixes an issue discovered during a certain configuration of chrome
builds, see https://issues.chromium.org/issues/552515375
Commit: 73bc434fb4188ef8972a9acf8f72670845681a26
https://github.com/llvm/llvm-project/commit/73bc434fb4188ef8972a9acf8f72670845681a26
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
A llvm/test/CodeGen/AMDGPU/waitcnt-loop-carried-fence-drain-gfx12.mir
A llvm/test/CodeGen/AMDGPU/waitcnt-loop-carried-fence-drain.mir
Log Message:
-----------
[AMDGPU] Pre-commit tests for loop-carried memory waits (#220356)
SIInsertWaitcnts is currently dropping waits in a
(fence; read; write; branch) loop in some cases. Pre-commit tests to
show the problem.
AI disclosure: test generated by AI, but I poked them into not being
terrible.
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
Commit: 63f2d96198f9bf602f76023feab98d8557e24337
https://github.com/llvm/llvm-project/commit/63f2d96198f9bf602f76023feab98d8557e24337
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/test/Sema/LifetimeSafety/dangling-global.cpp
Log Message:
-----------
[LifetimeSafety] Suppress global-escape warnings in `main` to reduce false positives (#218765)
Commit: c39fa41eed23950bf9adc0305cf24f2f01113608
https://github.com/llvm/llvm-project/commit/c39fa41eed23950bf9adc0305cf24f2f01113608
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
A clang/docs/CommandGuide/clang.md
R clang/docs/CommandGuide/clang.rst
A clang/docs/CommandGuide/diagtool.md
R clang/docs/CommandGuide/diagtool.rst
A clang/docs/LLVMExceptionHandlingCodeGen.md
R clang/docs/LLVMExceptionHandlingCodeGen.rst
A clang/docs/MatrixTypes.md
R clang/docs/MatrixTypes.rst
A clang/docs/ObjectiveCLiterals.md
R clang/docs/ObjectiveCLiterals.rst
A clang/docs/OffloadingDesign.md
R clang/docs/OffloadingDesign.rst
A clang/docs/PCHInternals.md
R clang/docs/PCHInternals.rst
M clang/docs/conf.py
A clang/docs/index.md
R clang/docs/index.rst
Log Message:
-----------
[docs] Rename remaining Clang docs for MyST migration (#220380)
Tracking issue: #201242
See the [migration guide] for more information.
[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is the initial straight rename commit. It will probably break the
docs build, but it has to be a separate PR for blame preservation
purposes.
Commit: 43074566f2007fe701ce59b439b3e2953d5b707d
https://github.com/llvm/llvm-project/commit/43074566f2007fe701ce59b439b3e2953d5b707d
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/docs/CommandGuide/clang.md
M clang/docs/CommandGuide/diagtool.md
M clang/docs/LLVMExceptionHandlingCodeGen.md
M clang/docs/MatrixTypes.md
M clang/docs/ObjectiveCLiterals.md
M clang/docs/OffloadingDesign.md
M clang/docs/PCHInternals.md
M clang/docs/conf.py
M clang/docs/index.md
M clang/lib/Driver/ToolChains/MSVC.cpp
Log Message:
-----------
[docs] Finish MyST migration for remaining Clang docs (#220381)
This migrates all remaining clang/docs/**rst files to markdown. There
are still 2-3 remaining generated rst files, and I'm working on that
next. The pixel diff shows 0.4045% pixel differences after
longest-common-subsequence vertical alignment, and they all looked
intentional to me. I don't have a good process for serving that HTML, or
I'd share it.
Tracking issue: #201242
See the [migration guide] for more information.
[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is a stacked PR based on #220380, which will be a standalone commit
that
renames *.rst -> *.md before this PR lands for history preservation
purposes.
This was prepared with rst2myst plus LLM-assisted cleanup.
Commit: 470c5d217c240370f72a63a10cfa31b5766eb40f
https://github.com/llvm/llvm-project/commit/470c5d217c240370f72a63a10cfa31b5766eb40f
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
R llvm/test/CodeGen/AArch64/sme-za-tailcall-fpdiff-align.ll
Log Message:
-----------
Revert "[llvm][AArch64] Ensure stack alignment in non-sibcall tail calls with FPDiff" (#220419)
Reverts llvm/llvm-project#217156
I noticed an issue with it right after it landed, and to simplify
cherry-picking, I'm going to revert and re-land. See:
https://github.com/llvm/llvm-project/pull/220406 for the re-land.
Commit: 42f2cd0c980cc1a924619ecaeaa51ca7b55164ab
https://github.com/llvm/llvm-project/commit/42f2cd0c980cc1a924619ecaeaa51ca7b55164ab
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
R llvm/test/Transforms/LowerTypeTests/promoted-internal.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/comdat.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal1.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll
Log Message:
-----------
Revert "[CFI] Create an external linkage alias instead of promoting i… (#220339)
…nternals (#203171)"
This reverts commit 2b321e2f293a8486ce8a351aaa5a85ba1596b9ca. Causes
crashes and breaks linking on Windows, see comments on
https://github.com/llvm/llvm-project/pull/203171
Commit: 9e7d9dae83cd55b1bb6dfeb6f79530e5418bb131
https://github.com/llvm/llvm-project/commit/9e7d9dae83cd55b1bb6dfeb6f79530e5418bb131
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/OpenACCUtilsLoop.h
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsLoop.cpp
M mlir/unittests/Dialect/OpenACC/OpenACCUtilsLoopTest.cpp
Log Message:
-----------
[nfc][acc] Make two loop utilities non-static and add tests (#220417)
Updates OpenACCUtilsLoop so that two of the internal helpers are
externally callable. Adds unit tests for them.
Commit: cb3d76f25018c1b7ae180113682e74ce430501f8
https://github.com/llvm/llvm-project/commit/cb3d76f25018c1b7ae180113682e74ce430501f8
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/sanitizer_common/BUILD.gn
Log Message:
-----------
[gn] port 4bb34ea0473c (#220421)
Commit: 0b02fbd3cc0e6aaee74e2bb74a604e2a317a1f8a
https://github.com/llvm/llvm-project/commit/0b02fbd3cc0e6aaee74e2bb74a604e2a317a1f8a
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn
Log Message:
-----------
[gn build] Port 5cc76ecb867c (#220422)
Commit: 8ee754b9913ec7207bec47a5ff3d7c96533d79a4
https://github.com/llvm/llvm-project/commit/8ee754b9913ec7207bec47a5ff3d7c96533d79a4
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 678058af7da6 (#220423)
Commit: fab96ba7d54bbb5139a107903a9b70ce77763636
https://github.com/llvm/llvm-project/commit/fab96ba7d54bbb5139a107903a9b70ce77763636
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/BUILD.gn
A llvm/utils/gn/secondary/llvm/unittests/MC/LoongArch/BUILD.gn
Log Message:
-----------
[gn] port 6ca17fd8ed37 (LoongArchMCTests) (#220425)
Commit: c0a2ac7cd957efcdf116001455d18df374f3961f
https://github.com/llvm/llvm-project/commit/c0a2ac7cd957efcdf116001455d18df374f3961f
Author: Justin Bogner <mail at justinbogner.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILResourceAccess.cpp
Log Message:
-----------
[NFC][DirectX] Fix a memory leak in resource access (#220350)
This code was leaking memory when `HasGetPtr` was false. We would reset
`GetPtrPhi` to `nullptr` but we would never delete the `PHINode` we
created preemptively.
Fix this by consolidating the logic to handle the case where we don't
need a PHI for the getpointer, and simplify by avoiding insertion of the
instruction at all if we aren't going to use it.
Leak reported by ASAN:
https://lab.llvm.org/buildbot/#/builders/24/builds/23635
Commit: 5da4b60cfd62ab396d3c597c32c010cbbb656439
https://github.com/llvm/llvm-project/commit/5da4b60cfd62ab396d3c597c32c010cbbb656439
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/unittests/ProfileData/SampleProfTest.cpp
Log Message:
-----------
[SampleProf] Strict handling suffixes without trailing "." (#220320)
Trailing "." is followed by variable part of the suffix.
As is, for non dot terminated suffix, getCanonicalFnName pass
with "Dit == It" and cuts any suffix with starts with `Suffix`.
E.g. ".cfi" suffix will match will consume "foo.cfi_something" else,
I believe this is unintentional in general and undesired for ".cfi",
which can match ".cfi_jt".
Commit: 0a1e8326ea877739c921ef4434b469442de73066
https://github.com/llvm/llvm-project/commit/0a1e8326ea877739c921ef4434b469442de73066
Author: Matsu <47756807+khaki3 at users.noreply.github.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/DenseMap.h
Log Message:
-----------
[ADT] Exit doFind on an empty map, not just an unallocated one (#220294)
`doFind` exits early only when no buckets were ever allocated. A map that
had entries and lost them keeps its bucket array. `NumBuckets` is then not
zero, so every lookup hashes the key and probes.
For a `SmallDenseMap` in small mode, `NumBuckets` is the template parameter
`InlineBuckets`, a nonzero constant. The existing check can never fire for
those maps. An empty one hashes and probes on every lookup.
`getNumEntries() == 0` covers both cases. It also subsumes the old check.
There are no entries without buckets, so `Mask = NumBuckets - 1` is still
safe. It is one test either way, so non-empty lookups are unchanged. The
check goes before `getRep()`. Keeping it after costs 0.158% on clang, so
those loads are not sunk past the branch.
| workload | instructions:u |
|---|---:|
| clang compiling 600 LLVM/Clang/MLIR translation units | **-0.028%** |
| `mlir-opt` canonicalize/cse over 1060 `mlir/test` files >4KB |
**-0.291%** |
Three interleaved runs each. Ranges do not overlap. Exit codes are
identical on all 1448 candidate `mlir/test` files.
Adding `LLVM_UNLIKELY` to the branch is a regression, not a win. It takes
clang from -0.133% to -0.007%. Once this is the first check, an empty map
is the common case, not the rare one.
Commit: 6964d51d2194ed17c08fd8b7fd1f456ab34996dd
https://github.com/llvm/llvm-project/commit/6964d51d2194ed17c08fd8b7fd1f456ab34996dd
Author: Rafael Auler <rafael at rafaelauler.cc>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
Log Message:
-----------
[BOLT] Fix data race on the shared .dwp DWARF context (#220119)
As noted by labrinea, 775dc9b8bf58 ("[BOLT] Create and release .dwo
DWARF contexts incrementally") releases every DWO context at the end of
readDebugInfo, leaving the bucket threads of the DWARF rewrite to
re-open them on demand. With a .dwp package that moved the first touch
of a shared context into the parallel phase, and multiple threads
compete for it, in a race for the abbrev table, causing intermittent
failures in dwarf5-ftypes-dwp-input-dwo-output.test.
Open the split CUs of a package up front, from a single thread, and
resolve the abbreviation table of every unit in it. This is not relevant
for the non-dwp case, which is unaffected.
Commit: 88e822a5253bec54a95687e59540a2d48cbaf4ca
https://github.com/llvm/llvm-project/commit/88e822a5253bec54a95687e59540a2d48cbaf4ca
Author: Matsu <47756807+khaki3 at users.noreply.github.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp
M mlir/test/Conversion/SCFToControlFlow/convert-to-cfg.mlir
Log Message:
-----------
[mlir][SCFToControlFlow] Carry LLVM attributes through scf.parallel lowering (#219218)
`ParallelLowering` builds its `scf.for` nest without copying anything from the
`scf.parallel`, so an `llvm.loop_annotation` placed on a parallel loop is
silently dropped before `ForLowering` can move it onto the latch branch.
`scf.for` and `scf.while` already propagate LLVM-dialect attributes via
`propagateLoopAttrs`, so do the same for `scf.parallel`. A multi-dimensional
`scf.parallel` carries a single attribute dictionary but becomes several loops,
so the attributes go to the innermost one, whose latch is where `ForLowering`
attaches the loop metadata.
Tests cover the 1-D case and a 2-D nest, where the outer latch is checked to
stay unannotated. Verified that the new tests fail without the fix and pass with
it, and that the pre-existing expectations in `convert-to-cfg.mlir` are
unchanged.
Commit: 054315317b3f161db473604eaae29a311b04cd52
https://github.com/llvm/llvm-project/commit/054315317b3f161db473604eaae29a311b04cd52
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h
M lldb/test/API/macosx/load-kext/TestLoadKext.py
Log Message:
-----------
[lldb] Untangle PlatformDarwinKernel's kext and kernel index lookups (#220318)
PlatformDarwinKernel searches an index of the local filesystem for kexts
and kernels, but each search was interleaved with creating the Module,
updating the Target and falling back to PlatformDarwin, so nothing else
could reuse it. Pull the two searches out so a follow-up can answer
Platform::FindModuleFiles with them.
This change is NFC except GetSharedModuleKernel assigned module_sp
before testing whether the candidate matched and never cleared it, so a
failed search would still return the last *non-matching* module.
Commit: e2a87e12d2561865ed36b264bf48b7423d450041
https://github.com/llvm/llvm-project/commit/e2a87e12d2561865ed36b264bf48b7423d450041
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.monitor.sleep.ll
M llvm/test/MC/AMDGPU/gfx1250_asm_sopp.s
M llvm/test/MC/AMDGPU/gfx1250_asm_sopp_err.s
Log Message:
-----------
[AMDGPU] s_monitor_sleep shall not use sleep_forever on gfx1250 (#220366)
Fixes: SWDEV-542848
Commit: 95aedc66200092ad042b4070ee0ee0682b733ffd
https://github.com/llvm/llvm-project/commit/95aedc66200092ad042b4070ee0ee0682b733ffd
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/test/BUILD.gn
A llvm/utils/gn/secondary/clang/tools/clang-ssaf-src-edit-merge/BUILD.gn
Log Message:
-----------
[gn] port e4eb61771f22b (clang-ssaf-src-edit-merge) (#220443)
Commit: 810dc356352a37a737547bfa1d17108bfcc66c12
https://github.com/llvm/llvm-project/commit/810dc356352a37a737547bfa1d17108bfcc66c12
Author: Yuji Watanabe <y.watanabe at fujitsu.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang-rt/test/Driver/endian.f90
Log Message:
-----------
[flang][runtime] Use CONVERT='SWAP' in endian.f90 test (#220185)
Follow-up to #218302.
The test currently uses CONVERT='BIG_ENDIAN'.
On big-endian systems such as PPC/AIX, this does not actually
exercise endian conversion.
Switch the test to CONVERT='SWAP' so that byte swapping is
performed regardless of the host byte order.
Commit: a26d1318959d4d06f0881a8d6041e9fc551cd175
https://github.com/llvm/llvm-project/commit/a26d1318959d4d06f0881a8d6041e9fc551cd175
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Sema/SemaDecl.cpp
M clang/test/Modules/include-after-imports-enums.cppm
M clang/unittests/Sema/CMakeLists.txt
A clang/unittests/Sema/SemaModuleTest.cpp
Log Message:
-----------
[C++20] [Modules] merge the type for anony enum from import and #include (#214121)
Close https://github.com/llvm/llvm-project/issues/213299
Ideally, we shall merge the new enum with the old enum when we creating
the new enum. But the enum is anonymous and the typedef's name come
after the enum body, it is too late to merge them. This is the choice 10
years ago: a523022b5384d7a0901beea7a5f36ee9c09ba339. Actually what we're
merging is the typedef decls.
Then https://github.com/llvm/llvm-project/pull/114240 removes the logic
to remove the new ED. This the direct trigger for the above issue of
ambiguous look ups.
We choose to fix the problem by setting the type of new enum to the type
of the old enum to fix the ambiguous lookup issue.
Commit: ed1626b9d0eaf7c406f44da5fb595ad94559f54b
https://github.com/llvm/llvm-project/commit/ed1626b9d0eaf7c406f44da5fb595ad94559f54b
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/test/unit/CMakeLists.txt
A orc-rt/test/unit/tools/CommandLineTest.cpp
R orc-rt/test/unit/utils/CommandLineTest.cpp
Log Message:
-----------
[orc-rt] Rename test/unit/utils -> test/unit/tools. (#220408)
This aligns the unit test directory with the corresponding header
directory (orc-rt-internal/tools).
Commit: c3a9c64492b9abbfcff1f02b243b2e3803e770bf
https://github.com/llvm/llvm-project/commit/c3a9c64492b9abbfcff1f02b243b2e3803e770bf
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/include/orc-rt-internal/tools/CommandLine.h
M orc-rt/test/unit/tools/CommandLineTest.cpp
Log Message:
-----------
[orc-rt] Don't parse program name in CommandLineParser::parse (#220454)
The iterator-based CommandLineParser::parse method expected a program
name as the first argument in the list, but did not do anything with its
value (it was simply skipped). Update it to expect argument strings only
(no program name as first element) and document the new expectation.
The (argc, argv) overload of parse is renamed to parseAsMainArgs. It
still expects a program name as the first argument and will return an
Error if it is not present.
This allows CommandLineParser::parse to be used in contexts where there
is no natural program name (e.g. in unit tests, and options read from
config files).
Commit: 751ed7b16433d2279286d0765f51cd36edc6d771
https://github.com/llvm/llvm-project/commit/751ed7b16433d2279286d0765f51cd36edc6d771
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/IR/Constants.cpp
R llvm/test/Transforms/ThinLTOBitcodeWriter/cfi_dso_local_equivalent.ll
M llvm/unittests/IR/ConstantsTest.cpp
Log Message:
-----------
Revert "[IR] `replaceUsesWith` when aliasing a GV and the use is `dso_local_equivalent`" (#220450)
Reverts llvm/llvm-project#220336
Breaks tests after #220339 and supposedly there are still other
outstanding issues.
Commit: f7549a9b636570e10df5301a920da5db3334f6ae
https://github.com/llvm/llvm-project/commit/f7549a9b636570e10df5301a920da5db3334f6ae
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/FoldingSet.h
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/unittests/ADT/FoldingSet.cpp
Log Message:
-----------
[ADT][SelectionDAG] Unique SDNodes in a UniquingSet (#220195)
CSEMap keys SDNodes by a serialized FoldingSetNodeID. Every lookup
profiles the opcode, the VT list and the operands into a buffer, and
every probe rebuilds the candidate's whole profile to compare against
it.
UniquingSet compared a key against Info::getKey(*N), building a key from
the candidate on every probe. Add isEqual to the Info contract,
defaulting to that comparison, and expose a FoldingSetNodeID's
accumulated words as a FoldingSetNodeIDRef so an Info that carries one
can hash it.
Key nodes by SDNodeKey, which holds those fields directly and leaves
only what AddNodeIDCustom contributes serialized in a tail, which is
empty for most opcodes. A lookup site keeps its ID.AddXxx lines: the key
forwards them to the tail. isEqual matches the key against a candidate's
fields and builds only the tail; an assertions build cross-checks the
result against the profile both would have had.
Aided by Opus 5
Commit: 1f2c83646a0a50a649b274ec871999bc742d77de
https://github.com/llvm/llvm-project/commit/1f2c83646a0a50a649b274ec871999bc742d77de
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M lld/test/ELF/lit.local.cfg
M utils/bazel/llvm-project-overlay/lld/test/ELF/BUILD.bazel
Log Message:
-----------
[lld][ELF] Fix ignored yaml tests (#220325)
These previously weren't running:
```
lld :: ELF/gdb-index-invalid-section-index.yaml
lld :: ELF/invalid/entsize.yaml
```
Commit: 4e3d091bf0e48c516530883d36e7d106f2e18fd6
https://github.com/llvm/llvm-project/commit/4e3d091bf0e48c516530883d36e7d106f2e18fd6
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/test/tools/orc-rt-log-check.cpp
M orc-rt/test/tools/orc-rt-process-info-check.cpp
Log Message:
-----------
[orc-rt] Fix test tools broken by c3a9c64492b. (#220457)
Update regression test tools to use the parseAsMainArgs method
introduced in c3a9c64492b.
Commit: 3814bd8ccc1d8f9b047654f3e84ac88153c31c32
https://github.com/llvm/llvm-project/commit/3814bd8ccc1d8f9b047654f3e84ac88153c31c32
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
A llvm/test/Transforms/InstCombine/RISCV/riscv-vlenb-range.ll
Log Message:
-----------
[ValueTracking][RISCV] Derive range and pow2 for vlenb CSR reads (#219924)
__riscv_vlenb() lowers to a read of the RISC-V vlenb CSR via
llvm.read_register("vlenb"), which returns VLEN/8. Teach
ValueTracking to recognize that read on a RISC-V target and reason
about its result:
* getRangeForIntrinsic() reports the value range of VLENB. RVV
requires VLEN to be a power of two in [32, 65536] (Zvl32b is
the smallest vector extension), so VLENB is in [4, 8192]
regardless of any attribute. This stays sound for Zvl32b,
whose VLEN (32) is not representable as an integer vscale
(VLEN / RVVBitsPerBlock). When the function carries a
vscale_range attribute the subtarget's VLEN is a multiple of
RVVBitsPerBlock (64), so VLENB = vscale * RVVBytesPerBlock
tightens the range.
* isKnownToBeAPowerOfTwo() reports that VLENB is a power of two.
This lets InstCombine fold vlenb comparisons such as
`__riscv_vlenb() >= 4` (always true) or `__riscv_vlenb() > 8192`
(never true), tighter bounds like `__riscv_vlenb() >= 16` under +v
or `>= 64` under zvl512b, and power-of-two dependent transforms
like `vlenb & (vlenb - 1)`, `x % vlenb` and `x / vlenb`.
Doing this in ValueTracking instead of attaching a range attribute
in Clang keeps the optimization available to all frontends and adds
the power-of-two fact, which no IR return attribute can express.
Fixes #217784.
Assisted-by: TRAE CLI (Opus 4.8)
Commit: 58c6f14efbdd825a8e15b8bcdd27127819656d09
https://github.com/llvm/llvm-project/commit/58c6f14efbdd825a8e15b8bcdd27127819656d09
Author: renndong <liumingliang.dev at bytedance.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/vabd.ll
Log Message:
-----------
[RISCV] Fix instruction combine of vwaddu.wv and vabd[u].vv (#220143)
The existing combination of `vwaddu.wv` and `vabd.vv/vabdu.vv` may
trigger a stack dump: The source operands of `vwaddu.wv` are not
commutative. Swapping these operands can generate an invalid `VWABDA_VL`
node and cause ISel to panic. This PR fixes the issue and only allows
the instruction with same `mask` and `vl` to be combined.
Commit: c57c19f1d6dc310b04f57653a3ce1012f88db2c3
https://github.com/llvm/llvm-project/commit/c57c19f1d6dc310b04f57653a3ce1012f88db2c3
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
R orc-rt/include/orc-rt-internal/tools/CommandLine.h
A orc-rt/include/orc-rt-internal/tools/OptionParser.h
M orc-rt/test/tools/orc-rt-log-check.cpp
M orc-rt/test/tools/orc-rt-process-info-check.cpp
M orc-rt/test/unit/CMakeLists.txt
R orc-rt/test/unit/tools/CommandLineTest.cpp
A orc-rt/test/unit/tools/OptionParserTest.cpp
Log Message:
-----------
[orc-rt] Rename CommandLineParser to OptionParser. (#220461)
"OptionParser" better describes what the class does: it parses a list of
option strings, which need not come from a command line (e.g. options
read from a config file, or constructed in a unit test).
Commit: 86e603665acc44f0c47f737f0c45f75527a397af
https://github.com/llvm/llvm-project/commit/86e603665acc44f0c47f737f0c45f75527a397af
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/include/orc-rt-internal/tools/OptionParser.h
Log Message:
-----------
[orc-rt] Remove redundant orc_rt:: qualifications. (#220465)
OptionParser is in the orc_rt namespace, so should shouldn't need
qualification for these.
Commit: 5c76fa7ff41420f676560a26af5cfcb4d07597b9
https://github.com/llvm/llvm-project/commit/5c76fa7ff41420f676560a26af5cfcb4d07597b9
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/pmulh.ll
Log Message:
-----------
[X86] Fix miscompilation in combinePMULH for types larger than 32 bits (#219996)
The combinePMULH DAG combine optimizes patterns like
trunc(lshr(mul(sext, sext), ShiftAmt) to i16) into X86 pmulhw
instructions followed by a right shift. Previously, this combine
unconditionally emitted a logical shift right to process the remainder
of the shift.
This is correct when the original multiplication type is 32 bits (as the
lshr naturally shifts in zeros from out-of-bounds bits). However, when
the multiplication type is larger than 32 bits, this results in a
miscompilation for negative products.
Fixes: https://github.com/llvm/llvm-project/issues/218844
Commit: 6641ea748a2f99f49b7a5c4395460d62a08fc1f2
https://github.com/llvm/llvm-project/commit/6641ea748a2f99f49b7a5c4395460d62a08fc1f2
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M mlir/lib/Conversion/VectorToXeGPU/VectorToXeGPU.cpp
A mlir/test/Conversion/VectorToXeGPU/unflatten-gather-scatter.mlir
Log Message:
-----------
[mlir][VectorToXeGPU] Un-flatten gather/scatter in convert-vector-to-xegpu (#218292)
XeGPU layouts (sg_layout, inst_data, lane_layout, ...) are expressed in
terms of the N-D shape of the accessed data. Frontends, however, often
emit vector.gather / vector.scatter with 1-D operands obtained by
shape_cast-ing N-D indices and masks. That forces layout propagation to
reason backwards through the surrounding shape_casts, which adds
complexity and tends to yield layouts that lower to unoptimized code.
This PR restores the N-D form of a flattened gather/scatter as a step in
the convert-vector-to-xegpu pass. The N-D shape is taken from the index
operand's producer, so the rewrite only ever undoes a flattening that
already happened.
assisted-by-claude
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Commit: b2852b495a248714a89082672372db79232dac66
https://github.com/llvm/llvm-project/commit/b2852b495a248714a89082672372db79232dac66
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/tools/ogre/CMakeLists.txt
M orc-rt/tools/ogre/ogre.cpp
Log Message:
-----------
[orc-rt] Add skeleton command-line options parsing to ogre (#220467)
Just adds --help and --verbose options for now. The set can be extended
by adding fields to the Options struct and corresponding rules to the
parser.
Commit: d378144735cb1021608003ee418b54d402a5ac98
https://github.com/llvm/llvm-project/commit/d378144735cb1021608003ee418b54d402a5ac98
Author: Bart Van Assche <bvanassche at users.noreply.github.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
M llvm/test/CodeGen/SPARC/bswap.ll
Log Message:
-----------
[SPARC] Fix SelectForceADDRrr for global addresses and non-reg operands (#220013)
When lowering byte-swapped memory operations on SPARC V9, LLVM emits
ASI-tagged memory instructions (such as STHArr, STArr, LDArr, etc.) that
require register+register addressing modes matched via ForceADDRrr.
SelectForceADDRrr previously forwarded 2-operand address nodes directly
to SelectADDRrr. However, SelectADDRrr explicitly returns false when
encountering SPISD::Lo (used in %hi/%lo global address calculations) or
small constant offsets in order to allow standard ADDRri patterns to
match. Because SelectForceADDRrr returned the result of SelectADDRrr
directly instead of falling back to Base = Addr, Disp = %g0, any
endian-adjusted load or store targeting a global variable failed to
select and caused a backend compiler crash:
"Cannot select: SPISD::STORE_LITTLE ..."
Fix SelectForceADDRrr so that if SelectADDRrr fails to match, it falls
back to evaluating the full address into a base register and using %g0
as the offset register. Also add tests for global variable byte-swapped
loads and stores.
Fixes: 1ba7c9677649 ("[SPARC] Use hardware byteswapper when we have V9
(#191720)")
Signed-off-by: Bart Van Assche <bvanassche at acm.org>
Commit: c562f17fe5607e94f85a996fd631803f3ba71122
https://github.com/llvm/llvm-project/commit/c562f17fe5607e94f85a996fd631803f3ba71122
Author: Katya Romanova <56653669+romanova-ekaterina at users.noreply.github.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M cross-project-tests/dtlto/cache-extraction.test
M lld/COFF/LTO.cpp
M lld/ELF/LTO.cpp
M llvm/include/llvm/Support/Caching.h
M llvm/lib/DTLTO/DTLTO.cpp
M llvm/lib/Support/Caching.cpp
A llvm/test/ThinLTO/X86/dtlto/dtlto-cache-rename-optimization.ll
M llvm/tools/llvm-lto2/llvm-lto2.cpp
Log Message:
-----------
DTLTO Cache optimization
Currently, DTLTO cache works this way: when native object file is
generated and sent back by the remote compilation, it's being saved on
the disk, then the content of this file is read and written into a
buffer and subsequently it's read from the buffer and written into the
cache file. This is obviously non-efficient.
With this optimization, after the native object file is saved on the
disk, it's being renamed into a cache file.
Commit: ae8db9fc7564c0e76c312edef726ca93b642264f
https://github.com/llvm/llvm-project/commit/ae8db9fc7564c0e76c312edef726ca93b642264f
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/GenericCycleInfo.h
Log Message:
-----------
[ADT] Work around a bug in clang-10's CTAD support (#220449)
Fixes a regression from
https://github.com/llvm/llvm-project/commit/285a3cb74ef4 which broke
builds with host clang versions older than 12 due to lacking this bug fix:
https://github.com/llvm/llvm-project/commit/d1751d14a6b2
Fixes https://github.com/llvm/llvm-project/issues/220387
Commit: 9983f9f6894d00c79016bb0ff952edbd8abc0825
https://github.com/llvm/llvm-project/commit/9983f9f6894d00c79016bb0ff952edbd8abc0825
Author: Rong "Mantle" Bao <rong.bao at csmantle.top>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/unittests/MC/LoongArch/LoongArchMCDisassemblerTest.cpp
Log Message:
-----------
[test][LoongArch][MC] Fix lifetime of MCOptions in LoongArchMCDisassemblerTest (#220453)
The original testbench added in #217971 contains a lifetime violation of
the stack-allocated `MCTargetOptions` object. Construct it in the
testing context instead to get a static lifetime. Now, the pattern is
consistent with
[X86MCDisassemblerTest.cpp](https://github.com/llvm/llvm-project/blob/ed1626b9d0eaf7c406f44da5fb595ad94559f54b/llvm/unittests/MC/X86/X86MCDisassemblerTest.cpp#L29).
Fixes: #217971
CC: @fmayer, @heiher, @zhaoqi5, @SixWeining
Commit: f331fecb7fe8f507920f9becc7eba72af1b6b184
https://github.com/llvm/llvm-project/commit/f331fecb7fe8f507920f9becc7eba72af1b6b184
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/CMakeLists.txt
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.cpp
A llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.h
M llvm/utils/gn/secondary/llvm/lib/Transforms/Vectorize/BUILD.gn
Log Message:
-----------
[SLP][modularisation][NFC] Move type/width helpers to SLPTypeUtils (1/2) (#214672)
Move the following BoUpSLP-independent type/width helpers out of
SLPVectorizer.cpp into a new SLPVectorizer/SLPTypeUtils.{h,cpp}:
isValidElementType
getValueType
getWidenedType
SLPReVec is passed as an explicit bool parameter to the moved helpers;
behavior is unchanged.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
Commit: 7be06ba83a79df9fa7a177dc7bdfde36ce60a630
https://github.com/llvm/llvm-project/commit/7be06ba83a79df9fa7a177dc7bdfde36ce60a630
Author: Farzon Lotfi <farzonlotfi at microsoft.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/include/clang/Basic/HLSLIntrinsics.td
M clang/test/CodeGenHLSL/builtins/abs.hlsl
M clang/test/CodeGenHLSL/builtins/degrees.hlsl
M clang/test/CodeGenHLSL/builtins/lerp.hlsl
M clang/test/CodeGenHLSL/builtins/radians.hlsl
M clang/test/CodeGenHLSL/builtins/smoothstep.hlsl
M clang/test/CodeGenHLSL/builtins/step.hlsl
M clang/test/SemaHLSL/BuiltIns/smoothstep-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/step-errors.hlsl
Log Message:
-----------
[LongVec] Add Support for pure HLSL APIs (#218155)
resolves https://github.com/llvm/llvm-project/issues/217716
The last pr only added them to clang builtins with the
"__builtin_elementwise" prefix. This adds the long vector support to the
ones written entirely in hlsl.
Commit: 1af5f29d09f271930dd1d5509f6d95259fdc03e5
https://github.com/llvm/llvm-project/commit/1af5f29d09f271930dd1d5509f6d95259fdc03e5
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/include/orc-rt-internal/tools/OptionParser.h
Log Message:
-----------
[orc-rt] Use move_only_function in OptionParser (#220474)
Replace std::function with move_only_function in OptionParser.
move_only_function is preferred where possible to std::function, and we
didn't need these values to be copyable.
Commit: 06d0711313b763b65c7e4a9e8613893d7760b6f6
https://github.com/llvm/llvm-project/commit/06d0711313b763b65c7e4a9e8613893d7760b6f6
Author: Jian Li <hellothedreamer at 126.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
A llvm/test/CodeGen/RISCV/GlobalISel/clmul-rv32.ll
A llvm/test/CodeGen/RISCV/GlobalISel/clmul-rv64.ll
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
Log Message:
-----------
[RISCV][GlobalISel] Legalize llvm.clmul for native XLEN types (#220178)
Translate llvm.clmul to G_CLMUL in IRTranslator.
Mark G_CLMUL legal for native XLEN scalar types on RISC-V targets with
Zbc or
Zbkc.
Tests cover RV32 and RV64 code generation with both Zbc and Zbkc.
Commit: 3c7c73cd445b0b5e43b3ec4e25471c8b459c587b
https://github.com/llvm/llvm-project/commit/3c7c73cd445b0b5e43b3ec4e25471c8b459c587b
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 071b3c2 (#220376)
This fixes 071b3c2fe08770c7d1875c1d58b6e1f9fe74506f (#220352).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=071b3c2fe08770c7d1875c1d58b6e1f9fe74506f
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 6b54256c918a3eada10dfad80a4a1e07c3c4a01b
https://github.com/llvm/llvm-project/commit/6b54256c918a3eada10dfad80a4a1e07c3c4a01b
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/test/CIR/CodeGen/atomic-libcall.c
Log Message:
-----------
[CIR] Implement lowering for lib-call atomic expr (atomic_exchange) (#220405)
Pretty straight forward implementation, but n ecessary for some of our
test suite.
Commit: a2171756dd5d690faf30bafe63810d1dc6cdb342
https://github.com/llvm/llvm-project/commit/a2171756dd5d690faf30bafe63810d1dc6cdb342
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/lib/Driver/ToolChains/OpenBSD.cpp
M clang/test/Driver/openbsd.c
M clang/test/Driver/pic.c
Log Message:
-----------
[Driver][OpenBSD] Use -no-pie instead of -nopie (#220464)
Downstream in OpenBSD there is a patch to add support for -nopie in lld
(which it has used by default since 2018). In this repo lld does not
support `-nopie`, so when building clang and lld, you cannot link an
executable with `clang -fno-pic`. Clang now uses the more widely used
spelling here so that toolchains built from this repo can cross compile
to OpenBSD successfully.
This change is an issue on OpenBSD if users passed a different linker
with `-fuse-ld` / `--ld-path` to `ld.bfd` which is still installed by
default but doesn't support the `-no-pie` spelling with their patches.
Commit: 3e8d5fa7bdb47d1505ad044738c941afc667b7e8
https://github.com/llvm/llvm-project/commit/3e8d5fa7bdb47d1505ad044738c941afc667b7e8
Author: Shilei Tian <i at tianshilei.me>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
A llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-user-sgpr-count.mir
Log Message:
-----------
[AMDGPU] Fix user SGPR accounting when parsing MIR (#220428)
Count privateSegmentSize and LDSKernelId as user SGPRs to preserve the
kernel descriptor count across MIR round trips.
Fixes LCOMPILER-2700.
Commit: 447630bfb9a11fa9d67f3ebf2778faf1e17ab269
https://github.com/llvm/llvm-project/commit/447630bfb9a11fa9d67f3ebf2778faf1e17ab269
Author: Christian Sigg <csigg at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/unittests/BUILD.bazel
Log Message:
-----------
[bazel] Fixes a26d131 (#220484)
This fixes a26d1318959d4d06f0881a8d6041e9fc551cd175 (#214121).
Commit: 648f99d88e52d2a4a59695974946293f3b4b3ecf
https://github.com/llvm/llvm-project/commit/648f99d88e52d2a4a59695974946293f3b4b3ecf
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.h
Log Message:
-----------
[SLP][modularisation][NFC] Move full-vector width helpers to SLPTypeUtils (2/2) (#214673)
Move the following BoUpSLP-independent helpers out of SLPVectorizer.cpp
into SLPVectorizer/SLPTypeUtils.{h,cpp}:
getFullVectorNumberOfElements
getFloorFullVectorNumberOfElements
getMaskedDivRemType
hasFullVectorsOrPowerOf2
They build on the type helpers moved in (1/2). Behavior is unchanged.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
Commit: 67c65ea2e9929ba58a0683deb780c83aeaf0dde0
https://github.com/llvm/llvm-project/commit/67c65ea2e9929ba58a0683deb780c83aeaf0dde0
Author: Christian Sigg <csigg at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Fixes ced97f3 (#220483)
This fixes ced97f3b8e9d1d13098e820b6a2b3fba50d948fd (#220094).
Commit: 1c1dbd0b737eeda9d77db61736a3212a16799e2b
https://github.com/llvm/llvm-project/commit/1c1dbd0b737eeda9d77db61736a3212a16799e2b
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/FoldingSet.h
M llvm/lib/Support/FoldingSet.cpp
Log Message:
-----------
[ADT] Add FoldingSetNodeID-to-FoldingSetNodeIDRef conversion operator (NFC) (#220472)
This patch adds a conversion operator from FoldingSetNodeID to
FoldingSetNodeIDRef.
The new conversion operator allows us to compare any combination of
FoldingSetNodeID and FoldingSetNodeIDRef in the FoldingSetNodeIDRef
domain, eliminating the need to duplicate comparison operators on
FoldingSetNodeID and removing forwarding wrappers in FoldingSet.cpp.
Assisted-by: Antigravity
Commit: e051bb220400d098d42e5692cfdd2d53924f4290
https://github.com/llvm/llvm-project/commit/e051bb220400d098d42e5692cfdd2d53924f4290
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86InstrInfo.cpp
A llvm/test/CodeGen/X86/fold-setallones-512.ll
Log Message:
-----------
[X86] Fix the type used for constant pool when folding AVX512_512_SETALLONES as a load. (#220448)
PR #212950 incorrectly deleted this code and added a fallthrough when
AVX512_512_SET0 was removed from the switch.
Test was written by Claude. We had no coverage of this code previously.
Commit: 4e3b35c02ef3b6f5f37bf5b3033a153167ee7975
https://github.com/llvm/llvm-project/commit/4e3b35c02ef3b6f5f37bf5b3033a153167ee7975
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll
Log Message:
-----------
[RISCV] Add ZVBB RUN lines to vpgather-sdnode.ll and vpscatter-sdnode.ll. NFC (#220400)
This shows that we are able to use vwsll.vi and that the VL optimizer is
able to optimize it.
We've had these RUN lines in our downstream since the early days of VL
optimizer development internally and we'd like to reduce our diff with
upstream.
Commit: 3b2c3b02c0374cba15e30739b71780ad820e6485
https://github.com/llvm/llvm-project/commit/3b2c3b02c0374cba15e30739b71780ad820e6485
Author: Shoreshen <372660931 at qq.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-store.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.store.b128.ll
M llvm/test/CodeGen/AMDGPU/load-saddr-offset-imm.ll
Log Message:
-----------
[AMDGPU] Use first operand of zext to test first bit zero (#217195)
Fix AMDGPU SAddr selection for zero-extended 32-bit offsets on targets
with signed GVS VOffset.
For DAG, function `matchExtFromI32orI32` will return valid value if
address can be `Addr:SGPR` + `Signed Offset:VGPR`, and the function is
as follow:
```c++
static SDValue matchExtFromI32orI32(SDValue Op, bool IsSigned,
const SelectionDAG *DAG) {
if (Op.getValueType() == MVT::i32)
return Op;
if (Op.getOpcode() != (IsSigned ? ISD::SIGN_EXTEND : ISD::ZERO_EXTEND) &&
Op.getOpcode() != ISD::ANY_EXTEND &&
!(DAG->SignBitIsZero(Op) &&
Op.getOpcode() == (IsSigned ? ISD::ZERO_EXTEND : ISD::SIGN_EXTEND)))
return SDValue();
SDValue ExtSrc = Op.getOperand(0);
return (ExtSrc.getValueType() == MVT::i32) ? ExtSrc : SDValue();
}
```
Assuming:
1. Address is formed by addition, denote `Addr = add BASE, OFFSET`
2. Then `OFFSET` = `Op` under `AMDGPUDAGToDAGISel::SelectGlobalSAddr`
calling `matchExtFromI32orI32`
3. `i64 Op = zext i32 Src` which means `i64 OFFSET = zext i32 Src`
4. `Src` some how have the value of `Src = 0x80000000`
5. `IsSigned` is true if we are running under signed offset arch
With above assumption, we have:
1. Fail in `Op.getValueType() == MVT::i32`
2. `Op.getOpcode() != ISD::SIGN_EXTEND`
3. `Op.getOpcode() != ISD::ANY_EXTEND`
4. `Op.getOpcode() == ISD::ZERO_EXTEND` and since `Op` is the result of
zext, the highest bit of `Op` is zero so `DAG->SignBitIsZero(Op)` is
also true
5. `!(DAG->SignBitIsZero(Op) && Op.getOpcode() == ISD::ZERO_EXTEND)` is
false
Thus, it will pass the if check and return valid `SDValue`, which in the
end create instructions such as `(LOAD/STORE_SADDR BASE, (ZEXT Src))`
and `Src = 0x80000000`, which is actually addressing `BASE - 0x80000000`
Co-authored-by: shore <shorshen at amd.com>
Commit: 945e3e825b3ee88a8c1fed0da2dc88d6b2114e37
https://github.com/llvm/llvm-project/commit/945e3e825b3ee88a8c1fed0da2dc88d6b2114e37
Author: Xeonacid <h.dwwwwww at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M offload/CMakeLists.txt
Log Message:
-----------
[Offload] Enable the AMDGPU plugin on Linux riscv64 hosts (#220444)
The AMDGPU plugin is only built on Linux x86_64, ppc64le, and aarch64.
That host-CPU whitelist wraps a plugin that talks to the HSA runtime
through a portable C API; it is not an ISA-specific code generator. The
host plugin already supports riscv64.
Add riscv64 to the AMDGPU whitelist so the plugin can be built on Linux
riscv64 hosts. Leave the CUDA plugin on the existing host list; there is
no CUDA toolchain on riscv64.
Commit: f814a7cc3d549ffe81e87a37d9f7869c67fb653a
https://github.com/llvm/llvm-project/commit/f814a7cc3d549ffe81e87a37d9f7869c67fb653a
Author: woruyu <1214539920 at qq.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/IR/AutoUpgrade.cpp
A llvm/test/Assembler/nvvm-bf16-valid-autoupgrade.ll
A llvm/test/Bitcode/nvvm-bf16-invalid-autoupgrade.ll
Log Message:
-----------
[NVPTX] Restrict NVVM bf16 intrinsic upgrades to integer storage types (#197387)
### Summary
This PR resolves https://github.com/llvm/llvm-project/issues/196793.
### Problem
NVVM bf16 intrinsics used to be represented with integer storage types
before switching to bfloat signatures. AutoUpgrade currently upgrades
any matching NVVM bf16 intrinsic whose return type is not already
bfloat.
That is too broad: invalid declarations such as a half-returning
llvm.nvvm.neg.bf16 are treated as old intrinsics and later crash when
the upgraded bfloat call is RAUW'ed with the original half-typed call.
Only perform this upgrade when the old signature uses integer storage
types with the same primitive bit widths as the new bf16 signature.
Otherwise leave the invalid intrinsic for the verifier to diagnose.
Add coverage for invalid half and mismatched integer signatures.
Commit: 957aee8a62e3b9b06d413322fa8fbbe36a3965e9
https://github.com/llvm/llvm-project/commit/957aee8a62e3b9b06d413322fa8fbbe36a3965e9
Author: Jinjie Huang <huangjinjie at bytedance.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
A llvm/test/tools/llvm-profgen/AArch64/load-segment-64k-align.test
M llvm/tools/llvm-profgen/PerfReader.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.h
Log Message:
-----------
[llvm-profgen] Unify base address derivation to support arbitrary OS page sizes (#217887)
`setPreferredTextSegmentAddresses()` uses a 4 KiB alignment when
calculating text segment offsets. On systems with larger runtime pages
(e.g., 64 KiB on AArch64), the kernel rounds down the mmap file offset
to the page boundary. Consequently, perf may report an executable mmap
starting before the recorded text segment offset. This caused
llvm-profgen to fail with "File offset not found".
This patch simplifies and unifies the logic by deriving the exact base
addresses:
- Static Preferred Base: Derived via `Phdr.p_vaddr - Phdr.p_offset `for
the first executable segment, removing the fragile 4KiB assumption.
- Runtime Base: Derived using `Event.Address - Event.Offset`. Since the
OS dynamically reflects the page-aligned down offset in the perf mmap
event, subtracting it from the aligned virtual address automatically
recovers the absolute true image base.
Commit: 311edeecd260dcd6225a6c5c3e5a7b5cc9587fb3
https://github.com/llvm/llvm-project/commit/311edeecd260dcd6225a6c5c3e5a7b5cc9587fb3
Author: Liao Chunyu <chunyu at iscas.ac.cn>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Preprocessor/riscv-target-features.c
M llvm/docs/RISCVUsage.md
M llvm/docs/ReleaseNotes.md
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVSystemOperands.td
M llvm/test/CodeGen/RISCV/features-info.ll
M llvm/test/MC/RISCV/attribute-arch.s
A llvm/test/MC/RISCV/spmp-csr-names.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV]Support Sspmp, Sspmpen and Smpmpdeleg Extensions (#207696)
https://docs.riscv.org/reference/isa/extensions/sspmp/_attachments/riscv-spmp.pdf
Commit: a7dc3296e484dfd1d3eeb2c218c82838c0db9c3f
https://github.com/llvm/llvm-project/commit/a7dc3296e484dfd1d3eeb2c218c82838c0db9c3f
Author: Vikash Gupta <Vikash.Gupta at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-divrem-insertpt-crash.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/merge-values-s16-true16.ll
Log Message:
-----------
[GlobalISel] Migrate undef-operand combines to MIR patterns (#219449)
Part of the ongoing effort to retire `wip_match_opcode` from the generic
combiner. A whole class of combines only use it to ask "is operand N of
the root undef?", delegating to `matchAnyExplicitUseIsUndef` /
`matchOperandIsUndef`. That predicate is purely structural, so it
belongs in the MIR pattern itself rather than in C++.
It adds four `GICombinePatFrag` classes parameterized by an opcode list
(`unary_undef_frag`, `binop_left_undef_frag`, `binop_right_undef_frag`,
`binop_any_undef_frag`). These become the shared vocabulary for
undef-operand folds and let each rule express only its match shape. All
the undef-to-{zero,-1,undef} / propagate-undef rules and the two
extractelement-of-undef rules are re-expressed on top of them, the
latter collapsing into a single rule.
It also included the fneg/fneg folds for `fmul/fdiv/fmad/fma` which are
partially migrated as MIR-pattern for sub-cases.
Behavioural caveats worth calling out for review:
- Relocating these rules from the opcode-only bucket to the structured
bucket can possibly shifts combine application order on the opcodes but
it won't effect the semantics equivalence on execution level.
Commit: db41750388a51f21e00f8017a6db148f34058109
https://github.com/llvm/llvm-project/commit/db41750388a51f21e00f8017a6db148f34058109
Author: Srinivasa Ravi <srinivasar at nvidia.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsNVPTX.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGBuiltin.h
M clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
M clang/test/CodeGen/builtins-nvptx.c
M llvm/include/llvm/IR/IntrinsicsNVVM.td
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTX.h
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
A llvm/test/CodeGen/NVPTX/convert-fp16-pzo.ll
A llvm/test/CodeGen/NVPTX/convert-fp16-rs-pzo.ll
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
M mlir/test/Target/LLVMIR/nvvm/convert_fp16x2.mlir
Log Message:
-----------
[clang][NVPTX] Add support for pzo in f32 to f16/bf16 conversions (#214667)
Add support for `pzo` variants to existing `f32` to `f16/bf16`
conversion
intrinsics through the use of a default argument (defaulting to
`false`).
Also adds clang builtins for the new variants and support for lowering
clang builtins to intrinsics with default arguments.
Commit: 65e2a60f238e1792487a94232f6dfe2e63c4ea9f
https://github.com/llvm/llvm-project/commit/65e2a60f238e1792487a94232f6dfe2e63c4ea9f
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/IR/IRBuilder.cpp
A llvm/test/CodeGen/AMDGPU/promote-alloca-byte-ptr-cast.ll
M llvm/unittests/IR/IRBuilderTest.cpp
Log Message:
-----------
[IRBuilder] Handle byte types in CreateBitPreservingCastChain (#209557)
`CreateBitPreservingCastChain` only routed conversions through an
`inttoptr`/`ptrtoint` step when the non-pointer side was an integer or
integer vector. Byte and byte-vector types are not integer types, so a
byte/byte-vector to pointer conversion fell through to a plain bitcast,
producing an invalid bitcast between a non-pointer aggregate and a
pointer (e.g. `bitcast <2 x b32> to ptr`). This manifested as a
MachineVerifier "bitcast cannot convert between pointers and other
types" failure once a pass fed byte element types into the cast chain.
This patch treats byte and byte-vector types the same as integers here
so the conversion goes through a pointer-sized integer.
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 810c9cb5112cbc03929f7fbd73e7c6e82cb0a7b3
https://github.com/llvm/llvm-project/commit/810c9cb5112cbc03929f7fbd73e7c6e82cb0a7b3
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/test/unit/bedrock/sps/SimpleRemoteCATest.cpp
Log Message:
-----------
[orc-rt] Fix field initialization order warning in unit test. (#220493)
Commit: df357e7893ca2aa412b40433c48e352b123fba55
https://github.com/llvm/llvm-project/commit/df357e7893ca2aa412b40433c48e352b123fba55
Author: Chris Copeland <chris at chrisnc.net>
Date: 2026-09-01 (Tue, 01 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/Mips/cttz-v.ll
M llvm/test/CodeGen/PowerPC/cttz.ll
M llvm/test/CodeGen/RISCV/ctlz-cttz-ctpop.ll
M llvm/test/CodeGen/RISCV/rv32xtheadbb.ll
M llvm/test/CodeGen/RISCV/rv64xtheadbb.ll
M llvm/test/CodeGen/SPARC/cttz.ll
M llvm/test/CodeGen/SystemZ/scalar-cttz-01.ll
M llvm/test/CodeGen/X86/vector-tzcnt-128.ll
M llvm/test/CodeGen/X86/vector-tzcnt-256.ll
M llvm/test/CodeGen/X86/vector-tzcnt-512.ll
M llvm/test/CodeGen/X86/widen_bitcnt.ll
Log Message:
-----------
[SelectionDAG] Use ctlz(x & -x) ^ 31 for CTTZ_ZERO_POISON when ctpop is not available (#220415)
Update Mips, PowerPC, RISCV, SPARC, SystemZ, and X86 tests to reflect
the more efficient sequence.
Commit: 1d1fe29db747cb51fe74fd034c2786a5c6b05342
https://github.com/llvm/llvm-project/commit/1d1fe29db747cb51fe74fd034c2786a5c6b05342
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpFrame.cpp
Log Message:
-----------
[clang][bytecode][NFC] assert(Func) in InterpFrame ctor (#220284)
`Func` is only null for the bottom frame, which we create using another
constructor.
Commit: cf2b6616398c8e3915b53a4adcea42b987533da9
https://github.com/llvm/llvm-project/commit/cf2b6616398c8e3915b53a4adcea42b987533da9
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/include/orc-rt-c/support/Compiler.h
M orc-rt/include/orc-rt-c/support/Error.h
M orc-rt/include/orc-rt/support/Compiler.h
M orc-rt/lib/bedrock/GDBJITRegistrar.cpp
Log Message:
-----------
[orc-rt] Consolidate symbol export macros (#220495)
Replace the overlapping visibility macros with a single pair, one per
public API surface:
ORC_RT_C_EXPORT (orc-rt-c/support/Compiler.h) - the C API
ORC_RT_EXPORT (orc-rt/support/Compiler.h) - the C++ API
ORC_RT_C_ABI is renamed to ORC_RT_C_EXPORT. ORC_RT_INTERFACE,
ORC_RT_HIDDEN and ORC_RT_IMPORT are removed.
ORC_RT_EXPORT is currently defined as ORC_RT_C_EXPORT so that the
platform logic lives in one place. It becomes separately switchable once
there is an option to hide the C++ API.
No change to generated code: every macro expands to exactly what it did
before. The Windows dllexport/dllimport and static-build cases are left
as a TODO for the commit that adds the shared-library build.
Commit: baaa72f60e597919db2d119379f048ccfaf20530
https://github.com/llvm/llvm-project/commit/baaa72f60e597919db2d119379f048ccfaf20530
Author: ʟᴜɴᴇx <thisissamir04 at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
A llvm/test/Transforms/GlobalOpt/self-referential-global.ll
Log Message:
-----------
[GlobalOpt] Fix crash on self-referential global (#219777)
Fix crash in `GlobalOpt` when a global references itself (void *g = &g).
Collect users into a vector to avoid iterator invalidation.
Fixes: #219629
Commit: fdd899123f7b5f9e30cd270f93966448b31b3b47
https://github.com/llvm/llvm-project/commit/fdd899123f7b5f9e30cd270f93966448b31b3b47
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/Frame.h
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/State.cpp
M clang/lib/AST/ByteCode/State.h
Log Message:
-----------
[clang][bytecode] Clean up includes around Frame/State (#220278)
Commit: dcf6f15b3de26f96216a2666460069d7e7253cbc
https://github.com/llvm/llvm-project/commit/dcf6f15b3de26f96216a2666460069d7e7253cbc
Author: Akun <cubehan3 at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp
M mlir/test/Transforms/test-legalize-type-conversion.mlir
M mlir/test/lib/Dialect/Test/TestPatterns.cpp
Log Message:
-----------
[mlir][SCF] Handle dropped operands in structural type conversion (#220473)
SCF structural type conversion assumes that `scf.for` bounds and
`scf.if` conditions are converted to exactly one value. A 1:N conversion
can drop or split these operands, causing `getSingleElement` to trigger
an assertion.
Reject conversions with non-single-valued bounds or conditions and add
regression coverage.
Fixes: https://github.com/llvm/llvm-project/issues/220459
Commit: 058c7282003a68d6e2cb3bd923e7510c9433393a
https://github.com/llvm/llvm-project/commit/058c7282003a68d6e2cb3bd923e7510c9433393a
Author: Aditya Sinha <155882262+AdityaSinha149 at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/lib/Sema/SemaCUDA.cpp
A clang/test/SemaHIP/hip-incremental-toplevel-launch.hip
Log Message:
-----------
[clang][Sema] Allow null caller for HIP kernel launch in incremental mode (#218659)
This PR allows a HIP kernel to be launched without a caller in
incremental mode. This is necessary because in incremental
mode(clang-repl), there isn't a `main` or any function that calls the
kernel.
Also adds a Sema test that compiles a top-level HIP kernel launch in
incremental device mode and verifies it is accepted.
Assisted by Claude Opus 4.8
Commit: 2495d8203735ecd669dcdb8b87d23b3bc07b68cd
https://github.com/llvm/llvm-project/commit/2495d8203735ecd669dcdb8b87d23b3bc07b68cd
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/include/orc-rt-c/support/Compiler.h
M orc-rt/include/orc-rt-internal/support/sys/CacheControl.h
M orc-rt/include/orc-rt/support/Compiler.h
M orc-rt/include/orc-rt/support/bit.h
Log Message:
-----------
[orc-rt] Add ORC_RT_HAS_BUILTIN, stop defining __has_builtin (#220503)
orc-rt/support/Compiler.h supplied a fallback definition of
__has_builtin for compilers that lack it. __has_builtin is a reserved
identifier, and defining one from a public header can collide with the
compiler's own definition or with another library the client includes.
Replace it with ORC_RT_HAS_BUILTIN(X) in orc-rt-c/support/Compiler.h,
which wraps __has_builtin where it exists and expands to 0 otherwise,
and convert the five uses.
Commit: 7c3201e25430758209063a052f59eeaffb8bf385
https://github.com/llvm/llvm-project/commit/7c3201e25430758209063a052f59eeaffb8bf385
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BundleVec.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
[SandboxVec][NFC] Hoist getInsertPointAfterInstrs into VecUtils (#215863)
Move BottomUpVec.cpp's file-local getInsertPointAfterInstrs() into
VecUtils. NFC.
Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
Commit: 19559bd8629792081d0b70a8db23fc44c22614d5
https://github.com/llvm/llvm-project/commit/19559bd8629792081d0b70a8db23fc44c22614d5
Author: Danial Klimkin <dklimkin at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/platforms.bzl
Log Message:
-----------
[Bazel] Add missing includes for riscv64 (#219483)
Commit: f343a7676ef11c6b87c9e8a6a5d16510aa20c39b
https://github.com/llvm/llvm-project/commit/f343a7676ef11c6b87c9e8a6a5d16510aa20c39b
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/IPO/MergeFunctions.cpp
M llvm/lib/Transforms/Utils/FunctionComparator.cpp
A llvm/test/Transforms/MergeFunc/flags.ll
Log Message:
-----------
[MergeFunctions] Intersect poison-generating flags (#220015)
Instead of comparing the flags in FunctionComparator, intersect them in
MergeFunctions. This both a) fixes miscompiles where we failed to check
the poison flags for GEP and FMF and b) allows more function merging, in
cases where the functions only differ in flags.
This can be extended to combine instruction-level metadata as well in
the future.
Fixes https://github.com/llvm/llvm-project/issues/219664.
Commit: 8efad88ca8cb5d8f27ba683492cd6d2cf2754e4e
https://github.com/llvm/llvm-project/commit/8efad88ca8cb5d8f27ba683492cd6d2cf2754e4e
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/include/clang/Basic/AArch64CodeGenUtils.h
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
Log Message:
-----------
[clang][CIR][AArch64] Add lowering for SISD variants of rounding intrinsics (#219241)
This PR adds lowering for the remaining SISD "Vector saturating rounding
shift right and narrow " intrinsic:
* https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#vector-saturating-rounding-shift-right-and-narrow
The following builtins are added:
* __builtin_neon_vqrshrns_n_s32:
* __builtin_neon_vqrshrns_n_u32:
* __builtin_neon_vqrshrnh_n_s16:
* __builtin_neon_vqrshrnh_n_u16:
* __builtin_neon_vqrshruns_n_s32:
* __builtin_neon_vqrshrunh_n_s16:
The corresponding tests are moved from:
* clang/test/CodeGen/AArch64/
to:
* clang/test/CodeGen/AArch64/neon/
The lowering follows the existing implementation in
CodeGen/TargetBuiltins/ARM.cpp.
Commit: 9c79a777dfc1fbd3276e5d69da13b85fb4b1ac79
https://github.com/llvm/llvm-project/commit/9c79a777dfc1fbd3276e5d69da13b85fb4b1ac79
Author: renndong <liumingliang.dev at bytedance.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/vabd.ll
Log Message:
-----------
[RISCV] Fix result type checks in the VWABDA DAG combine (#220497)
Fix the result element type check in `performVWABDACombine`. The result
of the widening add operation has already been widened, so the expected
element types are `i16` and `i32`, rather than `i8` and `i16`. The
previous check prevented the i16-i32 form from being combined.
Commit: 3cf119a13bdecc4b275def822701329e20138397
https://github.com/llvm/llvm-project/commit/3cf119a13bdecc4b275def822701329e20138397
Author: Sp0tless <msp0tless at outlook.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.h
M llvm/unittests/ExecutionEngine/Orc/SPSProxySpecTest.cpp
Log Message:
-----------
[ORC] Register SPS run-as function wrappers with SelfEPC (#220224)
#213265 replaced the direct `ExecutorProcessControl::runAsVoidFunction`
and `runAsIntFunction` calls in `COFFPlatform` and
`COFFVCRuntimeSupport` with SPS call proxies. The target-process
bootstrap registers the corresponding executor-side wrappers for
`SimpleRemoteEPC`, but SelfEPC does not register them. In-process
clients using these paths therefore fail to resolve:
```text
orc_rt_ci_sps_call_int32_void
orc_rt_ci_sps_call_int32_int32
```
This patch factors registration of the two existing run-as function
wrappers out of the complete target-process bootstrap set and adds that
narrow set to SelfEPC.
SelfEPC already provides in-process memory access directly, so it does
not use the complete bootstrap set, which would also register
unnecessary SPS memory access symbols. `SimpleRemoteEPC` continues to
call the complete `addTo` helper, so its bootstrap contents are
unchanged.
The SPS run-as operations remain experimental. This patch does not add
or stabilize them; it supplies the wrappers required by their existing
in-tree COFF users. Although the failure was exposed through an
in-process COFFPlatform configuration, the missing SelfEPC bootstrap
contract is not Windows-specific.
Testing: Added a unit test that resolves and invokes both proxies
through the SelfEPC bootstrap JITDylib; the ORC unit suite passes.
Assisted-by: OpenAI Codex
Commit: 1f4fbe85b6b4362a3cab20b694789494137effef
https://github.com/llvm/llvm-project/commit/1f4fbe85b6b4362a3cab20b694789494137effef
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoZvzip.td
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
M llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp
M llvm/test/CodeGen/RISCV/rvv/vl-opt-op-info.mir
M llvm/test/CodeGen/RISCV/rvv/vmerge-peephole.mir
M llvm/test/CodeGen/RISCV/rvv/vpaire.ll
Log Message:
-----------
[RISCV] Teach the VL Optimizer about Zvzip instructions (#214405)
Set ElementsDependOn = EltDepsNone on the five Zvzip instructions
(VZIP_VV, VUNZIPE_V, VUNZIPO_V, VPAIRE_VV, VPAIRO_VV) so the pass no
longer conservatively treats their result elements as depending on VL
and Mask (beyond masking of inactive lanes).
Wire the opcodes into the VL Optimizer's operand model:
- getOperandLog2EEW: all five instructions return MILog2SEW (source
and destination EEW both equal SEW).
- getOperandInfo: for VZIP_VV, widen the destination and passthru
EMUL by 2x since it interleaves two LMUL inputs into one 2xLMUL
result. For VUNZIPE_V / VUNZIPO_V, widen the EMUL of the vs2
source operand by 2x instead, as the split consumes a 2xLMUL
vector and produces an LMUL even/odd half. VPAIRE_VV / VPAIRO_VV
leave EMUL unchanged on every operand.
Assisted-by: TRAE CLI (Seed-2.1-Turbo)
Commit: 2e5620eb73e088bdfd8dd6bef2610a4dcb8c4541
https://github.com/llvm/llvm-project/commit/2e5620eb73e088bdfd8dd6bef2610a4dcb8c4541
Author: Simonas Kazlauskas <git at kazlauskas.me>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
A llvm/test/CodeGen/SystemZ/soft-float-05.ll
Log Message:
-----------
[SelectionDAG] powi and ldexp libcalls deal with signed int arguments (#213673)
While investigating a sign extension problem on an off-tree target that
needs extension of 32-bit integer argument to 64-bit register when
passed as an argument, I found that `__powisf2` was being passed
zero-extended despite the argument being a signed `int`. I narrowed this
down to the fact that `shouldSignExtendTypeInLibCall` was being passed
`false` for `IsSigned` for the `int` argument in these libcalls.
Other libcalls (not an exhaustive review) such as the `XINT_TO_FP`
family do set the `IsSigned` value here.
I utilized the s390x target to write a test for this.
Commit: 2f2aa940de68abcdfe4959ddd3b9a0741a7c2a16
https://github.com/llvm/llvm-project/commit/2f2aa940de68abcdfe4959ddd3b9a0741a7c2a16
Author: David Mentler <mentlerd at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/include/lldb/Symbol/SymbolFile.h
M lldb/include/lldb/Symbol/SymbolFileOnDemand.h
M lldb/include/lldb/Symbol/Variable.h
M lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.h
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
M lldb/source/Symbol/Variable.cpp
A lldb/test/API/lang/cpp/dynamic-value-complex-typename/Makefile
A lldb/test/API/lang/cpp/dynamic-value-complex-typename/TestDynamicValueComplexTypename.py
A lldb/test/API/lang/cpp/dynamic-value-complex-typename/main.cpp
A lldb/test/API/lang/cpp/dynamic-value-virtual-inheritance/Makefile
A lldb/test/API/lang/cpp/dynamic-value-virtual-inheritance/TestDynamicValueVirtualInheritance.py
A lldb/test/API/lang/cpp/dynamic-value-virtual-inheritance/main.cpp
Log Message:
-----------
[lldb] Fallback to `__clang_vtable` for robust dynamic type resolution (#210584)
`ItaniumABIRuntime::GetTypeInfo(...)`'s type resolution relies on the
demangler to locate the type corresponding to a vtable address. As
reported in #182762 this can break when the demangler and debug info
don't agree on the spelling of the type's name.
This PR implements an lookup based on a support member emitted by clang
added in #130255 as `_vtable$`, later renamed to `__clang_vtable` in
#183617. If the demangling based approach fails we fall back to the new
route.
The initial implementation aims to only support the modern spelling with
DWARF.
Commit: 5312769f6de6446059d9f49d35eee96bc7f1ba60
https://github.com/llvm/llvm-project/commit/5312769f6de6446059d9f49d35eee96bc7f1ba60
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/test/MC/AMDGPU/gfx12_err.s
Log Message:
-----------
[AMDGPU] Regenerate gfx12_err.s. NFC (#220437)
Wrong tool was recorded in the test header.
Commit: e4e18dba3d77f4a3eea58bcc9ccae5a5498ede7c
https://github.com/llvm/llvm-project/commit/e4e18dba3d77f4a3eea58bcc9ccae5a5498ede7c
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
A llvm/test/Transforms/ConstraintElimination/induction-relational-predicate-latch.ll
Log Message:
-----------
[ConstraintElim] Derive IV bound from an relation predicate in latch. (#220107)
A loop whose latch has a relational predicate of the IV post-increment
as exit condition steps *past* the bound rather than landing on it, so
the
existing EQ/NE step reasoning does not apply.
But the condition (IV+Step Pred N) holds for the induction phi each
iteration after the first (when the header is entered via the guarded
latch).
In the first iteration, the induction phi's value is its start value.
Together with a precondition (Start Pred N), (IV Pred N) hold in each
iteration.
Add this as fact enables removing a few redundant conditions in
practice:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1148.
Compile-time impact is in the noise:
https://llvm-compile-time-tracker.com/compare.php?from=955f2beedea61b1a5494d0b0df684f0efde12bbe&to=b5eb118e0426552dfddf1fa65e002842326b0a8a&stat=instructions:u
Alive2 Proofs for ULT/SLT: https://alive2.llvm.org/ce/z/AwHN2F
Commit: 2c2cffa015e9549aafba9e514384b08204c7cc4b
https://github.com/llvm/llvm-project/commit/2c2cffa015e9549aafba9e514384b08204c7cc4b
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
A llvm/test/Transforms/LoopInterchange/reduction-minmax-multi-use.ll
Log Message:
-----------
[LoopInterchange] Bail out on reductions with uses outside their chain. (#220263)
getMinMaxRecurrence() can return a descriptor for a min/max phi that has
users outside of the reduction chain, e.g. the comparison of an
argmin/argmax idiom. Such descriptors have no loop exit instruction, and
the extra uses make the order in which the elements are visited
observable.
Bail out for such reductions, matching what
canParallelizeReductionWhenUnrolling() already does.
This fixes a crash on the added test cases.
PR: https://github.com/llvm/llvm-project/pull/220263
Commit: 6b81601a16493ee05b8c36c26bb110d29a60d0ae
https://github.com/llvm/llvm-project/commit/6b81601a16493ee05b8c36c26bb110d29a60d0ae
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/intrinsic-vector-match-sve2.ll
Log Message:
-----------
[AArch64] Widen v3i8/v4i8 VECTOR_MATCH needles (#218972)
The default legalization behaviour for v3i8 and v4i8 types is to promote
them to v4i16. This currently results in VECTOR_MATCH operations with
needles of v3i8/v4i8 needles being expanded for AArch64.
It's generally preferable to widen the needle instead (especially if the
needle is a constant vector, which becomes an immediate splat). For SVE,
this can fold multiple vector compares into a dup + match.
Commit: ca70db3c250f25f9286ff1aeb9164d4b93a5fdc6
https://github.com/llvm/llvm-project/commit/ca70db3c250f25f9286ff1aeb9164d4b93a5fdc6
Author: Amit Tiwari <Amit.Tiwari at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/docs/OpenMPSupport.md
M clang/docs/ReleaseNotes.md
M clang/include/clang/AST/StmtOpenMP.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/test/OpenMP/interchange_codegen.cpp
M clang/test/OpenMP/tile_codegen.cpp
A clang/test/OpenMP/tile_collapse_messages.cpp
A clang/test/OpenMP/tile_collapse_reinterpret_codegen.cpp
M clang/test/OpenMP/tile_messages.cpp
A clang/test/OpenMP/tile_rect_codegen_ir.cpp
A clang/test/OpenMP/tile_vectorize_codegen.cpp
M clang/unittests/AST/AttrTest.cpp
A openmp/runtime/test/transform/tile/parallel-wsloop-collapse-stacked-tile.cpp
A openmp/runtime/test/transform/tile/parallel-wsloop-collapse-through-tile-2d.cpp
A openmp/runtime/test/transform/tile/parallel-wsloop-collapse-through-tile-compose.cpp
A openmp/runtime/test/transform/tile/parallel-wsloop-collapse-through-tile-iterator.cpp
A openmp/runtime/test/transform/tile/parallel-wsloop-collapse-through-tile.cpp
Log Message:
-----------
[Clang][OpenMP] Canonicalize Intra-tiles in Loop Tiling (#191114)
This PR canonicalizes the intra-tile loop in OpenMP loop tiling.
Take a simple example:
```cpp
#pragma omp tile sizes(4)
for (int i = 0; i < 6; ++i)
body(i);
```
`clang` turns the above into **2 nested loops**:
- Outer (aka *floor*) loop iterating in steps of 4.
- Inner (aka *intra-tile*) loop iterating over the tiles — `(0, 1, 2,
3)` and `(4, 5)` — since 6 is not a multiple of 4, this results in the
last **partial tile**.
So, to make sure the partial/remainder tile doesn't overshoot, we may
enforce two kinds of intra-tile shapes, where both shapes produce the
same visible result:
**Shape 1** (*vectorized form*; default):
```cpp
for (i = floor; i < min(floor + 4, 6); ++i)
body(i);
```
**Shape 2** (*canonicalized form*):
```cpp
for (i = floor; i < floor + 4; ++i)
if (i < 6) // guard: skip the overshoot
body(i);
```
A subtle point: Shape 2 should be kept **only when the intra-tile is
consumed by a parent directive** (e.g. `collapse`). This further
promotes no disruption in the generic C/C++ for-loop codegen pipeline
and also preserves the vectorized form (saving iterations), unless
otherwise.
## Solution
Always preserve **Shape 1** wrapped in a new internal droppable
attribute `OMPInvariantPredicateBoundAttr` carrying three expressions:
- **`RectCond`** — a rectangular bound (`.tile.iv < .floor.iv +
tilesize`)
- **`Predicate`** — a body guard for the remainder tile (`.tile.iv < N`)
- **`TileSize`** — the floor-independent, loop-nest invariant per-tile
trip count
If nothing ever reads the note, it's completely invisible — the loop
just runs in its natural shape, exactly like plain `clang`. That's why
it's *droppable*.
Only when `collapse` (or a similar directive) actually consumes this
loop does Clang (`checkOpenMPIterationSpace` / `checkOpenMPLoop`) read
the hint and reinterpret the loop as rectangular.
Commit: 44629e6480881d1556255551addeb79d1c182550
https://github.com/llvm/llvm-project/commit/44629e6480881d1556255551addeb79d1c182550
Author: Joyee Cheung <joyeec9h3 at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/test/AST/ByteCode/enums.cpp
M clang/test/CXX/drs/cwg10xx.cpp
M clang/test/CXX/drs/cwg17xx.cpp
M clang/test/CodeGen/enum-bool.cpp
M clang/www/cxx_dr_status.html
Log Message:
-----------
[Clang] Fix conversion from floats to bool-backed enums per CWG1094 (#211172)
After CWG 1094, `[expr.static.cast]p8` has been updated to include:
> A value of floating-point type can also be explicitly converted to an
> enumeration type. The resulting value is the same as converting the
> original value to the underlying type of the enumeration
> ([conv.fpint]), and subsequently to the enumeration type.
`[conv.fpint]p1` states:
> If the destination type is bool, see [conv.bool].
`[conv.bool]` states:
> A zero value, null pointer value, or null member pointer value is
> converted to false; any other value is converted to true.
Previously `TryStaticCast` always used integral conversion for
floating-point operands, even if the destination enum type is backed by
a bool, so e.g. 0.5 would be incorrectly truncated and then converted to
the enum value corresponding to false.
This patch fixes it by using `CK_FloatingToBoolean` to handle
bool-backed enums and updates the bytecode compiler accordingly. Also
update the spec reference as the relevant paragraph has been moved to
p8.
---
Discovered this bug in Clang when I was [fixing `[expr.static.cast]/8`
handling in
GCC](https://gcc.gnu.org/cgit/gcc/commit/?id=ca3810f001338bb4d15da43160e017d453f234e8),
which handled floating points correctly but not integers, and Clang was
the other way around.
I wrote the patch myself by following https://reviews.llvm.org/D85612,
then paired with 5 AI models for preliminary reviews. 4/5 of them
pointed out that the patch should support
`-fexperimental-new-constant-interpreter`, which I then implemented and
verified manually.
Commit: d1a9d89827aaf5badac754cdae6ac9d47b9c306f
https://github.com/llvm/llvm-project/commit/d1a9d89827aaf5badac754cdae6ac9d47b9c306f
Author: ziereis <44057120+ziereis at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
M mlir/test/Dialect/Linalg/vectorization/convolution-with-patterns.mlir
Log Message:
-----------
[mlir][linalg] Preserve operand casts when vectorizing 1-D convolutions (#217351)
The 1-D convolution vectorizer previously inferred operand promotions
from their source and accumulator types. This caused unsigned extensions
in `linalg.generic` payloads to be emitted as signed extensions in the
vectorized operation.
Record the casts applied to the input and filter operands and replay
them when promoting their vector values. This preserves the cast
operation instead of inferring the conversion.
Assisted by: Claude
Commit: 77d6009fc9e0b978e1866101d7be7bbd3650c03a
https://github.com/llvm/llvm-project/commit/77d6009fc9e0b978e1866101d7be7bbd3650c03a
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 3cf119a (#220515)
This is a temporary workaround for 3cf119a13bdecc4b275def822701329e20138397 (#220224) until the layering violation is cleaned up.
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=3cf119a13bdecc4b275def822701329e20138397
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: c2705cdda1263926bc642f9abe3a3cb8b83071da
https://github.com/llvm/llvm-project/commit/c2705cdda1263926bc642f9abe3a3cb8b83071da
Author: Ville-Markus Yli-Suutala <ville-markus.yli-suutala at helsinki.fi>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/include/flang/Lower/OpenMP.h
M flang/include/flang/Semantics/semantics.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
A flang/test/Lower/OpenMP/declare_target_module.f90
M flang/test/Semantics/OpenMP/declare-target-modfile.f90
Log Message:
-----------
[flang][openmp] Support importing module declare target globals (#213930)
Attach declare target attributes to declare target functions and
globals that have been imported from a module file.
Fixes https://github.com/llvm/llvm-project/issues/212333
Commit: 0f50e2015fc8b260d876fba1f7649e97d14ab8bd
https://github.com/llvm/llvm-project/commit/0f50e2015fc8b260d876fba1f7649e97d14ab8bd
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/Transforms/Utils/LoopVersioning.h
M llvm/lib/Transforms/Scalar/LoopFlatten.cpp
M llvm/lib/Transforms/Utils/LoopVersioning.cpp
A llvm/test/Transforms/LoopVersioning/preserve-memoryssa.ll
Log Message:
-----------
[LoopVersioning] Preserve MemorySSA if requested. (#220290)
Update LoopVersioning to take an option MemorySSAUpdater. If provided,
update MemorySSA in the cloned loop, as well as for the new edges
connecting the new loop.
This fixes a MemorySSA verification failure with expensive checks in the
LoopFlatten pass which marks MemorySSA as preserved and is using
LoopVersioning.
Exposed by https://github.com/llvm/llvm-project/pull/219663.
PR: https://github.com/llvm/llvm-project/pull/220290
Commit: 813bdb184af716091bb927070063a3e065124d33
https://github.com/llvm/llvm-project/commit/813bdb184af716091bb927070063a3e065124d33
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/include/flang/Frontend/CompilerInstance.h
M flang/lib/Frontend/CompilerInstance.cpp
M flang/unittests/Frontend/CodeGenActionTest.cpp
M flang/unittests/Frontend/CompilerInstanceTest.cpp
M flang/unittests/Frontend/FrontendActionTest.cpp
M flang/unittests/Semantics/OpenMPUtils.cpp
Log Message:
-----------
[flang][test] Fix ASAN error in unit tests (#218917)
When flang is built with ASAN, one of the unit tests fails:
```
[ RUN ] FrontendActionTest.ParseSyntaxOnly
=================================================================
==94036==ERROR: AddressSanitizer: heap-use-after-free on address 0xef60299e1268 at pc 0xbf00842915d0 bp 0xffffcc819e50 sp 0xffffcc819e48
READ of size 2 at 0xef60299e1268 thread T0
#0 0xbf00842915cc in getShowColors /home/davspi01/llvm-project/llvm/../clang/include/clang/Basic/DiagnosticOptions.def:68:14
#1 0xbf00842915cc in showColors /home/davspi01/llvm-project/llvm/../clang/include/clang/Basic/DiagnosticOptions.h:159:13
#2 0xbf00842915cc in Fortran::frontend::TextDiagnosticPrinter::HandleDiagnostic(clang::DiagnosticsEngine::Level, clang::Diagnostic const&) /home/davspi01/llvm-project/flang/lib/Frontend/TextDiagnosticPrinter.cpp:116:27
#3 0xbf0088f08ef0 in clang::DiagnosticsEngine::Report(clang::DiagnosticsEngine::Level, clang::Diagnostic const&) /home/davspi01/llvm-project/clang/lib/Basic/Diagnostic.cpp:625:11
#4 0xbf0088f09584 in clang::DiagnosticsEngine::ProcessDiag(clang::DiagnosticBuilder const&) /home/davspi01/llvm-project/clang/lib/Basic/Diagnostic.cpp:705:3
#5 0xbf0088f099ac in clang::DiagnosticsEngine::EmitDiagnostic(clang::DiagnosticBuilder const&, bool) /home/davspi01/llvm-project/clang/lib/Basic/Diagnostic.cpp:727:15
#6 0xbf0082d78778 in Emit /home/davspi01/llvm-project/llvm/../clang/include/clang/Basic/Diagnostic.h:1332:28
#7 0xbf0082d78778 in clang::DiagnosticBuilder::~DiagnosticBuilder() /home/davspi01/llvm-project/llvm/../clang/include/clang/Basic/Diagnostic.h:1367:26
#8 0xbf0083dacd7c in Fortran::frontend::FrontendAction::reportFatalSemanticErrors() /home/davspi01/llvm-project/flang/lib/Frontend/FrontendAction.cpp:310:5
<...>
```
* CompilerInstance is defaut constructed, which means it has a default
constructed CompilerInvocation.
* CompilerInstance::createDiagnostics is called.
* It makes a clang::DiagnosticsEngine and gives it a reference to
whatever getDiagnosticOpts() returns.
* That returns invocation->getDiagnosticOpts().
* CompilerInstance::setInvocation is called with a new invocation,
replacing the original invocation.
* The clang::DiagnosticsEngine now has a dangling reference to the
options in the original invocation.
To fix this, I have implemented the same thing that
b69dcb873476cd8e7d3f6f9ffd5b6d0bbe1a3a17 did for Clang.
Pass the invocation to the CompilerInstance constructor, and remove the
setInvocation method. So that you cannot mix up the order.
Commit: 85b694bafe39fb68bab494835d227eaf1a98df09
https://github.com/llvm/llvm-project/commit/85b694bafe39fb68bab494835d227eaf1a98df09
Author: Nashe Mncube <nashe.mncube at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SchedC1Premium.td
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Nano-streaming-cme-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Nano-streaming-sme-only-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Nano-sve-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-bf16-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-complxnum-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-flag-manipulation-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-fp16fml-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-fptoint-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-i8mm-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-mte-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-neon-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-rcpc-immo-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-sme-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-streaming-cme-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-streaming-sme-only-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-sve-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-sve2p1-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Ultra-streaming-cme-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Ultra-streaming-sme-only-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Ultra-sve-instructions.s
M llvm/test/tools/llvm-mca/AArch64/HiSilicon/hip12-sve-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Inputs/streaming-cme-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Inputs/streaming-sme-only-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Inputs/sve-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-sve-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-sve-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-sve-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-sve-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-sve-instructions.s
Log Message:
-----------
[AArch64] C1-Premium SME definitions (#212482)
This patch adds SME instruction definitions to the C1-Premium scheduling
model.
C1-Premium SWOG: https://developer.arm.com/documentation/111080/3-0/
SME SWOG: https://developer.arm.com/documentation/111048/0103
Assisted by: Codex
Commit: fb193562a41ad045a8a2889f671f43cd4137c575
https://github.com/llvm/llvm-project/commit/fb193562a41ad045a8a2889f671f43cd4137c575
Author: Deepak Shirke <deepakshirke509 at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/knownbits-buildvector.mir
M llvm/test/CodeGen/AArch64/GlobalISel/knownbits-extract-vector.mir
M llvm/test/CodeGen/AArch64/neon-extadd-extract.ll
Log Message:
-----------
[GlobalISel] Add G_EXTRACT_VECTOR_ELT to computeNumSignBits (#218283)
Port the SDAG EXTRACT_VECTOR_ELT computeNumSignBits handling to
GlobalISel. If the element index is known, demand only that element from
the source vector. If unknown, conservatively demand all elements.
Part of #150515.
Commit: 581d540212ea0f19ea58f01fc77ae0cc1e4cca3f
https://github.com/llvm/llvm-project/commit/581d540212ea0f19ea58f01fc77ae0cc1e4cca3f
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/test/Bindings/llvm-c/echo.ll
M llvm/test/Verifier/operand-bundles.ll
Log Message:
-----------
[Verifier] Forbid operand bundles with label operands (#220529)
These should obviously not be allowed, and break the invariant that
labels can only occur (as Uses) inside terminators, which the
predecessor iterator relies on.
Commit: 987b5209ab3ba3d0109f3a53f1f68b3f4c4c668b
https://github.com/llvm/llvm-project/commit/987b5209ab3ba3d0109f3a53f1f68b3f4c4c668b
Author: Akun <cubehan3 at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/lib/Dialect/Bufferization/Transforms/BufferResultsToOutParams.cpp
M mlir/test/Transforms/buffer-results-to-out-params-hosit-dynamic-allocs.mlir
M mlir/test/Transforms/buffer-results-to-out-params-hosit-static-allocs.mlir
Log Message:
-----------
[mlir][bufferization] Fix crash when returning an allocation twice (#220232)
`buffer-results-to-out-params` crashes when a function returns the same
allocation twice, e.g. `return %a, %a`:
```mlir
func.func @main() -> (memref<4xf32>, memref<4xf32>) {
%a = memref.alloc() : memref<4xf32>
return %a, %a : memref<4xf32>, memref<4xf32>
}
```
In `updateReturnOps` the hoisted alloc is erased inside the loop, so the
second occurrence dereferences a dangling `OpResult`. This defers
erasure to after the loop, hoists the allocation only once, and emits a
`memref.copy` from the primary out-param into the duplicate's out-param.
Dynamic sizes are cached so the caller allocates one buffer per
occurrence.
Tests cover the static and dynamic hoisting cases.
Fixes #219492.
Commit: 2a25742e140f8c5bb1af46555b4b39129eec1c0d
https://github.com/llvm/llvm-project/commit/2a25742e140f8c5bb1af46555b4b39129eec1c0d
Author: woruyu <1214539920 at qq.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/MachineVerifier/AMDGPU/test_g_intrinsic.mir
Log Message:
-----------
[AMDGPU] Avoid crash on missing operands in wave32 MIR (#211739)
This pr fixes https://github.com/llvm/llvm-project/issues/211581, the
original codes call getNumExplicitOperands to check the minimum operand
count, which assumes that the instruction's fixed operands are present.
It will crash in `operands_impl().drop_front(NumOperands)`, so modify to
use `getNumOperands()`.
Assisted-by: OpenAI Codex
Commit: abd9c24981010b0ef11085f6b3628834bd4dd061
https://github.com/llvm/llvm-project/commit/abd9c24981010b0ef11085f6b3628834bd4dd061
Author: riccardo-zanetti-arm <146848030+riccardo-zanetti-arm at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/regcoalesce-preserve-valid-lanes-implicit-def.mir
Log Message:
-----------
[CodeGen][RegCoalescer] Regenerate implicit-def test checks (#220522)
Follow-up to a46377b17b85. Use update_mir_test_checks.py and drop the
redundant -verify-machineinstrs option.
Commit: 960b290d266799442078b9f3f23276ab20d94d80
https://github.com/llvm/llvm-project/commit/960b290d266799442078b9f3f23276ab20d94d80
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M orc-rt/CMakeLists.txt
M orc-rt/test/unit/CMakeLists.txt
A orc-rt/test/unit/support/CAPICompileTest.c
M orc-rt/test/unit/support/CompilerTest.cpp
Log Message:
-----------
[orc-rt] Compile C API headers as C in the unit tests (#220510)
Ensures that the C API headers in orc-rt-c compile as C.
Add CAPICompileTest.c, which includes every public C header and
exercises ORC_RT_HAS_BUILTIN from C, plus a CompilerTest case checking
that C and C++ agree on the result. Later commits should extend this
file as more macros move into orc-rt-c/support/Compiler.h.
Set CMAKE_C_STANDARD alongside the existing CMAKE_CXX_STANDARD in the
root CMakeLists.txt. CMAKE_C_EXTENSIONS is off so C sources build as
-std=c11 rather than -std=gnu11, keeping GNU extensions out of the
public headers.
Commit: a1cf9756a9eea33db971a637fec51ace309eada2
https://github.com/llvm/llvm-project/commit/a1cf9756a9eea33db971a637fec51ace309eada2
Author: Sp0tless <msp0tless at outlook.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M compiler-rt/lib/orc/coff_platform.cpp
A compiler-rt/test/orc/TestCases/Windows/x86-64/atexit-order.c
Log Message:
-----------
[compiler-rt][ORC][COFF] Run atexit callbacks in LIFO order (#214053)
The COFF runtime stores atexit callbacks in registration order, but
executes them in the same order during JITDylib deinitialization.
Run callbacks from the back of the vector so that they execute in
reverse registration order, and add a regression test.
This was found while investigating #213568.
Assisted-by: OpenAI Codex
Commit: d0eb0f3056e79bb39559948daaaef754fdb66dcb
https://github.com/llvm/llvm-project/commit/d0eb0f3056e79bb39559948daaaef754fdb66dcb
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/IR/Instruction.cpp
M llvm/test/Transforms/FunctionAttrs/atomic.ll
Log Message:
-----------
[IR] Use merged cmpxchg ordering in getMemoryEffects() (#220516)
cmpxchg can have a stronger failure than success ordering, so we should
use getMergedOrdering() when computing the memory effects.
I double checked that we intentionally allow failure to be stronger than
success since 431e3138a1f3fd2bb7b25e1f4766d935058136f8.
Disclaimer: Issue was identified by AI, and the patch was also generated
by it.
Commit: f58629b6e30c13d62d9cd7beb19bfbaced6460fb
https://github.com/llvm/llvm-project/commit/f58629b6e30c13d62d9cd7beb19bfbaced6460fb
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/SmallVector.h
M llvm/unittests/ADT/SmallVectorTest.cpp
Log Message:
-----------
Revert "[ADT] Allow SmallVector move construction without move assignment" (#220533)
Reverts llvm/llvm-project#219934
Some regressions where reported in clang performance by LNT.
Reverting temporarily to restore LNT before re-landing with an improved
version.
Commit: ec8a1d54396e48b37dbce0a948b840cf3414ad2f
https://github.com/llvm/llvm-project/commit/ec8a1d54396e48b37dbce0a948b840cf3414ad2f
Author: Kseniya Tikhomirova <kseniya.tikhomirova at intel.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
A libsycl/include/sycl/__impl/detail/kernel_submission.hpp
M libsycl/include/sycl/__impl/detail/unified_range_view.hpp
A libsycl/include/sycl/__impl/handler.hpp
M libsycl/include/sycl/__impl/info/desc_base.hpp
M libsycl/include/sycl/__impl/property_list.hpp
M libsycl/include/sycl/__impl/queue.hpp
M libsycl/src/CMakeLists.txt
A libsycl/src/detail/handler_impl.hpp
M libsycl/src/detail/offload/offload_utils.cpp
M libsycl/src/detail/offload/offload_utils.hpp
M libsycl/src/detail/queue_impl.cpp
M libsycl/src/detail/queue_impl.hpp
A libsycl/src/handler.cpp
M libsycl/src/queue.cpp
A libsycl/test/basic/handler/handler_depends_on.cpp
A libsycl/test/basic/handler/handler_parallel_for_arg_restrictions.cpp
A libsycl/test/basic/handler/handler_parallel_for_generic_lambda.cpp
A libsycl/test/basic/handler/handler_parallel_for_nd_range_invalid_arg_type.cpp
A libsycl/test/basic/handler/handler_parallel_for_runtime.cpp
A libsycl/test/basic/handler/handler_unnamed_lambda_functor.cpp
A libsycl/test/basic/handler/submit_fn_ptr_handler.cpp
M libsycl/unittests/CMakeLists.txt
M libsycl/unittests/event/event.cpp
A libsycl/unittests/handler/CMakeLists.txt
A libsycl/unittests/handler/memcpy.cpp
A libsycl/unittests/handler/semantics.cpp
A libsycl/unittests/handler/test_helpers.hpp
M libsycl/unittests/queue/sycl_kernel_launch.cpp
Log Message:
-----------
[libsycl] add initial sycl::handler impl (#216754)
This PR introduces initial sycl::handler support.
SYCL 2020 declares all direct submissions to queue as {"Equivalent to
calling [queue::submit] with a command group function that calls
handler::...". It seems easier and logical to implement queue methods as
forwarding to handler API. Although queue "shortcut" methods can be
implemented effectively due to their limited functionality. Though I
implement submissions with handler as forwarding to the main queue
methods that will be focused on effective submissions.
Tests implementation is assisted with GH Copilot.
---------
Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
Commit: 39a9ab1bb6776e16be2c74bdba66677ad991114d
https://github.com/llvm/llvm-project/commit/39a9ab1bb6776e16be2c74bdba66677ad991114d
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/include/flang/Frontend/CompilerInstance.h
M flang/lib/Frontend/CompilerInstance.cpp
Log Message:
-----------
[flang] Fix link error in shared library builds (#220550)
Since #218917 / 813bdb184af716091bb927070063a3e065124d33.
Errors of the form:
/usr/bin/ld: <...>/build/./lib/libFortranLower.so.24.0git: error adding
symbols: DSO missing from command line
My changes to the constructor changed dependencies. I could either add a
dependency on that library,
or refactor it a bit to avoid it.
I don't know if linking that library is a good idea, so I'm going the
latter.
Commit: 71b3d71d8cd7d102e6aad1827d11af0656b5e80a
https://github.com/llvm/llvm-project/commit/71b3d71d8cd7d102e6aad1827d11af0656b5e80a
Author: Hari Limaye <hari.limaye at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-shared-loop-invariant.ll
Log Message:
-----------
[SLP] Add test for diamond-gather spill costing (NFC) (#220552)
Assisted-by: OpenAI Codex
Commit: 5c8ee8eb34e27e21744fe2378e1635a521111ea0
https://github.com/llvm/llvm-project/commit/5c8ee8eb34e27e21744fe2378e1635a521111ea0
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/RISCV/gather-runtime-stride-with-base-lane.ll
Log Message:
-----------
[SLP][NFC]Add a test with missing vectorization in copyables geps/zexts, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/220563
Commit: 71b1aad2404290bb71fdc0d763cfbb2e4727d749
https://github.com/llvm/llvm-project/commit/71b1aad2404290bb71fdc0d763cfbb2e4727d749
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
A clang/lib/AST/ByteCode/InterpBuiltinObjectSize.cpp
M clang/lib/AST/ByteCode/InterpHelpers.h
M clang/lib/AST/ByteCode/InterpState.h
M clang/lib/AST/ByteCode/Opcodes.td
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/lib/AST/ByteCode/Program.cpp
M clang/lib/AST/CMakeLists.txt
M clang/lib/AST/ExprConstShared.h
M clang/lib/AST/ExprConstant.cpp
A clang/test/AST/ByteCode/builtin-object-size-codegen-cxx23.cpp
M clang/test/AST/ByteCode/builtin-object-size-codegen.c
M clang/test/AST/ByteCode/builtin-object-size-codegen.cpp
M clang/test/AST/ByteCode/codegen.c
R clang/test/AST/ByteCode/enable_if.c
M clang/test/AST/ByteCode/literals.cpp
M clang/test/CodeGen/attr-counted-by-with-sanitizers.c
M clang/test/CodeGen/attr-counted-by-without-sanitizers.c
M clang/test/Sema/enable_if.c
M clang/test/SemaCXX/new-delete.cpp
Log Message:
-----------
[clang][bytecode] Add opaque pointers to support type-only pointers (#213017)
This adds a new pointer type to represent something we don't have data
for, but can still refer to.
They are similar to LValue APValues: it's a base (currently always a
`VarDecl`) and a "lvalue designator" path.
For the first argument of `__builtin_object_size` and
`__builtin_dynamic_object_size`, when we see an unknown variable, we
emit an opaque pointer for the variable instead of a dummy pointer. Also
if any load in that argument fails, we don't abort the evaluation but
instead push an opaque pointer of the appropriate type on the stack.
This fixes the review complaint from
https://github.com/llvm/llvm-project/pull/196548, namely that we didn't
have a way to just point to an opaque type if a load fails.
Cases that still don't work:
1) The stuff in `test/Sema/builtin-object-size-cxx14.cpp` that use
non-constexpr functions in the first argument of `__builtin_object_size`
(everything in the `InvalidBase` namespace). This behavior matches GCC.
2) From `test/CodeGen/object-size.c`, the sample
```c
void test26(void) {
struct { int v[10]; } t[10];
// CHECK: store i32 312
gi = OBJECT_SIZE_BUILTIN(&t[1].v[12], 1);
}
results in 0, not 312. I don't know why it would result in 312. For
modes 1 and 3, we should consider the closest surrounding variable, wich
only has 10 elements, so at index 12, we have 0 bytes we can read from.
GCC also returns 0.
3) From `test/CodeGen/object-size.c`, functions `test7` through
`test17`, because they modify variables in the first argument of
`__builtin_object_size`.
4) This line from `test/CodeGen/pass-object-size.c`:
```c
gi = NoViableOverloadObjectSize1(&t[1]);
```
This might seem overkill for now, but I plan on using opaque pointers as
replacement for the current "dummy pointer" mechanism as well.
Commit: b1e0aa39763434060ab6e4dc87af3630ac9a04ac
https://github.com/llvm/llvm-project/commit/b1e0aa39763434060ab6e4dc87af3630ac9a04ac
Author: Luke Lau <luke at igalia.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp
Log Message:
-----------
[VPlan] Remove asserts on VF and VFxUF users with EVL tail folding. NFC (#220545)
These asserts were added during the bringup of EVL tail folding, but
IIUC it was because we used to do replaceAllUsesWith,
https://github.com/llvm/llvm-project/commit/f01a7936bea491324e06dcf203749dda08ce7c07.
These days we only replace recipes which generate their own backedge
(widened induction recipes + scalarivsteps) via replaceUsesWithIf.
So the assert isn't really guarding against anything anymore, and is
becoming cumbersome to update (e.g. see
https://github.com/llvm/llvm-project/pull/171590), so this removes it.
Commit: a884af60bbe1e1da21799149ee3f5475b7647bf0
https://github.com/llvm/llvm-project/commit/a884af60bbe1e1da21799149ee3f5475b7647bf0
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCombine.td
A llvm/test/CodeGen/AMDGPU/GlobalISel/combine-trunc-lshr16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fadd.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fcanonicalize.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fma.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmul.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp-int-conversions.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fptrunc.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.128.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.96.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll
M llvm/test/CodeGen/AMDGPU/bitreverse.ll
M llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-store.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f16.fp8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp2.bf16.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-flat.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-global.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-local.ll
M llvm/test/CodeGen/AMDGPU/sad.ll
M llvm/test/CodeGen/AMDGPU/scalar-float-sop1.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fadd.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fmul.ll
Log Message:
-----------
AMDGPU/GlobalISel: Fold (trunc (lshr x, 16)) to unmerge high half (#217633)
Huge performance impact in some shaders with high register pressure.
What this really does is selects _hi16 register classes, and true16
machinery takes over later. Trunc + shift ends up in _lo16!
This requires allocating an extra register when the _lo16 half of the
original real 32-bit VGPR is still live.
Commit: 4b1674fe15991faf55fc788a06f682fc56ea0afd
https://github.com/llvm/llvm-project/commit/4b1674fe15991faf55fc788a06f682fc56ea0afd
Author: Akshay K <iit.akshay at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/IR/Intrinsics.cpp
A llvm/test/Assembler/intrinsic-token-overload-invalid.ll
Log Message:
-----------
[IR] Reject token overload types in intrinsic signature matching (#210799)
Parsing a declaration of an llvm_any_ty intrinsic with a token overload
type crashes opt at parse time:
```
declare token @llvm.ssa.copy.token(token)
Unhandled type
UNREACHABLE executed at llvm/lib/IR/Intrinsics.cpp:133!
```
The unconstrained Any matcher accepts a token, and
Intrinsic::remangleIntrinsicFunction (run from
`LLParser::validateEndOfModule`, before the Verifier) then fails to
mangle it into the intrinsic name.
Token has no name mangling, so no overloaded intrinsic can be
instantiated on it. Reject it in matchIntrinsicType's Overloaded case,
turning the crash into the same clean "expected ..., but got token"
broken-module error that constrained overloads already produce.
Label needs no such check: it is excluded from function signatures by
`FunctionType::isValidReturnType`/`isValidArgumentType` and the
LLParser, so it never reaches matchIntrinsicType.
Fixed llvm_token_ty operands (gc.result, coro.*, ...) are unaffected.
Fixes #210641.
Commit: c5ba1bf401fff557ad9fdcda0dba64d1e0a4c4af
https://github.com/llvm/llvm-project/commit/c5ba1bf401fff557ad9fdcda0dba64d1e0a4c4af
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/cancelled-copyable-splat-gather.ll
Log Message:
-----------
[SLP]Fix unscheduled-bundle assert after failed copyable bundle attempt
Recalculate the copyable instruction's original dependency counters on
the cancel path even if the failed attempt already cleared them.
Fixes #220475
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/220578
Commit: 917cc944a142167b5a42a136e068a2256ff42338
https://github.com/llvm/llvm-project/commit/917cc944a142167b5a42a136e068a2256ff42338
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
Log Message:
-----------
Verifier: Early-return after validating a module flag (#220559)
Commit: 96d2e00a9cbeeaaddecb567d5fe1bce7d94145f0
https://github.com/llvm/llvm-project/commit/96d2e00a9cbeeaaddecb567d5fe1bce7d94145f0
Author: Frederik Harwath <frederik.harwath at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel-dst.mir
M llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel-src.mir
Log Message:
-----------
[AMDGPU] si-peephole-sdwa: Simplify selection combine tests (NFC) (#219933)
The second SDWA instruction in each test case is not involved in the
SDWA conversion being tested.
Remove the unnecessary and confusing instructions.
Commit: 929d4af57ca7e43927867a7d08d71ef36ba63224
https://github.com/llvm/llvm-project/commit/929d4af57ca7e43927867a7d08d71ef36ba63224
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/STLFunctionalExtras.h
M llvm/unittests/ADT/FunctionRefTest.cpp
Log Message:
-----------
[llvm] Initialize function_ref callable state (#220561)
An empty function_ref leaves its callable member uninitialized. Implicit
copy operations propagate that value and operator== reads it when empty
references are compared.
Without the initialization, Valgrind reports the new regression test as:
Conditional jump or move depends on uninitialised value(s)
ERROR SUMMARY: 79 errors from 7 contexts
Initialize callable to zero and cover empty construction, copying,
assignment, and equality. The same Valgrind run then reports zero
errors.
Assisted-by: Codex
Commit: d44c6a2b2527b7a93b7927a271fce5f584305afa
https://github.com/llvm/llvm-project/commit/d44c6a2b2527b7a93b7927a271fce5f584305afa
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Analysis/GlobalsModRef.cpp
A llvm/test/Analysis/GlobalsModRef/optnone-scc.ll
Log Message:
-----------
[GlobalsAA] Fix handling of optnone functions (#220546)
For optnone functions, we want to fall back to the memory effects
implied by attributes. However, the code that did this repeatedly
checked only the first function in the SCC, instead of all functions.
Disclaimer: Test case is AI generated, rest is my own.
Commit: d5fa31c3fa90a1b1ed4ee6d725d219d70accc002
https://github.com/llvm/llvm-project/commit/d5fa31c3fa90a1b1ed4ee6d725d219d70accc002
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/docs/DefiningDialects/Operations.md
M mlir/test/IR/attribute.mlir
M mlir/test/IR/enum-attr-invalid.mlir
M mlir/test/IR/enum-attr-roundtrip.mlir
M mlir/test/lib/Dialect/Test/TestEnumDefs.td
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/mlir-tblgen/op-format-invalid.td
M mlir/test/mlir-tblgen/op-format.td
M mlir/tools/mlir-tblgen/FormatGen.cpp
M mlir/tools/mlir-tblgen/FormatGen.h
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
Log Message:
-----------
[MLIR][ODS] Add enum operation format directive (#220412)
Today enum handling is problematic: their format is defined manually
often with `<$value>` so that their generic printing is
`#dialect.mnemnonic<value>` instead of `#dialect<mnemnonic value>`.
However that prevents the Operation ODS assembly format from getting
just the value without the surrounding `<` `>`.
Add enum($attr) to declarative operation assembly formats. The directive
parses and prints the symbolic enum value independently of the
attribute's custom assembly format. This lets standalone attributes
retain delimiters while operations use a bare value.
Validate directive operands during TableGen processing and retain
keyword and quoted-string handling. Add separator-aware parsing and
unquoted printing for comma- and vertical-bar-separated bit enums.
Document the directive and add generated-code, diagnostic,
compatibility, and runtime round-trip coverage.
Assisted-by: Codex
Commit: 7bd21fe7fef4b9d23f8ec086955bc2f552f7de8e
https://github.com/llvm/llvm-project/commit/7bd21fe7fef4b9d23f8ec086955bc2f552f7de8e
Author: Berkay Sahin <berkaysahindev at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang-tools-extra/clangd/ClangdServer.cpp
M clang-tools-extra/clangd/ModulesBuilder.cpp
M clang-tools-extra/clangd/ModulesBuilder.h
M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
Log Message:
-----------
[clangd][modules] Discover opened module files outside the compilation database (#218958)
Allow clangd to discover C++ module interface files that are not present
in the compilation database.
. Tracks opened and watched C++ module files.
. Uses tracked files as a fallback when resolving module names.
. Reparses open files when a relevant module file is discovered,
changed, or deleted.
Only saved module contents are considered. Unsaved drafts are not used
for module discovery.
Fixes #199564
Bit more on discourse:
https://discourse.llvm.org/t/rfc-clangd-discover-c-module-interfaces-missing-from-the-compilation-database/91448
Commit: 7d9c823496d8e6dce454a5d3fa72161144561c74
https://github.com/llvm/llvm-project/commit/7d9c823496d8e6dce454a5d3fa72161144561c74
Author: Joshua Rodriguez <josh.rodriguez at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
M llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll
M llvm/test/CodeGen/AArch64/arm64-zip.ll
Log Message:
-----------
[AArch64][GlobalISel] Create zip in shuffle(v, undefined) situations (#219226)
In SDAG, the aarch64-isel phase checks if vector shuffles can be
expressed as a zips. To do this, it checks shuffles of type shuffle(v,
v), and shuffle(v, undefined).
GlobalISel previously only checked shuffles of type shuffle(v, v). Add a
check for the situation where one of the operands in undefined.
Notes:
A zip interleaves two vectors together.
e.g: `zip <A, B, C, D>, <1, 2, 3, 4> => <A, 1, B, 2, C, 3, D, 4>`.
A zip1 takes the bottom half of the result.
e.g: `zip1 <A, B, C, D>, <1, 2, 3, 4> => <A, 1, B, 2>`.
A shuffle is an LLVM IR generic opcode that takes 2 vectors, and places
elements of each into a single vector. The elements are selected based
on a mask.
e.g: `G_SHUFFLE_VECTOR <A, B, C, D>, <E, F, G, H>, <0, 4, 6, 3> => <A,
E, G, D>`.
A shuffle can be represented as a zip when the result of the shuffle is
just an interleaving of the two vectors.
e.g: `G_SHUFFLE_VECTOR <A, B, C, D>, <A, B, C, D>, <0, 4, 1, 5> => zip1
<A, B, C, D>`.
Commit: 22a5e1e3ea0c134104ef84e06636c286682f7685
https://github.com/llvm/llvm-project/commit/22a5e1e3ea0c134104ef84e06636c286682f7685
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/shared/math/copysignf128.h
M libc/shared/math/fabsf128.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/copysignf128.h
M libc/src/__support/math/fabsf128.h
M libc/src/math/copysignf128.h
M libc/src/math/fabsf128.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/copysignf128.cpp
M libc/src/math/generic/fabsf128.cpp
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/copysignf128_test.cpp
M libc/test/src/math/smoke/fabsf128_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
Log Message:
-----------
[libc] Make sign functions use the emulated float128 type (#217389)
* `fabsf128`
* `copysignf128`
Commit: 0fb5b023ba3ddaf09e5ba0dc4a3e821f0b3427b1
https://github.com/llvm/llvm-project/commit/0fb5b023ba3ddaf09e5ba0dc4a3e821f0b3427b1
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/include/mlir/Pass/Pass.h
Log Message:
-----------
[mlir][Pass] Remove unused PassExecutionAction field (#220587)
PassExecutionAction::getOp derives the current operation from the action
context. The separate op field is never initialized or read, so remove
it.
Found by Coverity.
Assisted-by: Codex
Commit: 1a36cbff39280c725e79d8a41782033c0b09b817
https://github.com/llvm/llvm-project/commit/1a36cbff39280c725e79d8a41782033c0b09b817
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGenTypes/MachineValueType.h
M llvm/lib/CodeGenTypes/CMakeLists.txt
A llvm/lib/CodeGenTypes/MachineValueType.cpp
M llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
M llvm/utils/TableGen/Basic/VTEmitter.cpp
Log Message:
-----------
[CodeGenTypes] Use lookup table for MVT::getVectorVT (NFC) (#220309)
We spend a substantial amount of compile-time in getVectorVT lookups.
Instead of emitting code for checking each type one after another, build
a constexpr lookup table once at the outset.
The main lookup table is indexed by (IsScalable, scalar MVT, Slot),
where slot is a mapping from the number of vector elements to a
consecutive slot.
All simple vector types must fit into the table. The values chosen
should work for all targets enabled by default (MaxNumElements = 4096,
MaxNumSlots = 32, i.e. 32 different number of elements per scalar type).
There's no slack for MaxNumElements (largest existing vector type has
4096 elements), but plenty of slack with the slots (currently at most 23
distinct element counts across vector types, usually power-of-2 sizes up
to 4096 plus a few more for low non-power-of-2 element counts).
If a target has VTs that do not fit into those constraints, the build
will fail.
Speeds up some individual workloads at stage1
* stage1-O3 - mafft -0.08%
* stage1-ReleaseThinLTO: -0.12%
And Speeds up stage2 builds generally:
* stage2-O3: -0.47%
* stage2-O0-g: -0.22%
https://llvm-compile-time-tracker.com/compare.php?from=c1100cd94b7b89db8c0929192e80aeaea95bc30e&to=328004801d1a925533a226de00c50e48610d1ff8&stat=instructions:u
Analysis aided by Opus 5.
PR: https://github.com/llvm/llvm-project/pull/220309
Commit: e4ef6e5ba3c82ec467840774949f38eb7085d7a8
https://github.com/llvm/llvm-project/commit/e4ef6e5ba3c82ec467840774949f38eb7085d7a8
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
A llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.h
M llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp
R llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.h
M llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.cpp
Log Message:
-----------
[ORC] Hoist OrcRTBootstrap.h to fix layering violation (#220564)
https://github.com/llvm/llvm-project/pull/220224 updated
SelfExecutorProcessControl to publish JIT bootstrap symbols for running
functions after https://github.com/llvm/llvm-project/pull/213265 removed
some ExecutorProcessControl runAs* methods. This violated layering rules
as it left Orc depending on an internal header from OrcTargetProcess.
Hoist the OrcRTBootstrap.h header into the include directory to fix the
layering violation.
Commit: 8cc60b748cc3e423e48517c35e8cfea7d6d6c6b7
https://github.com/llvm/llvm-project/commit/8cc60b748cc3e423e48517c35e8cfea7d6d6c6b7
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
Log Message:
-----------
AMDGPU/GlobalISel: Fix i32 unmerge lowering in RegBankLegalize (#220590)
Old code assumed vector input and was bitcasting to i32 unconditionally.
Commit: b9a6d7e872ae74c114ee6a3148e9a25fe9b5b9bc
https://github.com/llvm/llvm-project/commit/b9a6d7e872ae74c114ee6a3148e9a25fe9b5b9bc
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/lib/Semantics/check-omp-atomic.cpp
Log Message:
-----------
[flang] Only define IsSameAtomicVariable when asserts are enabled (#220202)
Fixes error that happens when building with LLVM_ENABLE_ASSERTIONS=ON
and -Werror enabled.
<...>/check-omp-atomic.cpp:430:13: error: unused function
'IsSameAtomicVariable' [-Werror,-Wunused-function]
430 | static bool IsSameAtomicVariable(const SomeExpr &x, const SomeExpr
&y) {
| ^~~~~~~~~~~~~~~~~~~~
Commit: 3f767e7b145ddc6814bd31e3052eaa8a6d68759d
https://github.com/llvm/llvm-project/commit/3f767e7b145ddc6814bd31e3052eaa8a6d68759d
Author: blazej-smorawski <56126596+blazej-smorawski at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/dynamic_l0/L0DynWrapper.cpp
M offload/plugins-nextgen/level_zero/dynamic_l0/level_zero/ze_api.h
M offload/plugins-nextgen/level_zero/include/L0CmdListManager.h
M offload/plugins-nextgen/level_zero/include/L0Compat.h
M offload/plugins-nextgen/level_zero/include/L0Context.h
M offload/plugins-nextgen/level_zero/include/L0Kernel.h
M offload/plugins-nextgen/level_zero/src/L0Context.cpp
M offload/plugins-nextgen/level_zero/src/L0Kernel.cpp
M offload/plugins-nextgen/level_zero/src/L0Plugin.cpp
M offload/plugins-nextgen/level_zero/src/L0Queue.cpp
Log Message:
-----------
[Offload] Implement better level zero dispatch (#218367)
This PR implements better handling of level zero APIs which might act
differently depending on level zero version:
Here's a small table that I based the PR on, you can see that some APIs
are available in the loader level through direct linking or dlopen (D)
or require call to `zeDriverGetExtensionFunctionAddress` (X)
```
25.18 25.22 25.35 25.44 25.48 26.22
zeDriverGetDefaultContext D X X X X D
zeCommandListAppendLaunchKernelWithArguments D X X X X D
zeCommandListAppendLaunchKernelWithParameters D D X X X D
zeCommandListAppendHostFunction . . . . X X
zexCommandListAppendHostFunction . . . X . .
```
Please note that all the possibly unavailable APIs are stored inside a
context, because one platform might have multiple drivers with different
features supported.
Commit: 847eee6a93f2a57ec716a5b78ec527b9f95a64a4
https://github.com/llvm/llvm-project/commit/847eee6a93f2a57ec716a5b78ec527b9f95a64a4
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/loadi8.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/matmul.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/splat-loads.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/splat-gather-extracts.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/splat-gather-trim-combined.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/splat-gather-trim.ll
M llvm/test/Transforms/SLPVectorizer/X86/broadcast.ll
M llvm/test/Transforms/SLPVectorizer/X86/lookahead.ll
M llvm/test/Transforms/SLPVectorizer/X86/reorder_phi.ll
M llvm/test/Transforms/SLPVectorizer/X86/splat-gather-operands.ll
Log Message:
-----------
Revert "[SLP]Vectorize unique scalars of splat gather nodes as separate subtrees" (#220584)
Reverts llvm/llvm-project#220250
This caused assertion failures:
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:12676:
void llvm::slpvectorizer::BoUpSLP::buildTreeRec(ArrayRef<Value *>,
unsigned int, const EdgeInfo &, unsigned int):
Assertion `(allConstant(VLRef) || allSameType(VLRef)) && "Invalid
types!"' failed.
see comment on the PR for reproducer.
Commit: 446bb71630c18ed4d76c869331d4de9b90b2757f
https://github.com/llvm/llvm-project/commit/446bb71630c18ed4d76c869331d4de9b90b2757f
Author: Andrew Gaul <andrew at gaul.org>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86FixupLEAs.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/test/CodeGen/X86/arg-copy-elide.ll
M llvm/test/CodeGen/X86/avx2-vbroadcast.ll
M llvm/test/CodeGen/X86/avx512-calling-conv.ll
M llvm/test/CodeGen/X86/avx512-insert-extract.ll
M llvm/test/CodeGen/X86/avx512-insert-extract_i1.ll
M llvm/test/CodeGen/X86/avx512-intel-ocl.ll
M llvm/test/CodeGen/X86/avx512-regcall-Mask.ll
M llvm/test/CodeGen/X86/avx512-shuffles/shuffle-chained-bf16.ll
M llvm/test/CodeGen/X86/avx512fp16-mov.ll
M llvm/test/CodeGen/X86/fp128-libcalls-strict.ll
M llvm/test/CodeGen/X86/frem.ll
M llvm/test/CodeGen/X86/i386-baseptr.ll
A llvm/test/CodeGen/X86/lea-fixup-disp128.mir
M llvm/test/CodeGen/X86/nontemporal-loads-2.ll
M llvm/test/CodeGen/X86/sdiv_fix_sat.ll
M llvm/test/CodeGen/X86/shift-i128.ll
M llvm/test/CodeGen/X86/smulo-128-legalisation-lowering.ll
A llvm/test/CodeGen/X86/stack-adjust-128.ll
M llvm/test/CodeGen/X86/var-permute-512.ll
M llvm/test/CodeGen/X86/vec-strict-inttofp-512.ll
M llvm/test/CodeGen/X86/vector-compress.ll
M llvm/test/CodeGen/X86/vector-extract-last-active.ll
M llvm/test/CodeGen/X86/wide-scalar-shift-by-byte-multiple-legalization.ll
M llvm/test/CodeGen/X86/widen-load-of-small-alloca-with-zero-upper-half.ll
M llvm/test/CodeGen/X86/x86-64-baseptr.ll
Log Message:
-----------
[X86] Use 8-bit immediates for 128-byte stack adjustments and LEA splits (#219866)
ADD and SUB of +128 need a 32-bit immediate, but the equivalent
operation with -128 fits the sign-extended 8-bit form, three bytes
shorter. ISel has long done this through X86InstrCompiler.td patterns
(extended to flag-producing adds in c0e01d29a467), but two post-ISel
paths still emit the long form:
* X86FrameLowering::BuildStackAdjustment emits sub rsp, 128 and add rsp,
128 for 128-byte adjustments. Flip them to add rsp, -128 and sub rsp,
-128. EFLAGS is dead whenever this branch is taken, since the code
already prefers a flag-clobbering ADD/SUB over LEA on that basis.
Windows CFI targets keep the canonical spelling because the Win64
unwinder recognizes an epilogue by disassembling forward for add rsp,
imm.
* X86FixupLEAs::processInstrForSlow3OpLEA splits a slow three-operand
LEA into a two-operand LEA plus an ADD of the displacement, guarded on
EFLAGS being provably dead; emit SUB of -128 when that displacement is
exactly 128.
Together these cover all 55 remaining oversized 128-immediate encodings
in uutils coreutils (48 stack adjustments, 7 LEA splits).
Found via x86lint.
Commit: 9220f2bec03d4ec74ab7af5bbae6020b017051d8
https://github.com/llvm/llvm-project/commit/9220f2bec03d4ec74ab7af5bbae6020b017051d8
Author: Jason Van Beusekom <jason.van-beusekom at hpe.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/omptarget-debug-runtime-call-loc.mlir
Log Message:
-----------
[MLIR][OpenMP] Set a debug location for __kmpc_target_init/deinit calls (#217407)
The __kmpc_target_init and __kmpc_target_deinit calls are emitted by
createOutlinedFunction, which resets the current debug location to empty
first because the location it inherits is scoped to the parent function
and would be in the wrong scope inside the newly created kernel. The
subprogram for the outlined function is only attached later, by the body
callback, so neither call ends up with a location.
That matters once a device runtime built with debug info is linked in:
the two runtime functions then have definitions with their own
DISubprogram, which makes these inlinable calls inside a function that
has debug info, and the verifier requires those to carry a !dbg. The
device link of a target region compiled with -g fails with
inlinable function call in a function with debug info must have a !dbg
location
convertOmpTarget already has the location these calls need. It saves
outlinedFnLoc, the location of the target construct scoped to the
subprogram that will be attached to the outlined function, before
re-scoping the builder to the parent function for the code it emits
there. Pass that down through createTarget so createOutlinedFunction can
install it instead of clearing the location, which gives everything
emitted into the outlined function a correct scope from the start.
The location cannot instead be carried in the LocationDescription that
createTarget already takes. That one is scoped to the parent function
and is what emitTargetCall uses for the host-side offloading code it
emits there, so re-scoping it to the kernel makes those instructions
fail the verifier with "!dbg attachment points at wrong subprogram for
function". Both locations are needed at once, so one of them has to be
passed separately.
The new parameter defaults to an empty location, so callers with no
subprogram to offer keep the current behaviour. MLIR's target lowering
is the only in-tree caller of createTarget; clang outlines target
regions through emitTargetRegionFunction with its own generate callback
and never reaches createOutlinedFunction, so the default only covers the
OMPIRBuilder unit tests.
Co-authored-by: Cursor <cursoragent at cursor.com>
Assisted-by: Opus 4.8
Fixes: https://github.com/llvm/llvm-project/issues/217467
---------
Co-authored-by: Abid Qadeer <haqadeer at amd.com>
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 492bf8e7fb9e3fc5fd8fd899d96bc91d7e3a657e
https://github.com/llvm/llvm-project/commit/492bf8e7fb9e3fc5fd8fd899d96bc91d7e3a657e
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
A libcxx/test/libcxx/thread/thread.mutex/thread.once/once_flag.abi.compile.pass.cpp
Log Message:
-----------
[libc++] Add a test for the ABI of std::once_flag (#218924)
Commit: 87d7b5cfe7116f50aca2625aebbbd6f9da6624d0
https://github.com/llvm/llvm-project/commit/87d7b5cfe7116f50aca2625aebbbd6f9da6624d0
Author: Sergio Afonso <safonsof at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/Passes/Pipelines.h
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/Optimizer/Passes/Pipelines.cpp
A flang/test/Driver/mlir-omp-pass-pipeline.f90
M flang/tools/bbc/bbc.cpp
Log Message:
-----------
[Flang][OpenMP] Skip unrelated passes in simd-only mode (#219193)
The `-fopenmp-simd` option allows the compiler to lower OpenMP `simd`
constructs while ignoring all other OpenMP directives.
This patch updates the compilation pipeline to avoid triggering passes
associated to any of these other OpenMP directives when compiling in
simd-only mode.
Commit: 7a1f6ad89e574d638e4618f41f243c63da76ce7b
https://github.com/llvm/llvm-project/commit/7a1f6ad89e574d638e4618f41f243c63da76ce7b
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M libcxx/include/__vector/vector.h
Log Message:
-----------
[libc++] Simplify allocator propagation in vector assignments (#217635)
We can just use `if constexpr` instead of dispatching based on type
traits. This will cause some more code generation in C++03, but I don't
think we should care at this point.
Commit: dec011539045b52e16a7767a6a64f24e84dd3958
https://github.com/llvm/llvm-project/commit/dec011539045b52e16a7767a6a64f24e84dd3958
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/OpenACCUtilsType.h
M mlir/lib/Dialect/OpenACC/Transforms/ACCCGToGPU.cpp
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsType.cpp
A mlir/test/Dialect/OpenACC/acc-cg-to-gpu-private-local-cast.mlir
M mlir/unittests/Dialect/OpenACC/OpenACCUtilsTypeTest.cpp
Log Message:
-----------
[nfc][acc] Expose castPointerLikeType API (#220426)
Moves utility out of ACCCGToGPU to OpenACCUtilsType. And adds unit
tests.
Commit: 17de153b0798d3061580d19e46e053a5d0d93c11
https://github.com/llvm/llvm-project/commit/17de153b0798d3061580d19e46e053a5d0d93c11
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/shared/math/fmaximumf128.h
M libc/shared/math/fminimumf128.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/fmaximumf128.h
M libc/src/__support/math/fminimumf128.h
M libc/src/math/fmaximumf128.h
M libc/src/math/fminimumf128.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/fmaximumf128.cpp
M libc/src/math/generic/fminimumf128.cpp
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/FMaximumTest.h
M libc/test/src/math/smoke/FMinimumTest.h
M libc/test/src/math/smoke/fmaximumf128_test.cpp
M libc/test/src/math/smoke/fminimumf128_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
Log Message:
-----------
[libc] Make fmaximum/fminimum functions use the emulated float128 type (#217390)
Stacked on #217389.
Commit: d406de1f3a9f3c99a0a7689d36b133c1b63466bb
https://github.com/llvm/llvm-project/commit/d406de1f3a9f3c99a0a7689d36b133c1b63466bb
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.h
M llvm/test/Analysis/CostModel/AMDGPU/fused_costs.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd-wrong-subtarget.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fadd.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fsub.ll
M llvm/test/CodeGen/AMDGPU/sink-fmul-fadd.ll
R llvm/test/Transforms/CodeGenPrepare/AMDGPU/sink-fmul-fadd-contract-fast.ll
M llvm/test/Transforms/CodeGenPrepare/AMDGPU/sink-fmul-fadd.ll
Log Message:
-----------
[AMDGPU] Sink a single-use fmul into the block of its fadd/fsub user (#215810)
The cost model prices an fmul as free when its only user is a
contractable fadd/fsub, on the assumption the pair is selected as one
fused instruction. That only holds when both sit in the same block, and
a loop-invariant fmul hoisted out of its user's loop is left behind and
never fused, while still priced as free.
The generic sinking pass handles the plain case but will not sink into a
loop, which is exactly where the fmul is stranded. Sink it back into the
user's block when the two would fuse, using the same condition the cost
model does so they cannot disagree. Only the operand that would actually
fuse is moved, and only when it has a single use so this stays a move
rather than a copy.
Derive that shared condition from instruction selection's own mad
legality check rather than re-deriving it here. On targets without a
16-bit mad the pair does not actually fuse, so the f16 fmul is no longer
priced free and is not sunk, which is where the f16 test changes come
from.
Contributes to https://github.com/llvm/llvm-project/issues/211092
Assisted-by: Claude Code Opus 5
Commit: 4cd368c14adf45464a7874bb5ff48e4809dab5df
https://github.com/llvm/llvm-project/commit/4cd368c14adf45464a7874bb5ff48e4809dab5df
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
A llvm/test/CodeGen/AMDGPU/eliminate-frame-index-carry-out.ll
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-s-add-i32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32-wave32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-u32.mir
M llvm/test/CodeGen/AMDGPU/frame-index-elimination.ll
Log Message:
-----------
[AMDGPU] Fold frame offset into immediate operand when possible (#220521)
Avoid an extra add when the other operand is an immediate, unless the
fold would wrap 32 bits and change the carry out
Commit: 4383f3bc6d5b73695902c6a5c8f136552d6c84de
https://github.com/llvm/llvm-project/commit/4383f3bc6d5b73695902c6a5c8f136552d6c84de
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCTypeInterfaces.cpp
M flang/test/Fir/OpenACC/recipe-populate-firstprivate.mlir
M flang/test/Fir/OpenACC/recipe-populate-private.mlir
Log Message:
-----------
[flang][acc] Ensure genPrivateVariableInfo looks through data clause (#220470)
This ensure that extracting Fortran variable info looks through the acc
data clause to find the host entity.
Commit: ff4f2068e58c90b46d4a6a274dbc9a97b9920827
https://github.com/llvm/llvm-project/commit/ff4f2068e58c90b46d4a6a274dbc9a97b9920827
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/uaddsat.ll
Log Message:
-----------
[AMDGPU] Add tests for uniform uaddsat.i16 (NFC) (#211337)
Precommit tests (NFC) for uniform uadd.sat i16 and vector i16 (v2/v3/v4)
via amdgpu_ps. Currently lower to VALU (v_add_u16/v_pk_add_u16 clamp +
v_readfirstlane). Base of a 2-PR stack; #210156 stacks on top.
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: ddb35e0981f5d101cbd5379ebc9f35b6c8b5d0de
https://github.com/llvm/llvm-project/commit/ddb35e0981f5d101cbd5379ebc9f35b6c8b5d0de
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/uaddsat.ll
Log Message:
-----------
[AMDGPU] Lower uniform uaddsat.i16 to SALU instructions (#210156)
Map uniform uaddsat.i16(i16 a, i16 b) to the following:
```
s_and_b32 s2, s0, 0xffff ; s0 = i16 a
s_and_b32 s3, s1, 0xffff ; s1 = i16 b
s_add_i32 s4, s3, s2
s_min_u32 s5, s4, 0xffff
```
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 3b5d3d2c1c7a472d7f19b08ead31a36181240876
https://github.com/llvm/llvm-project/commit/3b5d3d2c1c7a472d7f19b08ead31a36181240876
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/MachineFunction.cpp
Log Message:
-----------
[MachineFunction] Print type when printing constant pool value. (#220485)
Previously we printed something like `cp#2: splat (i8 -8), align=64`
which doesn't give any indication of total size.
This would have made debugging
https://github.com/llvm/llvm-project/pull/220448 easier.
Commit: 7e0e56d9686a1afd747c59b3011ce7c0b3bac9dc
https://github.com/llvm/llvm-project/commit/7e0e56d9686a1afd747c59b3011ce7c0b3bac9dc
Author: David Green <david.green at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/CodeGen/AArch64/saturating-vec-smull.ll
M llvm/test/CodeGen/AArch64/smul_fix_sat.ll
Log Message:
-----------
[AArch64][GlobalISel] Add tablegen patterns for smull+sqshrn -> sqdmulh. (#217318)
We do this in parts in globalisel, recognizing the smull and trunc_sat,
which when combined with the correct shift can fold into a single
sqdmulh.
Commit: 964098e2a1ff1a23477af43c736f9721bba178dc
https://github.com/llvm/llvm-project/commit/964098e2a1ff1a23477af43c736f9721bba178dc
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/AArch64/load-bitcast-scalarization.ll
Log Message:
-----------
[VectorCombine] Avoid calling getTypeSizeInBits on scalable vectors in scalarizeLoadBitcast (#220482)
Avoids `LLVM ERROR: Cannot implicitly convert a scalable size to a
fixed-width size in TypeSize::operator ScalarTy()`
Commit: f8024c2308272101c12e10c0c4cb9b586ae4ae1e
https://github.com/llvm/llvm-project/commit/f8024c2308272101c12e10c0c4cb9b586ae4ae1e
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Log Message:
-----------
[GlobalISel] Remove dead declarations and functions (NFC) (#220499)
CombinerHelper::tryCombine: The corresponding function definition was
removed on September 24, 2023 in commit
bc6e7f057340ab0b995cc17a170e34545a295f03.
GISelValueTracking::getKnownBits(MachineInstr &): Added on August 6,
2019
in commit c8ac029d0ae27b8fd392f216d471ba2730be7fd1 without any callers.
GISelValueTracking::computeKnownBitsForAlignment: The last use was
removed on June 3, 2020 in commit
45e1a22a92bf2c33336ccc02ea4fa3996f60252b.
LegalizerHelper::lowerU64ToF32BitOps: The last use was removed on
September 25, 2024 in commit e9cb44090ff7b3feda386ca1ee1252ab47c0617e.
Assisted-by: Antigravity
Commit: eff5d2d48c9c6b6452c7deac0d2281f8e3dd4120
https://github.com/llvm/llvm-project/commit/eff5d2d48c9c6b6452c7deac0d2281f8e3dd4120
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/STLFunctionalExtras.h
M llvm/unittests/ADT/FunctionRefTest.cpp
Log Message:
-----------
[llvm][ADT] Remove function_ref equality operator (#220600)
The equality operator no longer has in-tree users.
TableGen replaced its function_ref callback wrapper with its own FnT.
Assisted-by: Codex
Commit: 8f06f641657927e8ae77fcbb5a49b38c68b1831b
https://github.com/llvm/llvm-project/commit/8f06f641657927e8ae77fcbb5a49b38c68b1831b
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/test/API/functionalities/breakpoint/hardware_breakpoints/write_memory_with_hw_breakpoint/TestWriteMemoryWithHWBreakpoint.py
M lldb/test/API/functionalities/breakpoint/write_over_software_breakpoint/TestWriteOverSoftwareBreakpoint.py
Log Message:
-----------
Revert "[lldb][test] Disable two breakpoint tests for debugserver (#2… (#220615)
…18636)"
This reverts commit 7ea6d83f49d975d64ef2548561a46619c86b3570.
The tests should now pass.
Commit: cd1e53035f74208372d7609b6d815a1077e2042f
https://github.com/llvm/llvm-project/commit/cd1e53035f74208372d7609b6d815a1077e2042f
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/FoldingSet.h
Log Message:
-----------
[ADT] Move traits after FoldingSetNodeID to inline Equals (NFC) (#220494)
This patch moves down DefaultFoldingSetTrait and
DefaultContextualFoldingSetTrait after FoldingSetNodeID, allowing
Equals to be defined inline in DefaultFoldingSetTrait and
DefaultContextualFoldingSetTrait.
Assisted-by: Antigravity
Commit: a422732cd02f900fbf74a305ee6e79ad86f46504
https://github.com/llvm/llvm-project/commit/a422732cd02f900fbf74a305ee6e79ad86f46504
Author: Adrian Prantl <aprantl at apple.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/include/lldb/Target/Process.h
M lldb/source/API/SBProcess.cpp
M lldb/source/Core/Address.cpp
M lldb/source/Core/DynamicLoader.cpp
M lldb/source/Expression/ExpressionVariable.cpp
M lldb/source/Plugins/DynamicLoader/FreeBSD-Kernel/DynamicLoaderFreeBSDKernel.cpp
M lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
M lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlDeque.cpp
M lldb/source/Plugins/Language/ObjC/CF.cpp
M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
M lldb/source/Plugins/Language/ObjC/NSError.cpp
M lldb/source/Plugins/Language/ObjC/NSException.cpp
M lldb/source/Plugins/Language/ObjC/NSSet.cpp
M lldb/source/Plugins/Language/ObjC/NSString.cpp
M lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp
M lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
M lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
M lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp
M lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
M lldb/source/Target/Process.cpp
M lldb/source/Target/RegisterContextUnwind.cpp
M lldb/source/ValueObject/ValueObjectVTable.cpp
Log Message:
-----------
[lldb] Return llvm::Expected from Process::ReadPointerFromMemory (#216389)
The function reported failure twice, through a Status out-parameter and
by returning LLDB_INVALID_ADDRESS. Returning
llvm::Expected<lldb::addr_t> collapses those into a single channel that
cannot be ignored.
Note that ReadScalarIntegerFromMemory can report a short read without
setting the Status so callers could previously get a success Status
alongside LLDB_INVALID_ADDRESS. That case now yields an error.
Call sites that already discarded the Status consume the error
explicitly to preserve their behavior. Error-path logging uses
LLDB_LOG_ERROR instead of passing takeError() to LLDB_LOG/LLDB_LOGF,
which only evaluate their arguments when the channel is enabled and
would otherwise leave the error unchecked and abort.
Assisted-by: Claude
Commit: b5401fb149dc12ba8b1c5bb088416d9244631da7
https://github.com/llvm/llvm-project/commit/b5401fb149dc12ba8b1c5bb088416d9244631da7
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Sema/TreeTransform.h
M clang/test/CodeGenObjCXX/block-in-template-inst.mm
Log Message:
-----------
Remove overly strict assertion for this-capture in blocks (#219080)
TransformBlockExpr asserted that if the instantiated block captures
'this', the uninstantiated pattern block must also have captured it.
This assumption doesn't always hold: a block that accesses a member
through a dependent qualified-id (e.g., 'T::m' inside a template
deriving from T) has no way to know at parse time that the access will
resolve to an implicit 'this->m', since T is unknown. Once the template
is instantiated and 'T::m' resolves to a non-static data member, the
instantiated block legitimately captures 'this' even though the pattern
never did.
rdar://184776458
Commit: 308892ffc7f2aa1af580b6726297e3d516525488
https://github.com/llvm/llvm-project/commit/308892ffc7f2aa1af580b6726297e3d516525488
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/24.rst
M libcxx/docs/Status/Cxx29Papers.csv
M libcxx/include/__ranges/view_interface.h
M libcxx/include/version
M libcxx/test/libcxx/ranges/range.utility/view.interface/nodiscard.verify.cpp
M libcxx/test/libcxx/transitive_includes/cxx20.csv
M libcxx/test/libcxx/transitive_includes/cxx23.csv
M libcxx/test/libcxx/transitive_includes/cxx26.csv
M libcxx/test/libcxx/transitive_includes/cxx29.csv
M libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++][ranges] Implement P3052R2: `view_interface::at()` (#205012)
Closes #204395
Implements https://wg21.link/P3052R2
---------
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Co-authored-by: A. Jiang <de34 at live.cn>
Commit: 9b8d049c42cf8ed6688a666d9fd0de14a604b65a
https://github.com/llvm/llvm-project/commit/9b8d049c42cf8ed6688a666d9fd0de14a604b65a
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/loadi8.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/matmul.ll
A llvm/test/Transforms/SLPVectorizer/AArch64/splat-gather-subtree-cost.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/splat-loads.ll
A llvm/test/Transforms/SLPVectorizer/ARM/splat-gather-extractvalue-mixed-types.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/splat-gather-extracts.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/splat-gather-trim-combined.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/splat-gather-trim.ll
M llvm/test/Transforms/SLPVectorizer/X86/broadcast.ll
M llvm/test/Transforms/SLPVectorizer/X86/lookahead.ll
M llvm/test/Transforms/SLPVectorizer/X86/reorder_phi.ll
M llvm/test/Transforms/SLPVectorizer/X86/splat-gather-operands.ll
Log Message:
-----------
[SLP]Vectorize unique scalars of splat gather nodes as separate subtrees
A splat gather (the same instruction in every lane) is emitted as an
expensive insertion sequence. When the unique scalars of several splat
gathers form a vectorizable bundle, build them as a separate subtree and
emit the splat gathers as broadcasts of the vectorized value.
Original Pull Request: https://github.com/llvm/llvm-project/pull/218250
Recommit after revert in b80664df122426d703fd8eb0ad7e8e9c2c19bbf3 and 847eee6a93f2a57ec716a5b78ec527b9f95a64a4 with
fixed compiler crashes
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/220622
Commit: 4790539c9a07cab64aff41e89a523cf4bd1e2746
https://github.com/llvm/llvm-project/commit/4790539c9a07cab64aff41e89a523cf4bd1e2746
Author: Zibi Sarbinowski <zibi at ca.ibm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZCallingConv.td
A llvm/test/CodeGen/SystemZ/zos-xplink64-bare-i32-arg.ll
Log Message:
-----------
[SystemZ] XPLINK64: keep CCAssignToRegAndStack rule for bare i32 args (#220354)
Bare i32 arguments (no signext/zeroext, e.g. sitofp sources or
struct-coerced i32s) must be assigned to R1L/R2L/R3L by the
CCAssignToRegAndStack rule in CC_SystemZ_XPLINK64.
Without that rule they fall through to the stack fallback,
producing wrong codegen (stack loads instead of register references).
This test demonstrates the regression caused by removing the
CCIfType<[i32], CCAssignToRegAndStack<[R1L,R2L,R3L],8,8>> rule
from CC_SystemZ_XPLINK64 and serves as justification for keeping it.
This is a pre-existing independent issue extracted from #206833 per
reviewer request.
Commit: 7fddb2e0ec7342195bfed56e9bced187568e6210
https://github.com/llvm/llvm-project/commit/7fddb2e0ec7342195bfed56e9bced187568e6210
Author: Schrodinger ZHU Yifan <yfzhu at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
A libc/cmake/modules/cpu_features/check_MVE.cpp
A libc/cmake/modules/cpu_features/check_MVE_FP.cpp
M libc/src/__support/macros/properties/cpu_features.h
Log Message:
-----------
[libc][baremetal] add MVE/MVE_FP feature flags detection (#220345)
This patch adds MVE/MVE_FP SIMD feature flags for baremetal targets.
Cortex-M85/Cortex-M55 introduced the M-profile Vector Extension
(Helium). The detection is via the `__ARM_FEATURE_MVE` bitfield as
described in the Arm C Language Extensions (ACLE): bit 0 is set when
the MVE integer instructions are available, bit 1 when the
floating-point instructions are also available.
Co-authored-by: Claude Fable 5 <noreply at anthropic.com>
Commit: fc254092143db42c8e1fbb35353fad8d9577f748
https://github.com/llvm/llvm-project/commit/fc254092143db42c8e1fbb35353fad8d9577f748
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/test/Analysis/DataFlow/integer-divisibility.mlir
M mlir/test/Conversion/ComplexToROCDLLibraryCalls/complex-to-rocdl-library-calls.mlir
M mlir/test/Conversion/MemRefToSPIRV/map-storage-class-vk.mlir
M mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/dealloc-function-boundaries.mlir
M mlir/test/Dialect/GPU/bufferization-buffer-deallocation.mlir
M mlir/test/Dialect/GPU/subgroup-reduce-lowering.mlir
M mlir/test/Dialect/LLVMIR/dereferenceable-invalid.mlir
M mlir/test/Dialect/LLVMIR/types-invalid.mlir
M mlir/test/Dialect/Linalg/hoisting.mlir
M mlir/test/Dialect/Linalg/transform-op-insert-slice-to-copy.mlir
M mlir/test/Dialect/Linalg/transform-op-linalg-copy-to-memref.mlir
M mlir/test/Dialect/MLProgram/attrs.mlir
M mlir/test/Dialect/MLProgram/ops.mlir
M mlir/test/Dialect/MLProgram/pipeline-globals.mlir
M mlir/test/Dialect/SCF/transform-op-take-assumed-branch.mlir
M mlir/test/Dialect/Tensor/fold-tensor-subset-ops.mlir
M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
M mlir/test/Dialect/Transform/test-interpreter-debug.mlir
M mlir/test/Dialect/Transform/test-interpreter-printing.mlir
M mlir/test/Dialect/Vector/test-create-broadcast.mlir
M mlir/test/Dialect/Vector/vector-warp-distribute.mlir
M mlir/test/Dialect/XeGPU/sg-to-lane-distribute-unit.mlir
M mlir/test/Dialect/XeGPU/sg-to-lane-distribute.mlir
M mlir/test/IR/test-walk-pattern-rewrite-driver.mlir
M mlir/test/Transforms/move-operation-deps.mlir
M mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
M mlir/test/mlir-translate/verify-only-expected.mlir
Log Message:
-----------
[mlir] Remove unnecessary allow-unregistered-dialect flags (#220613)
This is bad practice, instead use unknown operations in the test dialect
when tests only need placeholders.
Use a registered SPIR-V operation for translation diagnostics.
Assisted-by: Codex
Commit: bba78f77e4f5ff9602428dec2766ac0c6f18aba0
https://github.com/llvm/llvm-project/commit/bba78f77e4f5ff9602428dec2766ac0c6f18aba0
Author: cmtice <cmtice at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/test/Driver/amdgpu-offload-arch-subarch-names.c
Log Message:
-----------
clang/AMDGPU: Fix test to work with -lgomp (#220331)
Recently added test fails with "error: '-fopenmp-targets' must be used
in conjunction with a '-fopenmp' option compatible with offloading;
e.g., '-fopenmp=libomp' or '-fopenmp=libiomp5'" if it is built with
-lgomp. This adds a default value (libomp) for the -fopenmp flag to
prevent this test failure.
(The test was added as part of
https://github.com/llvm/llvm-project/pull/219963)
Commit: 78f20e3bb31e2f98078712381b45e837e8084370
https://github.com/llvm/llvm-project/commit/78f20e3bb31e2f98078712381b45e837e8084370
Author: satyanarayana reddy janga <satyajanga at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/docs/resources/lldbgdbremote.md
M lldb/include/lldb/Utility/AcceleratorGDBRemotePackets.h
M lldb/include/lldb/Utility/StringExtractorGDBRemote.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
M lldb/source/Plugins/Process/gdb-remote/LLDBServerAcceleratorPlugin.h
M lldb/source/Utility/AcceleratorGDBRemotePackets.cpp
M lldb/source/Utility/StringExtractorGDBRemote.cpp
M lldb/test/API/accelerator/mock/TestMockAcceleratorPackets.py
M lldb/tools/lldb-server/Plugins/Accelerator/Mock/LLDBServerMockAcceleratorPlugin.cpp
M lldb/tools/lldb-server/Plugins/Accelerator/Mock/LLDBServerMockAcceleratorPlugin.h
M lldb/unittests/Utility/AcceleratorGDBRemotePacketsTest.cpp
Log Message:
-----------
[lldb-server] Add dynamic loader support to accelerator plugin protocol (#214564)
Context:
https://discourse.llvm.org/t/upstreaming-basic-support-for-accelerators/89827/
This is PR#1 of a PR stack adding dynamic loader support for accelerator
(GPU) targets to lldb:
the next PR is **#214581**
In this PR we are adding the protocol foundation for the dyld
- Added handling of new GDB Remote packet
`jAcceleratorPluginGetDynamicLoaderLibraryInfo` and testing it with the
Mock Server Plugin
- see the dyld implementation in **#217393**
Commit: 54d941486fec3a81f9d8e5a595947d540eace85c
https://github.com/llvm/llvm-project/commit/54d941486fec3a81f9d8e5a595947d540eace85c
Author: satyanarayana reddy janga <satyajanga at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/bindings/python/python-typemaps.swig
M lldb/docs/resources/lldbgdbremote.md
M lldb/include/lldb/API/SBAddress.h
M lldb/include/lldb/API/SBDefines.h
M lldb/include/lldb/API/SBProcess.h
M lldb/include/lldb/Host/common/NativeProcessProtocol.h
M lldb/include/lldb/Target/Process.h
M lldb/include/lldb/Utility/StringExtractorGDBRemote.h
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
M lldb/source/API/SBAddress.cpp
M lldb/source/API/SBProcess.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Target/Process.cpp
M lldb/source/Utility/StringExtractorGDBRemote.cpp
A lldb/test/API/functionalities/gdb_remote_client/TestAddressSpaceMemoryRead.py
A lldb/test/API/tools/lldb-server/TestGdbRemoteAddressSpaces.py
M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
Log Message:
-----------
[lldb] Add generic address space support (#214089)
Relevant RFC:
https://discourse.llvm.org/t/rfc-address-spaces-support-in-lldb/91222/
Stacked on #206370 and the
https://github.com/llvm/llvm-project/pull/214088
This PR
- Adds new gdb remote packets - jAddressSpacesInfo, for retreiving the
address spaces from lldb-server.
- supports to enable the feature using the `address-spaces+` in
`qSupported`
- supprot `;address_space:` suffic in memory-read packets. writes are
natural extension.
- SB API, and docs.
https://github.com/llvm/llvm-project/pull/217092 contains an end to end
test to validate the address spaces.
Commit: 4c9fd71e18f211bfe7d43ef841b429a8ef94a140
https://github.com/llvm/llvm-project/commit/4c9fd71e18f211bfe7d43ef841b429a8ef94a140
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/include/clang/Basic/DiagnosticLexKinds.td
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Lex/Lexer.h
M clang/include/clang/Lex/Preprocessor.h
M clang/lib/Lex/Lexer.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Lex/PPExpressions.cpp
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseExprCXX.cpp
M clang/lib/Parse/ParseObjc.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Parse/ParseStmt.cpp
M clang/lib/Parse/ParseTemplate.cpp
M clang/lib/Parse/Parser.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaLambda.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateVariadic.cpp
M clang/lib/Sema/SemaType.cpp
M clang/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p2.cpp
M clang/test/CXX/drs/cwg0xx.cpp
M clang/test/CXX/drs/cwg4xx.cpp
M clang/test/CXX/stmt.stmt/stmt.select/p3.cpp
M clang/test/Lexer/cxx2c-raw-strings.cpp
M clang/test/Parser/cxx0x-in-cxx98.cpp
M clang/test/Parser/cxx0x-lambda-expressions.cpp
M clang/test/Parser/cxx11-user-defined-literals.cpp
M clang/test/Parser/cxx1z-nested-namespace-definition.cpp
M clang/test/Sema/static-assert.c
M clang/test/SemaCXX/cxx98-compat.cpp
M clang/test/SemaCXX/static-assert-ext.cpp
Log Message:
-----------
[Clang] Use Compat diagnostics for most extension/compatibility warnings (#216693)
This changes the wording of a few diagnostic messages to be more
canonical. Otherwise this should be NFC.
Commit: 3ae01af71df1ab3eb868ca15297c565568019ce8
https://github.com/llvm/llvm-project/commit/3ae01af71df1ab3eb868ca15297c565568019ce8
Author: Mattéo Rizza Murgier <matteo.rizza-murgier at sipearl.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/Builder/Runtime/Intrinsics.h
Log Message:
-----------
[flang][NFC] Remove dead declarations and fix include guard (#219961)
Commit: 89b21bed656009821f8c79128e7032fdddc6689b
https://github.com/llvm/llvm-project/commit/89b21bed656009821f8c79128e7032fdddc6689b
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M libc/test/src/stdio/fputc_test.cpp
Log Message:
-----------
[libc] Stop printing \0 in stdio/fputc_test.cpp (#220544)
This test defines two strings in the form of constant char[] arrays, and
then loops over the characters of each one using a range-for. This
iteration includes the implicit terminating \0, which is printed to the
output channels along with everything else. This is mildly inconvenient
because the presence of a \0 in a log file causes standard tools like
`grep` and `less` to default to treating it as binary.
Now each loop breaks before printing the NUL, so the characters sent to
the output streams are exactly the same as in fputs_test.cpp.
Also, while I was here, I moved the check of fputc's return value into
the loop, so that it's checked on every iteration instead of just the
final one, matching the other loop checking putchar. (Surely this was
intended all along; there was no comment explaining the difference.)
Commit: 36cf06de82ff294e36afb500fefdcfa58f890bee
https://github.com/llvm/llvm-project/commit/36cf06de82ff294e36afb500fefdcfa58f890bee
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes e4ef6e5 (#220598)
This fixes e4ef6e5ba3c82ec467840774949f38eb7085d7a8 (#220564).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=e4ef6e5ba3c82ec467840774949f38eb7085d7a8
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 0725c489f8df6e23583997738be993c0c21b07d9
https://github.com/llvm/llvm-project/commit/0725c489f8df6e23583997738be993c0c21b07d9
Author: Graham Hunter <graham.hunter at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
A llvm/test/CodeGen/AArch64/default-partial-reduce.ll
Log Message:
-----------
[AArch64] Fix widening of half/bfloat partial reductions. (#220261)
Includes testing aimed at letting us use partial reductions as the
default for add/fadd reductions when ordering isn't required.
Commit: b95aa1927996ea5ad05191a1a599bcffe51ef971
https://github.com/llvm/llvm-project/commit/b95aa1927996ea5ad05191a1a599bcffe51ef971
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/Transforms/ACCRecipeMaterialization.cpp
Log Message:
-----------
[mlir][OpenACC][NFC] Avoid per-recipe module walks in ACCRecipeMaterialization (#220420)
Commit: 34dc057c4c095dc98cbbd0b1d16c8bf6b2e18c09
https://github.com/llvm/llvm-project/commit/34dc057c4c095dc98cbbd0b1d16c8bf6b2e18c09
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/include/flang/Evaluate/tools.h
M flang/test/Lower/CUDA/cuda-managed-assign.cuf
Log Message:
-----------
[flang][cuda] Honor component CUDA attrs in assignment copies (#220398)
Commit: d6aa82442212a7d55faf107c5bbc81b97f1b66f3
https://github.com/llvm/llvm-project/commit/d6aa82442212a7d55faf107c5bbc81b97f1b66f3
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M openmp/device/include/State.h
M openmp/device/src/Reduction.cpp
M openmp/device/src/State.cpp
Log Message:
-----------
[offload] Add global addrspace qualifier to KLE and member pointers (#213918)
Claude assisted with this patch.
Commit: dd7236de4812ff2c4dc28e2b2948e3f35586d33b
https://github.com/llvm/llvm-project/commit/dd7236de4812ff2c4dc28e2b2948e3f35586d33b
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M clang/tools/cir-translate/cir-translate.cpp
M clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp
M clang/tools/clang-import-test/clang-import-test.cpp
M flang/include/flang/Optimizer/CodeGen/CodeGen.h
M flang/lib/Frontend/FrontendActions.cpp
M llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h
M llvm/include/llvm/IR/IRPrintingPasses.h
M llvm/include/llvm/IR/Metadata.h
M llvm/include/llvm/IR/Module.h
M llvm/include/llvm/IR/ModuleSlotTracker.h
M llvm/include/llvm/IRPrinter/IRPrintingPasses.h
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MIRPrintingPass.cpp
M llvm/lib/CodeGen/MachineBasicBlock.cpp
M llvm/lib/CodeGen/MachineModuleSlotTracker.cpp
M llvm/lib/CodeGen/MachineOperand.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/IRPrintingPasses.cpp
M llvm/lib/IR/LLVMContextImpl.cpp
M llvm/lib/IR/LLVMContextImpl.h
M llvm/lib/IR/Metadata.cpp
M llvm/lib/IR/MetadataImpl.h
M llvm/lib/IR/SSAContext.cpp
M llvm/lib/IRPrinter/IRPrintingPasses.cpp
M llvm/lib/Target/DirectX/DXILPrettyPrinter.cpp
M llvm/test/CodeGen/DirectX/DebugInfo/di-globalvariable.ll
M llvm/test/CodeGen/Hexagon/swp-no-alias.mir
M llvm/test/CodeGen/MIR/AMDGPU/instr-mmra.mir
M llvm/test/CodeGen/MIR/AMDGPU/machine-metadata.mir
M llvm/test/CodeGen/MIR/X86/instr-heap-alloc-operands.mir
M llvm/test/CodeGen/MIR/X86/instr-pcsections.mir
M llvm/test/CodeGen/MIR/X86/instructions-debug-location.mir
M llvm/test/CodeGen/MIR/X86/machine-metadata.mir
M llvm/test/CodeGen/MIR/X86/mem-cache-hint.mir
M llvm/test/CodeGen/MIR/X86/memory-operands.mir
M llvm/test/CodeGen/MIR/X86/metadata-operands.mir
M llvm/test/CodeGen/MIR/X86/pr38773.mir
M llvm/test/CodeGen/MIR/X86/stack-object-debug-info.mir
M llvm/test/DebugInfo/MIR/AArch64/no-dbg-value-after-terminator.mir
M llvm/test/Other/legacy-callgraph-scc-pass-printer.ll
A llvm/test/Other/print-changed-persistent-metadata-ids.ll
A llvm/test/Other/print-persistent-metadata-ids.ll
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/loop-distribute.ll.expected
M llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-print-basic-details.test
M llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-select-logical-elements.test
M llvm/test/tools/llvm-debuginfo-analyzer/IR/02-ir-logical-lines.test
M llvm/test/tools/llvm-debuginfo-analyzer/IR/06-ir-full-logical-view.test
M llvm/tools/llvm-dis/llvm-dis.cpp
M llvm/tools/llvm-extract/llvm-extract.cpp
M llvm/tools/llvm-link/llvm-link.cpp
M llvm/tools/llvm-reduce/ReducerWorkItem.cpp
M llvm/tools/llvm-split/llvm-split.cpp
M llvm/tools/llvm-stress/llvm-stress.cpp
M llvm/tools/opt/NewPMDriver.cpp
M llvm/tools/opt/optdriver.cpp
M llvm/tools/verify-uselistorder/verify-uselistorder.cpp
M llvm/unittests/AsmParser/AsmParserTest.cpp
M llvm/unittests/IR/AsmWriterTest.cpp
M llvm/unittests/IR/MetadataTest.cpp
M llvm/unittests/IR/ModuleTest.cpp
M llvm/unittests/MIR/MachineMetadata.cpp
M mlir/lib/Target/LLVMIR/ConvertToLLVMIR.cpp
M mlir/test/Target/LLVMIR/Import/import-failure.ll
M polly/test/ForwardOpTree/atax.ll
M polly/test/ForwardOpTree/jacobi-1d.ll
M polly/test/ScopInfo/preserve-equiv-class-order-in-basic_block.ll
M polly/test/ScopInfo/stmt_split_exit_of_region_stmt.ll
M polly/test/ScopInfo/stmt_split_no_after_split.ll
M polly/test/ScopInfo/stmt_split_no_dependence.ll
M polly/test/ScopInfo/stmt_split_phi_in_beginning_bb.ll
M polly/test/ScopInfo/stmt_split_phi_in_stmt.ll
M polly/test/ScopInfo/stmt_split_scalar_dependence.ll
M polly/test/ScopInfo/stmt_split_within_loop.ll
Log Message:
-----------
Reland "[IR] Use persistent metadata IDs for printing" (#220390)
This relands 85e903099313aa5ea98d175698aaa40e27a0d743 with fixes for
the buildbot failures that prompted its revert.
Move the MachineModuleSlotTracker debug-location query out of line so
DILocation is complete when SmallPtrSet pointer traits are instantiated
by MSVC.
The legacy DXIL pretty-printer renumbers persistent metadata IDs, which
changes module print state. Make the pass report the modification and
register it as a transformation rather than an analysis.
Repeated pass and debug printing currently rebuilds metadata slot
numbers by scanning the module. On large modules, this repeated setup
can take more time than printing the requested function.
Store a persistent print ID in each metadata node and use that ID
whenever metadata is printed. Before final assembly output, renumber the
IDs into canonical compact order so normal textual IR output remains
unchanged.
This keeps metadata numbers stable across pass snapshots while avoiding
repeated module-wide metadata scans.
Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/2/builds/60795
Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/187/builds/23268
Commit: c13e9e15eb005c2645301266887c59b542d6bd10
https://github.com/llvm/llvm-project/commit/c13e9e15eb005c2645301266887c59b542d6bd10
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/unittests/TargetParser/TargetParserTest.cpp
Log Message:
-----------
[AMDGPU] Fix LDS bank count for gfx950 (#220632)
gfx950 doubled the bank count to 64 along with its larger LDS.
Moving the count out of `FeatureISAVersion9_4_Common` is required
because the emitter rejects a GPU whose feature closure sets a field
twice.
Commit: 31aaf4adb4dae834e0520144548203ecf288272c
https://github.com/llvm/llvm-project/commit/31aaf4adb4dae834e0520144548203ecf288272c
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitDeclare.cpp
Log Message:
-----------
[mlir][OpenACC] Avoid per-recipe module walks in ACCImplicitDeclare (#220478)
ACCImplicitDeclare skips unused private/firstprivate/reduction recipes
when collecting globals for implicit declare. Each skip used
getSymbolUses on the whole module, so the check was O(recipes × IR
size). Recipes are generated per type, so large modules paid for many
full scans.
Collect remaining symbol uses once and look recipes up in that set,
ignoring a recipe that only refers to its own symbol. Keep the old scan
as a fallback when getSymbolUses cannot resolve the module.
This is a ~40% gain in large TU.
Commit: 5862dad5e39aa7c3e14b6da1020afbe3def4ce49
https://github.com/llvm/llvm-project/commit/5862dad5e39aa7c3e14b6da1020afbe3def4ce49
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPC.h
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
Log Message:
-----------
PowerPC: Pass opcode through MC lowering symbol reference (#220084)
Commit: 6fca89fc81d09716bafcfdfe983bce63cf5a92d3
https://github.com/llvm/llvm-project/commit/6fca89fc81d09716bafcfdfe983bce63cf5a92d3
Author: Justin Bogner <mail at justinbogner.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/ctpop-vk.ll
Log Message:
-----------
[SPIRV] Simplify 64 bit popcount for Vulkan (#219605)
Instead of converting types using a series of vector shuffles, just use
trunc and right shift. This is simpler to implement and makes the
resulting logic easier to follow.
Commit: f62aa8433fd3e06c60baddfe5ced6824ebfcb5a4
https://github.com/llvm/llvm-project/commit/f62aa8433fd3e06c60baddfe5ced6824ebfcb5a4
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/test/TableGen/directive1.td
M llvm/test/TableGen/directive2.td
M llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
Log Message:
-----------
[NFCI] Update the directive pure-emitter to skip the switch if empty (#220255)
Since #212676, there has been a warning thanks to 'pure since' not being
on any of the OpenACC directives. This patch skips the switch and just
does a return if there are no pure directives.
Commit: dcaf16af3c1687c2b2c5aca21ca6265116dade8d
https://github.com/llvm/llvm-project/commit/dcaf16af3c1687c2b2c5aca21ca6265116dade8d
Author: Md Abdullah Shahneous Bari <md.abdullah.shahneous.bari at intel.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/lib/Dialect/Math/Transforms/AlgebraicSimplification.cpp
M mlir/test/Dialect/Math/algebraic-simplification.mlir
Log Message:
-----------
[mlir][math] Fold exp(a) / exp(b) into exp(a - b) (#220010)
Add ExpQuotientStrengthReduction to the Math algebraic simplification
patterns, rewriting `exp(a) / exp(b)` into `exp(a - b)` (and likewise
for `exp2`). This trades a division and an exponential for a
subtraction, and shows up in online-softmax kernels, where the
running-max correction term is computed as a quotient of two
exponentials.
The rewrite is not value-safe, so it is gated on `arcp` and `reassoc` on
the division: it is the fused form of the two steps LLVM's InstCombine
uses to reach the same result, `Z / exp(Y) --> Z * exp(-Y)` (needs
`arcp`) followed by `exp(X) * exp(Y) --> exp(X + Y)` (needs `reassoc`).
Besides rounding, it also changes the intermediate overflow behaviour:
for a large `a == b` the original expression is `inf / inf`, i.e. NaN,
while the folded one is `exp(0.0)`, i.e. 1.0.
Because a new exponential is created, the pattern additionally requires
that at least one of the two exponentials it feeds on dies with the
division, so the number of exponentials never grows. This is the fused
equivalent of the `isOnlyUserOfAnyOperand()` check InstCombine applies
to `exp(X) * exp(Y)`; it is marginally stronger than InstCombine, which
requires the divisor specifically to have a single use.
The new `exp` only carries the fast-math flags common to both
exponentials it replaces, so its accuracy contract cannot be loosened by
flags that only the division had.
The pattern is rooted on `arith.divf` rather than being an `arith`
canonicalization, since `arith` cannot depend on `math`.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
---------
Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
Commit: 8c4bd7f8edf36232e2687be029ce4a9554139443
https://github.com/llvm/llvm-project/commit/8c4bd7f8edf36232e2687be029ce4a9554139443
Author: Abhina Sree <Abhina.Sreeskantharajan at ibm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/cmake/modules/HandleLLVMOptions.cmake
Log Message:
-----------
[SystemZ][z/OS] Add -bcompress=yes when linking to reduce binary size (#220617)
This patch adds -bcompress=yes when linking on z/OS to reduce binary
size.
Commit: 70d088d10d207483dca826b5f51ee9d63dcb8459
https://github.com/llvm/llvm-project/commit/70d088d10d207483dca826b5f51ee9d63dcb8459
Author: Ali Bahrani <ali.bahrani94521036 at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/lib/Semantics/expression.cpp
A flang/test/Semantics/symbol34.f90
Log Message:
-----------
[Flang] Interface vs explicit intrinsics priority (#215355)
Updated `ExpressionAnalyzer::ResolveGeneric` method to prioritize
internal interface definition over explicit intrinsic in symbol resolution.
`symbol34.f90` is also added to verify the changes made to the system.
The changed flang binary passes both check-flang and check-flang unit.
Fixes #212683
Commit: 0022cd633ee5baf9ddd290f509327b19e991e289
https://github.com/llvm/llvm-project/commit/0022cd633ee5baf9ddd290f509327b19e991e289
Author: David Mentler <mentlerd at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/source/API/CMakeLists.txt
Log Message:
-----------
[lldb][NFC] CMake - Organize LLDB header rewriting targets (#213437)
Without an explicit folder 40+ targets end up in the root of the project
navigator in IDEs. Tested with Xcode.
Commit: c811f8d4120f2e1b3a02479490b9b042986fd257
https://github.com/llvm/llvm-project/commit/c811f8d4120f2e1b3a02479490b9b042986fd257
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/lib/CodeGen/Targets/Sparc.cpp
M clang/test/CodeGen/Sparc/sparc-vaarg.c
M clang/test/CodeGen/Sparc/variadic-aggregate.c
Log Message:
-----------
[Sparc][clang] implement `va_arg` in the clang frontend (#214981)
Fixes https://github.com/llvm/llvm-project/issues/214977
The LLVM `va_arg` is extremely broken on many targets (e.g.
https://github.com/llvm/llvm-project/issues/141361). Instead the
construct should be lowered in clang, which has more ABI information
available. Sparc64 already does this, this PR does the same for Sparc.
That does mean that each frontend has to replicate this logic,
unfortunate but fine.
The LLVM `va_arg` for sparc unconditionally reads arguments as direct.
That is inconsistent even with clang's own logic for passing arguments,
and diverges from GCC. Using the standard `emitVoidPtrVAArg` helper in
clang makes it much easier to handle this correctly.
For values of size 8 that are passed directly, codegen is a bit
suboptimal at the moment (see
https://github.com/llvm/llvm-project/issues/214594). That seems fine
though, and will probably be fixed soon.
Commit: 309c55493d86ba6caf2851f0df4102cf21cabe2c
https://github.com/llvm/llvm-project/commit/309c55493d86ba6caf2851f0df4102cf21cabe2c
Author: Raphael Isemann <rise at apple.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbinline.py
Log Message:
-----------
[lldb] Improve error message when inline tests fail to launch (#220621)
Currently these tests fail much later with the following error when the
process fails to launch:
```
AssertionError: False is not true : inline test did not hit a single breakpoint
```
Commit: 7fce4a344efb3cc70b6cda2cfcd70d3e5dbecab9
https://github.com/llvm/llvm-project/commit/7fce4a344efb3cc70b6cda2cfcd70d3e5dbecab9
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/lib/Parser/openmp-parsers.cpp
M flang/test/Semantics/OpenMP/doacross.f90
Log Message:
-----------
[flang][OpenMP] Accept trailing colon in DOACROSS(SOURCE:) (#218982)
Commit: 6b49d30163e975ae45bf7f10b7837f03f4f38a85
https://github.com/llvm/llvm-project/commit/6b49d30163e975ae45bf7f10b7837f03f4f38a85
Author: Yonah Goldberg <ygoldberg at nvidia.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/test/Transforms/SROA/phi-and-select.ll
A llvm/test/Transforms/SROA/phi-select-common-type.ll
M llvm/test/Transforms/SROA/select-gep.ll
M llvm/test/Transforms/SROA/struct-to-vector.ll
Log Message:
-----------
[SROA] Look through phis and selects when finding a common type (#219411)
This comes from a pattern I observed here:
[luau/TypeInfer](https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1090/files#diff-297461465cb76b2683e0c691c80fb67e5249be93aff2b14bde442885a23da9bc).
```
%zero.begin = alloca %Position ; { i32, i32 }
%zero.end = alloca %Position
store i64 0, ptr %zero.begin
store i64 0, ptr %zero.end
%begin.ptr = select i1 %has_location,
ptr %real.begin,
ptr %zero.begin
%end.ptr = select i1 %has_location,
ptr %real.end,
ptr %zero.end
%begin = load i64, ptr %begin.ptr
%end = load i64, ptr %end.ptr
```
Its clear that both allocas have a common type `i64`. You can transform
the selects into branched control flow (or speculate them) and you'll
get direct loads/stores, all `i64`, to both allocas, and you can promote
them. But `findCommonType` sees the selects and decides that there is no
common type. This patch fixes this so that we look at all the users of
the selects and see if they load/store on the common type.
I found this while trying to clean up this problematic piece of code in
`selectPartitionType`:
```
// If the partition is an integer array that can be spanned by a legal
// integer type, prefer to represent it as a legal integer type because
// it's more likely to be promotable.
if (TypePartitionTy->isArrayTy() &&
TypePartitionTy->getArrayElementType()->isIntegerTy() &&
DL.isLegalInteger(P.size() * 8))
TypePartitionTy = Type::getIntNTy(C, P.size() * 8);
```
At this point in the function we know that the type of the alloca is an
aggregate or a vector and that there is no common type used in the
alloca slices. The goal is that if you choose an integer type for the
alloca then you will rewrite all the alloca slices to operate on an
integer type and hopefully promote. There are two problems with this
piece of code:
1. The decision we make depends on the type of the alloca! We will
select an integer type if the alloca type is an integer array, but not a
float array, and not any struct.
2. We might select the integer type, rewrite all the slices to integer
operations, which could add bitcasts, and then not promote.
Tying this back to my select look-through optimization, I found this
when experimenting if I can extend this array -> int conversion to not
depend on the type, i.e. also do this for struct types. This
incidentally improved the above pattern because we will select `i64` for
the `%Position` struct. Then SROA says this is potentially promotable
because all the loads/stores are of the same type as the alloca and then
it speculates the selects and promotes. But this is basically
accidentally discovering that there is a common type for the
alloca--`findCommonType` should've been able to detect this earlier. I
want to reduce the impact of this problematic array -> int conversion, I
think there's more to do.
llvm-opt-benchmark results look pretty good. There are a couple small
regressions that look like they come from incidentally choosing a better
type for the alloca. One small CFG difference. One real regression is
from picking a `ptr` type to promote with because looking through
selects gives us this type. So you end up with IR that looks like:
```
%a = load i64, ptr %source
%b = load ptr, ptr %source.plus8
...
store i64 %a, ptr %destination
store ptr %b, ptr %destination.plus8
```
Where the new `ptr` type is from this select look-through, whereas
before it would've chosen `i64` from the array -> int conversion logic.
Previously the SLPVectorizer would've been able to vectorize the two
loads and stores, but now we have different types so it can't. This
seems like more of a bug with SLPVectorizer than SROA. SROA just wants
to choose the best type for the slice from the information it has.
Edit: forgot to say assisted by AI, especially for combing through
llvm-opt-benchmark data
Commit: 3a978837a3bf9cfc5336d8d735134a3faf92a957
https://github.com/llvm/llvm-project/commit/3a978837a3bf9cfc5336d8d735134a3faf92a957
Author: Kaitlin Peng <kaitlinpeng at microsoft.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/include/clang/Basic/HLSLIntrinsics.td
M clang/lib/CodeGen/CGBuiltin.cpp
A clang/test/CodeGenHLSL/builtins/max_mat.hlsl
A clang/test/CodeGenHLSL/builtins/min_mat.hlsl
A clang/test/SemaHLSL/BuiltIns/max_mat-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/min_mat-errors.hlsl
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/max_mat.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/min_mat.ll
Log Message:
-----------
[Matrix] Implement matrix support for the `max` and `min` intrinsics (#219537)
Closes #184511 and #184512.
This PR implements the matrix api for `max` and `min` in
`HLSLintrinsics.td`, adds matrix codegen tests, matrix sema tests, and
SPIRV matrix backend tests. DirectX matrix backend tests were not added
because no DirectX backend changes were made.
Assisted-by: Claude Opus 4.8
Commit: 6eb78d3be1ac2f5163fd8a21e19379c4b639d782
https://github.com/llvm/llvm-project/commit/6eb78d3be1ac2f5163fd8a21e19379c4b639d782
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M libc/src/__support/CPP/span.h
M libc/test/src/__support/CPP/span_test.cpp
Log Message:
-----------
[libc][CPP] Align span copy and conversion with std::span (#220619)
Bring cpp::span copy and converting operations in line with C++20
std::span ([span.overview], [span.cons]):
* Add defaulted copy assignment operator: C++20 std::span declares
constexpr span& operator=(const span&) noexcept = default; Providing an
explicit defaulted copy assignment operator matches std::span and avoids
-Wdeprecated-copy-with-dtor warnings in consuming code when
copy-assigning spans.
* Take const span<U>& in converting constructor and operator=: C++20
[span.cons] specifies converting construction from const span&.
Previously taking span<U>& prevented converting from const spans and
binding to rvalue temporaries (such as s = s.subspan(1)).
* Update span.h and span_test.cpp headers to standard LLVM style.
* Add unit tests for copy assignment, rvalue temporaries, and converting
assignment.
Assisted-by: Automated tooling, human reviewed.
Commit: db6a71f06492ff39e8de649432ce0ffa69afb566
https://github.com/llvm/llvm-project/commit/db6a71f06492ff39e8de649432ce0ffa69afb566
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-flog.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-flog10.mir
Log Message:
-----------
[AMDGPU] Carry the log expansion flags through its f32 round trip (#219724)
The f16 log and log10 expansion promotes to f32 and rounds back.
GlobalISel built that G_FPEXT and G_FPTRUNC pair with no flags at all,
where the SelectionDAG FP_EXTEND and FP_ROUND have always carried them,
so hand them the expansion's flags too.
Commit: 93aa6c4b53d28c19aeeaa8c3f00ba07ebf24a10b
https://github.com/llvm/llvm-project/commit/93aa6c4b53d28c19aeeaa8c3f00ba07ebf24a10b
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCUtils.h
M flang/lib/Optimizer/OpenACC/Analysis/FIROpenACCSupportAnalysis.cpp
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCUtils.cpp
M flang/test/Transforms/OpenACC/offload-target-verifier.fir
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
M mlir/test/Dialect/OpenACC/offload-target-verifier.mlir
M mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp
Log Message:
-----------
[flang][acc] Extend coverage for offload target verifier (#220468)
This PR builds upon acc::isValidSymbolUse and acc::isValidValueUse to
ensure that FIR and CUF specific handling is considered.
FIR now provides fir::acc::isValidSymbolUse and
fir::acc::isValidValueUse. Symbol uses treat Fortran runtime and
non-host CUDA Fortran procedures as valid, and accept fir.use_stmt
references that may have no local definition. Value uses accept FIR
scalars that are passed by value, including those reachable through
declare and similar wrappers, and allow trivially copyable scalars into
CUF kernels.
The OpenACC analysis delegates to these utilities. The dialect helpers
are extended so symbols defined in a gpu.module and arguments of an acc
routine are treated as already on the device.
Commit: 8f246da53a88e09be825ffe94da5e7d07a3c5fc6
https://github.com/llvm/llvm-project/commit/8f246da53a88e09be825ffe94da5e7d07a3c5fc6
Author: Bar Soloveychik <barsolo at meta.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/include/lldb/Utility/RegisterType.h
M lldb/source/Core/DumpRegisterInfo.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.cpp
M lldb/source/Utility/RegisterType.cpp
A lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterVector.py
M lldb/unittests/Core/DumpRegisterInfoTest.cpp
M lldb/unittests/Utility/RegisterTypeTest.cpp
Log Message:
-----------
[lldb] Parse GDB remote register vector types (#219255)
- Add the `RegisterTypeVector` metadata representation.
- Parse `<vector>` elements from GDB target-description XML.
- Support builtin elements and previously defined nested vectors.
- Validate counts, sizes, duplicates, unsupported types, and feature
scoping.
- Display the vector element count in `register info`.
- Add parsing, serialization, nesting, and invalid-input tests.
Nested example:
```
<vector id="v2f" type="ieee_single" count="2"/>
<vector id="v2v2f" type="v2f" count="2"/>
```
`v2v2f` contains two elements, each containing two floats.
---------
Co-authored-by: Bar Soloveychik <barsolo at fb.com>
Commit: 5debe9926afa97f0181db244532b4df59c7b86a4
https://github.com/llvm/llvm-project/commit/5debe9926afa97f0181db244532b4df59c7b86a4
Author: cmtice <cmtice at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[bazel][lldb] Update lldb's BUILD.bazel file to fix failure. (#220692)
https://github.com/llvm/llvm-project/pull/216389 introduced some new
dependencies for some lldb Plugin builds that were not reflected in the
bazel file. This fixes that issue.
Commit: 437f88f61b16e5564713d0058433f4b34c41bf51
https://github.com/llvm/llvm-project/commit/437f88f61b16e5564713d0058433f4b34c41bf51
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmin.ll
M llvm/test/CodeGen/AMDGPU/atomicrmw_usub_sat.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/insert-waitcnts-gfx12-wbinv.mir
M llvm/test/CodeGen/AMDGPU/insert_waitcnt_for_precise_memory.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/waitcnt-loop-carried-fence-drain-gfx12.mir
M llvm/test/CodeGen/AMDGPU/waitcnt-loop-carried-fence-drain.mir
Log Message:
-----------
[AMDGPU][SIInsertWaitcnts] Fix soft wait removal with loop-carried deps (#220357)
The code that checked if a soft waitcnt (such as the one insterted by
a release fence on LDS) was redundant didn't correctly account for the
fact that that, for example, the previous iteration of a loop could
have introduced memory traffic that needs to be waited on. This bug
appeared to be fairly rare in practice (probably due to the
instruction scheduler shuffling around code in t bad form) but it can
happen.
The fix is that, instad of immediately erasing "redundant" waits, we
add them to a set of waits to be erased, and then remove them from the
set if they prove to be truly redundant.
This has the side effect of fixing a correctness issue around the CAS
loops we emit on gfx1250 - the global_inv we emit after the
`s_loadcnt 0x0` is itself a `loadcnt`-able event, and so needs to be
forced to completion before the next iteration of the CAS loop.
AI disclosure: Claude came up with the overall shape of the solution
after a few pokes, but I've looked it over and reviewed off the worst
of the problems.
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
Commit: 38214070bb4a8d1d7ef116a2054a4751d89ec458
https://github.com/llvm/llvm-project/commit/38214070bb4a8d1d7ef116a2054a4751d89ec458
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/lib/Dialect/Math/Transforms/SincosFusion.cpp
Log Message:
-----------
[mlir][math][NFC] Avoid greedy rewriter in sincos fusion (#220687)
This pass only pairs a math.sin with a matching math.cos in the
same block. Running that through applyPatternsGreedily still folds,
CSEs constants, and simplifies regions over the whole module for up to
ten iterations, which dominates the cost of the pass on large modules.
Replace the greedy driver with a walk over math.sin that looks at the
operand's users. Collect fusion pairs first so replacing a math.cos
cannot invalidate the walk, and pick the earliest unpaired matching
cos so the result does not depend on use-list order.
Commit: aa3cf8c58988d7b31ec92c394fc349746a0e1e40
https://github.com/llvm/llvm-project/commit/aa3cf8c58988d7b31ec92c394fc349746a0e1e40
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/test/TableGen/directive1.td
M llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
Log Message:
-----------
[NFC] Post Commit Feedback from 220255 (#220684)
Commit: 11bc6ce46e227718c3b54aa6889d7458656e8ab4
https://github.com/llvm/llvm-project/commit/11bc6ce46e227718c3b54aa6889d7458656e8ab4
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Support/VirtualOutputBackends.cpp
Log Message:
-----------
[Support] Don't create unbuffered stream in MirroringOutputBackend (#220648)
MirroringOutputBackend is creating underlying stream to be unbuffered
with the intention to avoid double buffering. But if mirrored stream
needs to perform file system write, this results in unbuffered write to
file system and can cause significant I/O overhead which completely
outweights the benefit. Disable the default unbuffered stream setting to
fix the slowdown when using MirroringOutputBackend.
rdar://186469637
Commit: ffa30efb40250e555a23890eb1d22d317b5ba264
https://github.com/llvm/llvm-project/commit/ffa30efb40250e555a23890eb1d22d317b5ba264
Author: Matsu <47756807+khaki3 at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/lib/Lower/OpenACC.cpp
A flang/test/Lower/OpenACC/acc-declare-allocatable-deallocate.f90
M flang/test/Lower/OpenACC/acc-declare-unified.f90
M flang/test/Lower/OpenACC/acc-declare-use-associated-allocatable.f90
M flang/test/Lower/OpenACC/acc-declare.f90
Log Message:
-----------
[flang][OpenACC] Release declare-create allocatable on deallocate (#220541)
Example:
```fortran
module m
real(8), allocatable, save :: a(:)
!$acc declare create(a)
end module
program p
use m
do i = 1, 3
allocate(a(n))
!$acc update device(a)
deallocate(a) ! device buffer is never released: 8*n
end do ! bytes leak on every iteration
end program
```
For a declare-create allocatable the device copy's lifetime follows the
host allocation, so it has to be released before that allocation is
freed. Lowering wraps each Fortran DEALLOCATE in two hooks, differing
only in when they run:
```
call a_acc_declare_pre_dealloc() ! host storage still allocated
<host deallocate> ! storage freed
call a_acc_declare_post_dealloc() ! host storage already gone
```
Both hooks take the same `fir.address_of(@_QMmEa)`, the address of the
descriptor, so at first glance either could do the release. But the
mapping is keyed on the *data* address held inside that descriptor, not
on the descriptor itself. The descriptor's address is a fixed global and
identical in both hooks; its contents are not, because the deallocation
clears the base address. The pre hook therefore reads a live data
address that resolves to the mapping, while the post hook reads a
cleared one that resolves to nothing.
The hooks are attached accordingly, the pre one where the data address
is read while still valid, the post one where the emptied descriptor is
stored back:
```mlir
%4 = fir.box_addr %3 {acc.declare_action = <preDealloc = ...>}
fir.store %7 to %2#0 {acc.declare_action = <postDealloc = ...>}
```
For a module allocatable no pre hook was emitted at all and the release
was left to the post hook, which runs too late to resolve anything, so
every allocate/deallocate cycle leaks a device buffer.
Before, with no pre hook emitted:
```mlir
func.func @_QMmEa_acc_declare_post_dealloc()
attributes {acc.declare_action} {
%0 = fir.address_of(@_QMmEa) : !fir.ref<!fir.box<...>>
%1 = acc.getdeviceptr varPtr(%0 : ...) dataClause(acc_create)
structured(false) implicit(true) name("a") -> ...
acc.declare_exit dataOperands(%1 : ...)
return
}
```
After, the release moves to the pre hook and the post hook is gone:
```mlir
func.func @_QMmEa_acc_declare_pre_dealloc()
attributes {acc.declare_action} {
%0 = fir.address_of(@_QMmEa) : !fir.ref<!fir.box<...>>
%1 = acc.getdeviceptr varPtr(%0 : ...) dataClause(acc_create)
structured(false) name("a") -> ...
acc.declare_exit dataOperands(%1 : ...)
return
}
```
This keeps one decrement against the one post-alloc increment. Device
address per iteration of the case above:
| | iter 1 | iter 2 | iter 3 |
|---|---|---|---|
| before | `0x..2fa000` | `0x..302000` | `0x..30a000` |
| after | `0x..2fa000` | `0x..2fa000` | `0x..2fa000` |
A module variable now gets neither a post-dealloc recipe nor a
post-dealloc action, since it could do nothing at the point it runs.
Local variables keep theirs, including a local declared inside a module
subprogram. A using unit declares the pre-dealloc recipe, otherwise the
action attached there names a symbol that does not resolve and the
release is silently dropped for separate compilation.
`acc-declare.f90`, `acc-declare-unified.f90` and
`acc-declare-use-associated-allocatable.f90` asserted the post-dealloc
recipe and action for module variables; those expectations are removed.
Commit: d27b8b182b92376a64963f9d9a0a4a100c25a6e0
https://github.com/llvm/llvm-project/commit/d27b8b182b92376a64963f9d9a0a4a100c25a6e0
Author: Tomohiro Kashiwada <kikairoya at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Cygwin.cpp
M clang/lib/Driver/ToolChains/Cygwin.h
M clang/test/Driver/cygwin.cpp
Log Message:
-----------
[Clang][Cygwin] Make -fno-use-init-array default in the driver (#220530)
Cygwin uses the .ctors section for constructors.
We already do the same for the MinGW target (#68571), so align with
that.
Commit: 9088c7558531bbe29398ba9f6a962a5e0a7e81af
https://github.com/llvm/llvm-project/commit/9088c7558531bbe29398ba9f6a962a5e0a7e81af
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/AST/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/Sema/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/offload-arch/BUILD.gn
M llvm/utils/gn/secondary/compiler-rt/lib/sanitizer_common/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/CodeGenTypes/BUILD.gn
Log Message:
-----------
[gn build] Port commits (#220704)
1a36cbff3928
71b1aad24042
a26d1318959d
Also format all gn files
Commit: 6ed299c32b9d23be93d076d476c4d9a661ed6006
https://github.com/llvm/llvm-project/commit/6ed299c32b9d23be93d076d476c4d9a661ed6006
Author: Stan Ulbrych <stan at python.org>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M compiler-rt/lib/fuzzer/FuzzerLoop.cpp
A compiler-rt/test/fuzzer/stop-file.test
Log Message:
-----------
[libFuzzer] Make -stop_file work with empty files (#220641)
Fixes: https://github.com/llvm/llvm-project/issues/72334. The -stop_file
flag is documented as "Stop fuzzing ASAP if this file exists", but the
fuzzing loop checked it by reading the file and testing that the result
is non-empty. Instead, check for the file's existence with IsFile.
Commit: 4b5f5954ea4b918b4ef0ec689a26a67693ca7b06
https://github.com/llvm/llvm-project/commit/4b5f5954ea4b918b4ef0ec689a26a67693ca7b06
Author: Andrew Lazarev <alazarev at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
A clang/docs/HardwareAssistedAddressSanitizer.md
M clang/docs/index.md
Log Message:
-----------
[clang][docs] Add basic user documentation for Hardware-assisted AddressSanitizer (HWASan) (#220075)
Create a basic user-facing guide for Hardware-assisted AddressSanitizer
(HWASan / `-fsanitize=hwaddress`) covering:
- Overview of HWASan and detectable bug types
- Supported platforms
- Basic usage example and crash report
- Passing runtime options via `HWASAN_OPTIONS`
- Disabling instrumentation via attribute and feature check
- Link to `HardwareAssistedAddressSanitizerDesign` for details
Co-authored-by: Gemini <noreply at google.com>
---------
Co-authored-by: Vitaly Buka <vitalybuka at google.com>
Co-authored-by: Gemini <noreply at google.com>
Commit: d8bc63965fcea52586e75490641e27c132add377
https://github.com/llvm/llvm-project/commit/d8bc63965fcea52586e75490641e27c132add377
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Utils/LoopVersioning.cpp
A llvm/test/Transforms/LoopVersioning/preserved-analyses.ll
Log Message:
-----------
[LoopVersioning] Mark DT, LI and MSSA as perserved. (#220537)
Mark analyses as preserved. Follow-up to
https://github.com/llvm/llvm-project/pull/220290.
PR: https://github.com/llvm/llvm-project/pull/220537
Commit: d03598d71c0612c829d8ea0a860ff68189c7f069
https://github.com/llvm/llvm-project/commit/d03598d71c0612c829d8ea0a860ff68189c7f069
Author: Emilio Cota <ecg at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
A llvm/test/Instrumentation/MemorySanitizer/modf-sincos.ll
Log Message:
-----------
[msan] handle modf, sincos and sincospi intrinsics (#220416)
These intrinsics compute two values from a single floating-point (or
vector of floating-point) operand, returning a 2-element struct {T,T}.
Because of the struct return type, they bypass the generic nomem
intrinsic heuristic and fall back to strict operand shadow checks in
visitInstruction. This causes false positives on vector operations with
inactive/masked lanes, and zeroes out the result shadow.
Fix this by propagating the operand shadow and origin to both elements
of the result struct.
Commit: ad26dd521b5add67c312f41a7fdf4f5fadcb548f
https://github.com/llvm/llvm-project/commit/ad26dd521b5add67c312f41a7fdf4f5fadcb548f
Author: cmtice <cmtice at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Fix mlir bazel build failure. (#220706)
Add bazel dependency for mlir that was introduced in
https://github.com/llvm/llvm-project/pull/220468
Commit: f1b5015f8cb61dffe5f740cdf105882ff6a76938
https://github.com/llvm/llvm-project/commit/f1b5015f8cb61dffe5f740cdf105882ff6a76938
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/VPlan/epilogue-vectorization-printing.ll
M llvm/test/Transforms/LoopVectorize/branch-weights.ll
Log Message:
-----------
[LV] Add tests for epilogue vectorization of folded bypass checks (NFC). (#220703)
Add vplan printing and branch weights tests with various cases where
parts of the epilogue skeleton can be folded.
Commit: 6a891b1d3f8e63511193ebacbeac9482f0b75e93
https://github.com/llvm/llvm-project/commit/6a891b1d3f8e63511193ebacbeac9482f0b75e93
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang-rt/unittests/CMakeLists.txt
Log Message:
-----------
[flang-rt] Resolve unit test shared library paths (#220693)
This PR resolves a problem with finding the libflang_rt.runtime.so
library when running flang-rt unit tests whose failure looked like:
FAIL: flang-rt-Unit ::
Runtime/CUDA/./FlangCufRuntimeTests/failed_to_discover_tests_from_gtest
(1 of 17)
******************** TEST 'flang-rt-Unit ::
Runtime/CUDA/./FlangCufRuntimeTests/failed_to_discover_tests_from_gtest'
FAILED ********************
********************
FAIL: flang-rt-Unit ::
Runtime/./RuntimeTests/failed_to_discover_tests_from_gtest (2 of 17)
******************** TEST 'flang-rt-Unit ::
Runtime/./RuntimeTests/failed_to_discover_tests_from_gtest' FAILED
********************
********************
FAIL: flang-rt-OldUnit :: Evaluate/ISO-Fortran-binding.test (3 of 17)
******************** TEST 'flang-rt-OldUnit ::
Evaluate/ISO-Fortran-binding.test' FAILED ********************
PATH_TO_FLANG_RT/unittests/Evaluate/ISO-Fortran-binding.test: error
while loading shared libraries: libflang_rt.runtime.so: cannot open
shared object file: No such file or directory
********************
FAIL: flang-rt-OldUnit :: Evaluate/reshape.test (4 of 17)
******************** TEST 'flang-rt-OldUnit :: Evaluate/reshape.test'
FAILED ********************
PATH_TO_FLANG_RT/unittests/Evaluate/reshape.test: error while loading
shared libraries: libflang_rt.runtime.so: cannot open shared object
file: No such file or directory
********************
********************
Failed Tests (4):
flang-rt-OldUnit :: Evaluate/ISO-Fortran-binding.test
flang-rt-OldUnit :: Evaluate/reshape.test
flang-rt-Unit ::
Runtime/./RuntimeTests/failed_to_discover_tests_from_gtest
flang-rt-Unit ::
Runtime/CUDA/./FlangCufRuntimeTests/failed_to_discover_tests_from_gtest
Commit: dbee54a34764b5c1279bcab41d34fe5173b308a2
https://github.com/llvm/llvm-project/commit/dbee54a34764b5c1279bcab41d34fe5173b308a2
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/include/mlir/IR/AsmState.h
M mlir/unittests/IR/AttributeTest.cpp
Log Message:
-----------
[mlir][IR] Initialize empty AsmResourceBlob mutability (#220586)
The default constructor leaves dataIsMutable indeterminate even though
isMutable may be called on an empty blob. Treat default-constructed
blobs as immutable and cover that state with a unit test.
Valgrind pre-fix trace:
```
Invalid read of size 8
at testing::Test::Run()
Invalid write of size 8
Invalid free() / delete / delete[] / realloc()
ERROR SUMMARY: 6 errors from 6 contexts
```
Found by Coverity.
Assisted-by: Codex
Commit: def96c408e121a89ef379af5597dae25b0a583e8
https://github.com/llvm/llvm-project/commit/def96c408e121a89ef379af5597dae25b0a583e8
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/include/mlir/IR/OpImplementation.h
M mlir/unittests/IR/CMakeLists.txt
A mlir/unittests/IR/OpImplementationTest.cpp
Log Message:
-----------
[mlir][IR] Initialize empty dialect resource handles (#220585)
A default AsmDialectResourceHandle leaves its dialect pointer
indeterminate. Initialize the pointer to null and test all
default-handle accessors.
Valgrind pre-fix trace:
```
OpImplementationTest.cpp:19: Failure
Expected equality of handle.getDialect() and nullptr
handle.getDialect() was 0x120b508
1 FAILED TEST
```
Found by Coverity.
Assisted-by: Codex
Commit: ecad6d43ccf0246203995a5e0ce98c60c3035184
https://github.com/llvm/llvm-project/commit/ecad6d43ccf0246203995a5e0ce98c60c3035184
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
A llvm/test/DebugInfo/AArch64/concrete-lb-for-abstract-lb.ll
Log Message:
-----------
[DebugInfo] Create concrete lexical block DIEs of scopes with abstract LB DIEs (#220392)
If a lexical scope has an abstract lexical block DIE, do not skip
emission of concrete lexical block DIEs for it in
`DwarfCompileUnit::createAndAddScopeChildren()`, since abstract lexical
block DIE contains children relevant for location ranges of the scope.
Commit: 136f049c0f822db05bad4c946dadf3dc112ccd4c
https://github.com/llvm/llvm-project/commit/136f049c0f822db05bad4c946dadf3dc112ccd4c
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/test/mlir-tblgen/op-format.td
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
Log Message:
-----------
[mlir][ODS] Suppress generated ArrayRef Coverity warning (#220601)
Declarative parsers represent fixed-length operands and types as
ArrayRefs to scalar storage. Coverity loses the explicit length at
resolveOperands calls and reports ARRAY_VS_SINGLETON for the generated
code.
Emit the checker-specific suppression at those generated call sites and
test that it remains in the generated parser.
Found by Coverity.
Assisted-by: Codex
Commit: 1cc92d2b4278eefa2413e4fe830595868192508c
https://github.com/llvm/llvm-project/commit/1cc92d2b4278eefa2413e4fe830595868192508c
Author: Bill Wendling <isanbard at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp
A llvm/test/CodeGen/XCore/tls-unsized.ll
A llvm/test/CodeGen/XCore/tls-zero-length-array.ll
Log Message:
-----------
[XCore] Fix crash lowering unsized/zero-length-array thread_local globals (#220543)
XCoreLowerThreadLocal expands each thread-local global into an array
with one slot per hardware thread, indexed by core ID -- that requires a
known per-element size. Its "skip what we can't lower" guard was
checking GV->getType()->isSized(), but that's the global's pointer type,
which is always sized regardless of what it points to. The intended
check -- reject an unsized or zero-length-array value type -- was
therefore dead code, and the pass went ahead and built an ArrayType over
the unsized type anyway, producing a malformed GEP that only failed much
later (and much less clearly): a "Broken function found" MachineVerifier
abort, or, if the size check alone is fixed without also handling the
fallthrough, an opaque "SelectionDAGISel::CannotYetSelect" on a
bare GlobalTLSAddress node, since nothing downstream has a fallback
for a global this pass declines to lower.
Fixed by checking whether the pointee type can't be "sized" or its
GV->getGlobalSize() != 0. If so, we report a failure that better points out
the actual issue rather than an ICE somewhere further along in the code.
Fixes https://github.com/llvm/llvm-project/issues/4911.
Assisted-by: Claude Sonnet 5
Commit: 6133326eb4ccb18abbbe6c76b739dbdf19463c55
https://github.com/llvm/llvm-project/commit/6133326eb4ccb18abbbe6c76b739dbdf19463c55
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
A llvm/test/Transforms/ConstraintElimination/induction-symbolic-start-postinc.ll
Log Message:
-----------
[ConstraintElim] Allow a non-constant start values in addInfoForInduct. (#220262)
Generalize the logic to add bounds for IVs with symbolic start values.
At this point we are adding bounds for an exiting condition of the form
'(PN + Step) Pred B', where Pred is either NE or EQ, and have already
established that B - Start is a multiple of the induction step. Hence
Start < B implies Start + Step <= B, and the loop exits at
PN + Step == B before PN wraps.
So there is no need to check if Start + Step wraps separately, as long
as we use a strict predicate for the Start < B precondition.
This enables additional simplifications in a number of cases:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1159
Compile-time impact is in the noise:
https://llvm-compile-time-tracker.com/compare.php?from=b5eb118e0426552dfddf1fa65e002842326b0a8a&to=660f01002fd5f767cade3ba245201558a65d0db0&stat=instructions:u
Alive2 Proofs: https://alive2.llvm.org/ce/z/iuLsTc
PR: https://github.com/llvm/llvm-project/pull/220262
Commit: cf14e417f808154529fbe1f402d5e6dbf74ff8d4
https://github.com/llvm/llvm-project/commit/cf14e417f808154529fbe1f402d5e6dbf74ff8d4
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/Reassociate.cpp
M llvm/test/Transforms/Reassociate/fma-pairs.ll
Log Message:
-----------
[Reassociate]Reject fma pairs with a multi-use fmul addend
Keeping such pairs frozen hid shared partial sums from reassociation.
Fixes the vbor regression from #215873 left over after #218675.
Assisted-by: Cursor
Reviewers: krzysz00, dtcxzyw, hazzlim
Pull Request: https://github.com/llvm/llvm-project/pull/220640
Commit: 480ae809e2950ddce41544912c7f55a23712ac33
https://github.com/llvm/llvm-project/commit/480ae809e2950ddce41544912c7f55a23712ac33
Author: Will Hawkins <hawkinsw at obs.cr>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/include/lldb/ValueObject/DILEval.h
M lldb/source/ValueObject/DILEval.cpp
A lldb/test/API/commands/frame/var-dil/basics/PersistentResultVariableLookup/Makefile
A lldb/test/API/commands/frame/var-dil/basics/PersistentResultVariableLookup/TestFrameVarDILPersistentResultVariableLookup.py
A lldb/test/API/commands/frame/var-dil/basics/PersistentResultVariableLookup/main.cpp
Log Message:
-----------
[lldb] Support Persistent Variables as DIL Identifiers (#215706)
When a persistent variable is used in a DIL expression, look it up as if
it were any other identifier.
Signed-off-by: Will Hawkins <hawkinsw at obs.cr>
Co-authored-by: Ilia Kuklin <kuklin.iy at mail.ru>
Commit: 96cb9c493b96f1ddf0c47c3bb7c1195b88148ec7
https://github.com/llvm/llvm-project/commit/96cb9c493b96f1ddf0c47c3bb7c1195b88148ec7
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/include/mlir/Conversion/ArithCommon/AttrToLLVMConverter.h
M mlir/include/mlir/Conversion/LLVMCommon/Pattern.h
M mlir/include/mlir/Conversion/LLVMCommon/VectorPattern.h
M mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
M mlir/include/mlir/Dialect/LLVMIR/BasicPtxBuilderInterface.td
M mlir/include/mlir/Dialect/LLVMIR/LLVMInterfaces.td
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/include/mlir/Dialect/XeGPU/Transforms/XeGPULayoutImpl.h
M mlir/include/mlir/IR/SymbolInterfaces.td
M mlir/include/mlir/IR/SymbolTable.h
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
M mlir/lib/Conversion/ComplexToLLVM/ComplexToLLVM.cpp
M mlir/lib/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.cpp
M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
M mlir/lib/Conversion/GPUCommon/IndexIntrinsicsOpLowering.h
M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
M mlir/lib/Conversion/LLVMCommon/LowerFunctionDiscardablesToLLVM.cpp
M mlir/lib/Conversion/LLVMCommon/Pattern.cpp
M mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp
M mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
M mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
M mlir/lib/Dialect/AMDGPU/Transforms/EmulateAtomics.cpp
M mlir/lib/Dialect/AMDGPU/Transforms/MaskedloadToLoad.cpp
M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
M mlir/lib/Dialect/GPU/IR/InferIntRangeInterfaceImpls.cpp
M mlir/lib/Dialect/GPU/Transforms/EliminateBarriers.cpp
M mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
M mlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
M mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
M mlir/lib/Dialect/LLVMIR/Transforms/RequestCWrappers.cpp
M mlir/lib/Dialect/NVGPU/IR/NVGPUDialect.cpp
M mlir/lib/Dialect/NVGPU/Transforms/MmaSyncTF32Transform.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUBlocking.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToLaneDistribute.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUUnroll.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
M mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
M mlir/lib/IR/SymbolTable.cpp
M mlir/lib/Target/LLVM/XeVM/Target.cpp
M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMIRToLLVMTranslation.cpp
M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
M mlir/lib/Target/LLVMIR/Transforms/TargetToDataLayout.cpp
M mlir/lib/Target/LLVMIR/Transforms/TargetToTargetFeatures.cpp
A mlir/test/Conversion/ArithToLLVM/attribute-storage.mlir
M mlir/test/Conversion/MathToXeVM/math-to-xevm.mlir
M mlir/test/Dialect/XeGPU/xegpu-blocking.mlir
M mlir/test/lib/Dialect/LLVM/TestPatterns.cpp
M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
M mlir/test/lib/Dialect/XeGPU/TestXeGPUTransforms.cpp
M mlir/unittests/Dialect/LLVMIR/CMakeLists.txt
A mlir/unittests/Dialect/LLVMIR/LLVMAttrsTest.cpp
M mlir/unittests/IR/SymbolTableTest.cpp
M mlir/unittests/Target/LLVM/SerializeToLLVMBitcode.cpp
Log Message:
-----------
[mlir][LLVM][GPU] Migrate to explicit split inherent/discardable attribute APIs access (#218921)
Use discardable attribute APIs and typed operation accessors throughout
the LLVM and GPU dialect families, their conversions, translations, and
tests.
Assisted-by: Codex
Commit: fc1ab1f288992fd22b4f562557ea38b0cc8f9aaf
https://github.com/llvm/llvm-project/commit/fc1ab1f288992fd22b4f562557ea38b0cc8f9aaf
Author: dmaclach <dmaclach at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
M clang/include/clang/Tooling/Inclusions/HeaderIncludes.h
M clang/lib/Format/Format.cpp
M clang/lib/Tooling/Inclusions/HeaderIncludes.cpp
M clang/unittests/Format/CleanupTest.cpp
M clang/unittests/Tooling/HeaderIncludesTest.cpp
Log Message:
-----------
[clang][include cleaner] Fix MainHeader insertion issue (#212852)
When doing multiple header insertions (like from include cleaner) there
was an issue with MainHeaders inserted in the wrong location.
HeaderIncludes now supports a bulk insertion where it sorts the
insertions appropriately before inserting them to make sure that the
MainHeader ends up in the correct location.
Format.cpp has been updated to use the bulk insertion method correctly.
Tests added to verify.
Commit: 54f8aa7615bb293e0a8cd6f22bd0e3107f3809f8
https://github.com/llvm/llvm-project/commit/54f8aa7615bb293e0a8cd6f22bd0e3107f3809f8
Author: Hansang Bae <hansang.bae at intel.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M offload/liboffload/include/OffloadImpl.hpp
M offload/liboffload/src/OffloadImpl.cpp
Log Message:
-----------
[Offload] Address static analyzer hits (#220725)
Address uninitialized variable and unreachable code.
Commit: 4fbc7d8992dbd21f5a0ea0f09fe647c81b1a8c77
https://github.com/llvm/llvm-project/commit/4fbc7d8992dbd21f5a0ea0f09fe647c81b1a8c77
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
M mlir/test/Dialect/OpenACC/invalid.mlir
Log Message:
-----------
[mlir][OpenACC] Reject unsupported routine bind attributes (#220710)
Require each routine bind item to be a symbol reference or string
attribute. Other successfully parsed attributes left the kind
discriminator uninitialized and were silently dropped.
Found by Coverity.
Assisted-by: Codex
Commit: 1ab694784c99087e0f2828267b0497c91dfc66c3
https://github.com/llvm/llvm-project/commit/1ab694784c99087e0f2828267b0497c91dfc66c3
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
A llvm/test/CodeGen/RISCV/convert-from-arbitrary-fp.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vector-convert-from-arbitrary-fp.ll
Log Message:
-----------
[SelectionDAG] Do not use illegal type when expanding `CONVERT_FROM_ARBITRARY_FP` (#219597)
During `CONVERT_FROM_ARBITRARY_FP`'s expansion, it'll try to create
intermediate integer values with the same width as the floating point
result. However, that integer type might not be legal, and would cause
problem when dealing with scalar version of `CONVERT_FROM_ARBITRARY_FP`.
For example, in the attached LIT tests, it'll generate something like
```
t58: f32 = convert_from_arbitrary_fp t57, TargetConstant:i32<7>
```
after type legalization. While f32 is a legal type, its integer
counterpart with the same width, i32, is not a legal type in RV64.
This patch fixes such problem by using the legal type for those
intermediate values, if the legal type is wider.
Commit: 71a85ef89fc1997205104b72447e0dc2c4ad83da
https://github.com/llvm/llvm-project/commit/71a85ef89fc1997205104b72447e0dc2c4ad83da
Author: Romaric Jodin <rjodin at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_remquo_stret.inc
Log Message:
-----------
[libclc] Fix remainder calculation in clc_remquo for subnormals (#217925)
The remainder t was previously computed using:
__CLC_GENTYPE t = __clc_mad(y, -__CLC_CONVERT_GENTYPE(qsgn), x);
Multiplying y by -qsgn (+-1.0) introduces an unnecessary intermediate
multiplication step. On platforms or execution modes where subnormals
are flushed to zero computing `y * -qsgn` can prematurely flush a
subnormal `y` to zero, resulting in `0.0 + x = x` instead of computing
the subtraction `x - y` (or `x + y`).
Replace `__clc_mad` with a direct addition/subtraction based on the sign
of the quotient:
__CLC_GENTYPE t = qsgn > 0 ? (x - y) : (x + y);
This avoids multiplication by +-1.0, eliminates unwanted subnormal
flushing on intermediate products in FTZ modes, and computes the exact
remainder.
Commit: 80c5684afdbfa597207a9544e2b2e4b1d8a0f55d
https://github.com/llvm/llvm-project/commit/80c5684afdbfa597207a9544e2b2e4b1d8a0f55d
Author: Nadharm <ndhiantravan at nvidia.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/IR/Module.h
M llvm/unittests/IR/ModuleTest.cpp
Log Message:
-----------
[llvm] Use ValueMap for ValueToGUIDMap (#220682)
ValueToGUIDMap currently uses a DenseMap which does not properly track
the deletion of Values, leaving dangling pointers in the map.
This change fixes this by using ValueMap. FollowRAUW is set to false to
match the current behavior of DenseMap.
This bug was discovered by a sanity test for deterministic compilation
where, depending on the allocator state, a newly allocated Value could
re-use the address of a previously deleted one, incorrectly inheriting
the GUID.
Commit: 32e83eafa73dbdd8edd113de787e2819ea049357
https://github.com/llvm/llvm-project/commit/32e83eafa73dbdd8edd113de787e2819ea049357
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.h
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasmProperties.td
M lldb/source/Plugins/Process/wasm/ProcessWasm.cpp
M lldb/source/Plugins/Process/wasm/ProcessWasm.h
M lldb/unittests/Platform/CMakeLists.txt
A lldb/unittests/Platform/PlatformWasmTest.cpp
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[lldb] Pass Wasm runtime-args before the port argument (#220700)
A runtime that dispatches on a leading subcommand, such as WasmKit's
`wasmkit run`, could not be driven directly: runtime-args landed after
the port argument, so the subcommand did too and the runtime rejected
it. Naming the subcommand required a wrapper script. Move runtime-args
ahead of the port argument so the setting can carry it.
Extract the command line assembly into PlatformWasm::MakeRuntimeCommand
so the ordering is covered by unit tests, and clarify that port-arg has
to carry its value in the same argument.
Commit: 3dcc5b37c7dad740bd8c9a9f36627852a1767612
https://github.com/llvm/llvm-project/commit/3dcc5b37c7dad740bd8c9a9f36627852a1767612
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/test/Transforms/LoopVersioning/preserved-analyses.ll
Log Message:
-----------
[LoopVersioning] Add missing verify-analysis-invalidation=false to test. (#220735)
Add -verify-analysis-invalidation=false to test added in
https://github.com/llvm/llvm-project/pull/220537 to fix expensive check
failures due to extra verification passes.
Commit: 3b287028f1cf6037666ce9a4439b7995f6924976
https://github.com/llvm/llvm-project/commit/3b287028f1cf6037666ce9a4439b7995f6924976
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Allow non-live-in IV offsets when simplifying latch cond (NFC). (#220734)
simplifyBranchConditionForVFAndUF matches the canonical IV increment
plus an offset, which epilogue vectorization adds to resume the
canonical IV at the vector trip count of the main vector loop. Require
the offset to be defined outside the vector loop region instead of
requiring it to be a live-in; that is what makes it available in the
preheader..
This is NFC today, but prepares for modeling the full epilogue skeleton
in VPlan, which requires adding phi nodes in the preheader before
execute.
Commit: 81bf35d75a2925ff57a470b7a54c5d3730ade165
https://github.com/llvm/llvm-project/commit/81bf35d75a2925ff57a470b7a54c5d3730ade165
Author: Scott Manley <rscottmanley at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/CUDA/CUFAllocDelay.cpp
M flang/test/Transforms/CUF/cuf-alloc-delay.fir
Log Message:
-----------
[flang][cuda] Delay descriptor alloc when addressed reused on host/device (#220534)
CSE can share one fir.coordinate_of between the host-association capture
store and a later fir.load. Treating that coordinate_of as a real use
made cuf-alloc-delay think the movable group depended on an operand at
the sink point, so the device descriptor stayed at function entry and
cudaMallocManaged ran before cudaSetDevice.
Count only users of the slot address that actually read it. Stores that
populate the tuple still sink with the allocation group.
Commit: 53b30bfcaf5584fc2c8624b7591530379e278ce8
https://github.com/llvm/llvm-project/commit/53b30bfcaf5584fc2c8624b7591530379e278ce8
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SOPInstructions.td
Log Message:
-----------
[AMDGPU] Use named operands in SOP1_Real. NFC (#220705)
Commit: 70519bc4c28e73b39419fedbac19972401da32e7
https://github.com/llvm/llvm-project/commit/70519bc4c28e73b39419fedbac19972401da32e7
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M orc-rt/include/orc-rt-c/support/Compiler.h
M orc-rt/include/orc-rt-c/support/Logging.h
Log Message:
-----------
[orc-rt] Drop the _C_ prefix from ORC_RT_C_FORMAT_PRINTF (#220592)
The macro is not C-specific. Rename it to ORC_RT_FORMAT_PRINTF and
update its two uses in Logging.h.
Commit: f33ef3a26db25f9a4b75a25af6527304bc03fcb8
https://github.com/llvm/llvm-project/commit/f33ef3a26db25f9a4b75a25af6527304bc03fcb8
Author: David Green <david.green at arm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SchedC1Premium.td
M llvm/lib/Target/AArch64/AArch64SchedC1Ultra.td
A llvm/test/CodeGen/AArch64/misched-c1sme.ll
Log Message:
-----------
[AArch64] Use NoSchedPred for SME instructions in C1 scheduling models. (#220553)
We can have the scheduling model enabled without SME using -mtune, which
means that no scheduling information was present for any instructions
that execute in either SME or the core. AFAICT the predicate should be
NoSchedPred, as any instructions should be using the non-streaming
scheduling info when not in a SME function.
Fixes #220070
Fixes #220067
Commit: fadd7e640336704bca4546a267b10a73a348e5b0
https://github.com/llvm/llvm-project/commit/fadd7e640336704bca4546a267b10a73a348e5b0
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M orc-rt/include/orc-rt/support/Compiler.h
Log Message:
-----------
[orc-rt] Remove unused ORC_RT_HAS_CPP_ATTRIBUTE (#220747)
Commit: a19f61106bef180c1473a11757dfb16a6b85fab5
https://github.com/llvm/llvm-project/commit/a19f61106bef180c1473a11757dfb16a6b85fab5
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/RISCV/rvv/convert-from-arbitrary-fp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vector-convert-from-arbitrary-fp.ll
Log Message:
-----------
[RISCV] Lower `CONVERT_FROM_ARBITRARY_FP` of Float8E5M2 with Zvfofp8min (#220132)
The new(-ish) `llvm.convert.from.arbitrary.fp` intrinsics (`ISD::
CONVERT_FROM_ARBITRARY_FP`) can be lowered into `vfwcvtbf16.f.f.v` from
Zvfofp8min if the input operand is a Float8E5M2 / Float8E4M3 vector
(represented by i8 vector in LLVM), and producing a bf16 vector result.
This patch adds such lowering for the Float8E5M2 type
(SelectionDAGBuilder hasn't supported the Float8E4M3 variant of
`CONVERT_FROM_ARBITRARY_FP`).
Note that although Zvfofp8min does not require Zvfbfmin or Zvfbfa[^1],
in reality it'll be pretty difficult to implement that (lower of
`vfwcvtbf16.f.f.v` even though there is only no bf16 vector support) in
legalization. So for this patch, I emit `vfwcvtbf16.f.f.v` only if both
Zvfofp8min _and_ bf16 vector support are present.
[^1]: Rationale:
https://github.com/riscv/riscv-isa-manual/pull/2979#issuecomment-4320773526
Commit: e775ea816fc48252e2887dcef33f794d0858ec17
https://github.com/llvm/llvm-project/commit/e775ea816fc48252e2887dcef33f794d0858ec17
Author: Dan Zimmerman <danzimm at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHWEvents.def
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
A llvm/test/CodeGen/AMDGPU/waitcnt-buffer-inv.mir
Log Message:
-----------
[AMDGPU] Track BUFFER_INV during waitcnt insertion (#220694)
Currently SIInsertWaitcnts doesn't mark `BUFFER_INV` instructions as
incrementing `VM_CNT`, though according to gfx942/gfx950 ISA `VM_CNT`
does increment. This PR teaches SIInsertWaitcnts to handle `BUFFER_INV`,
akin to how `GLOBAL_INV` is handled for gfx12+. No changes in behavior
are made for gfx12+ codegen.
Similar to `GLOBAL_INV` the implementation elides waits when inv
instructions are the only pending load events because they do not write
VGPRs.
The motivation is to use `BUFFER_INV 0` as a nop to increment `VM_CNT`
in branches to allow relaxed `s_waitcnt vmcnt` instructions (coming in a
separate PR).
Commit: db625160332cce3facb65393a87377d20ad2a8d0
https://github.com/llvm/llvm-project/commit/db625160332cce3facb65393a87377d20ad2a8d0
Author: Dan Brown <61992655+danbrown-amd at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M clang/include/clang/Basic/HLSLIntrinsics.td
A clang/test/CodeGenHLSL/builtins/acos_mat.hlsl
A clang/test/CodeGenHLSL/builtins/asin_mat.hlsl
A clang/test/CodeGenHLSL/builtins/atan_mat.hlsl
A clang/test/CodeGenHLSL/builtins/ceil_mat.hlsl
A clang/test/CodeGenHLSL/builtins/cos_mat.hlsl
A clang/test/CodeGenHLSL/builtins/cosh_mat.hlsl
A clang/test/CodeGenHLSL/builtins/exp2_mat.hlsl
A clang/test/CodeGenHLSL/builtins/exp_mat.hlsl
A clang/test/CodeGenHLSL/builtins/floor_mat.hlsl
A clang/test/CodeGenHLSL/builtins/frac_mat.hlsl
A clang/test/CodeGenHLSL/builtins/log10_mat.hlsl
A clang/test/CodeGenHLSL/builtins/log2_mat.hlsl
A clang/test/CodeGenHLSL/builtins/log_mat.hlsl
A clang/test/CodeGenHLSL/builtins/rcp_mat.hlsl
A clang/test/CodeGenHLSL/builtins/round_mat.hlsl
A clang/test/CodeGenHLSL/builtins/rsqrt_mat.hlsl
A clang/test/CodeGenHLSL/builtins/saturate_mat.hlsl
A clang/test/CodeGenHLSL/builtins/sin_mat.hlsl
A clang/test/CodeGenHLSL/builtins/sinh_mat.hlsl
A clang/test/CodeGenHLSL/builtins/sqrt_mat.hlsl
A clang/test/CodeGenHLSL/builtins/tan_mat.hlsl
A clang/test/CodeGenHLSL/builtins/tanh_mat.hlsl
A clang/test/CodeGenHLSL/builtins/trunc_mat.hlsl
Log Message:
-----------
[HLSL] Add matrix support for float->float pure function intrinsics (#202455)
Resolves #184486, #184492, #184495, #184496, #184497, #184499, #184500,
#184501, #184502, #184503, #184504, #184507, #184508, #184509, #184514,
#184515, #184516, #184517, #184518, #184519, #184520, #184521, #184522
Assisted-by: Claude Sonnet 4
Commit: 7ecc2b3eab2a92e614de2757148524fb654f8fbc
https://github.com/llvm/llvm-project/commit/7ecc2b3eab2a92e614de2757148524fb654f8fbc
Author: Ivan R. Ivanov <iivanov at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M offload/languages/kernel/CMakeLists.txt
Log Message:
-----------
[Offload] Build LLVMOffloadKernel with add_library (#220748)
Depending on system and cmake configuration, LLVMOffloadKernel cannot
find LLVMOffload when testing because they live in different directories
in the build.
This patch aligns LLVMOffloadKernel's library build/install directory
configuration with LLVMOffload's, which makes sure it can always be
found.
The cause is that llvm_add_library adds some implicit handling which can
throw off the directories we need (see
3383f0d6fe01374b91845e7cd3ee949594c4bfc6)
Commit: aab4e16eb010d1683f1ea47f8607c5ff58958d2c
https://github.com/llvm/llvm-project/commit/aab4e16eb010d1683f1ea47f8607c5ff58958d2c
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.signal.isfirst.invalid_barrier.ll
M llvm/test/CodeGen/AMDGPU/lower-intrinsics-cluster-barrier.ll
M llvm/test/MC/AMDGPU/gfx12_err.s
A llvm/test/MC/AMDGPU/gfx13_err.s
Log Message:
-----------
[AMDGPU] Validate barrier ID in S_BARRIER_SIGNAL_ISFIRST (#220101)
Value user_cluster_barrier_id is not supported.
Fixes: SWDEV-534494
Commit: 01145e3289d08c8c8e42d5dceefa3806b93cdd69
https://github.com/llvm/llvm-project/commit/01145e3289d08c8c8e42d5dceefa3806b93cdd69
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUVectorLinearize.cpp
M mlir/test/Dialect/XeGPU/xegpu-vector-linearize.mlir
Log Message:
-----------
[MLIR][XeGPU] Promote mixed-size vector.shuffle in xegpu-vector-linearize (#217141)
Linearizing an insert of a narrow chunk into a wider tile produces a
`vector.shuffle` whose operands have different lengths:
%0 = vector.insert_strided_slice %chunk, %tile {offsets = [1, 0],
strides = [1]}
: vector<4xbf16> into vector<8x4xbf16>
// becomes shuffle(vector<32xbf16>, vector<4xbf16>)
MLIR permits that, but LLVM and SPIR-V shuffles require both operands to
have the
same type, so `convert-vector-to-llvm` falls off its fast path and emits
one
`extractelement` plus one `insertelement` per result element. In a
workgroup-level
mxfp GEMM the linearizer emits ~1000 such shuffles, and scalarizing them
accounts
for roughly 70% of the emitted LLVM IR.
`vector::populateVectorShuffleLoweringPatterns` already promotes the
smaller
operand and remaps the mask, but nothing in the XeVM pipeline ran it.
Run it at the
end of `xegpu-vector-linearize`, the pass that produces these shuffles,
so none
escapes. Doing it at the producer needs no new pass or public API and is
often
free, because the promotion folds into whatever produced the narrow
operand: a
`vector.broadcast` is emitted at the wide type and a splat constant
materialized at
the wide width. Existing expected output changes accordingly; over
`xegpu-vector-linearize.mlir` the mixed-size shuffle count drops from 46
to 0.
Commit: e73db4d2c1483af0ef2b2034ef1a5d5f204df0f6
https://github.com/llvm/llvm-project/commit/e73db4d2c1483af0ef2b2034ef1a5d5f204df0f6
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
R orc-rt/test/regression/check-rt-processi-info.test
A orc-rt/test/regression/darwin/check-rt-process-info.test
A orc-rt/test/regression/darwin/lit.local.cfg
Log Message:
-----------
[orc-rt] Add darwin subdir for regression tests. (#220754)
All tests in the new subdirectory are implicitly gated on lit's
"system-darwin" feature flag.
Move check-rt-process-info.test into the darwin subdirectory and drop
its "system-darwin" guard, since it will now be covered by the darwin
directory's guard.
Commit: 69091033c62559b622137724a8b9f4d728c9f042
https://github.com/llvm/llvm-project/commit/69091033c62559b622137724a8b9f4d728c9f042
Author: Ivan R. Ivanov <iivanov at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
A offload/libompaccsupport/DeviceImage.cpp
A offload/libompaccsupport/Mapping.cpp
A offload/libompaccsupport/PluginManager.cpp
A offload/libompaccsupport/device.cpp
M offload/libomptarget/CMakeLists.txt
R offload/libomptarget/DeviceImage.cpp
R offload/libomptarget/OpenMP/Mapping.cpp
R offload/libomptarget/PluginManager.cpp
R offload/libomptarget/device.cpp
Log Message:
-----------
[offload][nfc] Extract libomptarget infrastructure into libompaccsupport (#213784)
libompaccsupport will become the support library for both OpenMP and
OpenACC. This patch extracts the files that will become part of it.
Currently it only moves the files and the build configuration is
unchanged.
Next patches will start refactoring libompaccsupport to flesh out the
subset of the infrastructure that will be shared between OpenMP and
OpenACC in small verifiable chunks while maintaining libomptarget's
existing behaviour.
Gradually adding the libacctarget implementation that uses
libompaccsupport will also follow.
Commit: 74c65691d5c1594e50b2f502e0aa71e12d4902bc
https://github.com/llvm/llvm-project/commit/74c65691d5c1594e50b2f502e0aa71e12d4902bc
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
Log Message:
-----------
[TTI] Fix dyn_cast null-check in BasicTTIImpl (#220755)
Introduced in #107273.
Commit: a8bf25cbea41a8e62937b6ff844039c09d90f2ba
https://github.com/llvm/llvm-project/commit/a8bf25cbea41a8e62937b6ff844039c09d90f2ba
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/Transforms/Passes.td
M flang/lib/Optimizer/Transforms/SimplifyRegionLite.cpp
Log Message:
-----------
[flang][NFC] Allow simplify-region-lite to run on any op (#220698)
The pass only walks the regions of getOperation(). Pinning it to
ModuleOp forced a single liveness lattice over the whole compile unit
and blocked scheduling it under a nested pass manager. Drop the
ModuleOp constraint so callers can run it per IsolatedFromAbove op.
Existing module-level addPass() uses are unchanged.
Commit: 038b4cde32cb6f593a159aee159a18b87ca2662f
https://github.com/llvm/llvm-project/commit/038b4cde32cb6f593a159aee159a18b87ca2662f
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/include/flang/Support/Fortran-features.h
M flang/lib/Semantics/check-call.cpp
A flang/test/Semantics/call49.f90
Log Message:
-----------
[flang] Warn when an INTENT(IN) dummy is passed to a dummy with no INTENT (#220667)
F'2023 8.5.10 paragraph 2 requires that a nonpointer INTENT(IN) dummy
argument "shall neither be defined nor become undefined during the
invocation and execution of the procedure". A program can violate that
requirement without any diagnostic today by passing the INTENT(IN) dummy
argument on as an actual argument to a procedure whose corresponding
dummy argument has no INTENT attribute: that callee is free to define
its dummy argument, and since #207732 flang propagates INTENT(IN) to
LLVM as `readonly`, so the optimizer is entitled to assume the
definition never happens. The observable result is a program whose
answers change with the optimization level, with nothing pointing at the
cause.
```fortran
program main
integer :: kk = 1
call s(kk)
print *, kk ! 1 at -O1, 3 at -O2
contains
subroutine s(k)
intent(in) :: k
call ss(k)
end subroutine
end
subroutine ss(k)
k = 3
end
```
The program above is not conforming, so no diagnostic is required, but
it is cheap for us to point at the exact place where the promise is
broken:
```
warning: INTENT(IN) dummy argument 'k' is associated with dummy argument 'k=', which has no INTENT attribute and could be defined [-Wintent-in-actual-for-default-intent]
call ss(k)
^
Declaration of 'k'
subroutine s(k)
^
```
The warning is off by default and is enabled either by
`-Wintent-in-actual-for-default-intent` or by `-pedantic`.
Assisted-by: AI
Commit: 58e985b8f39089989c11ea67fcb63c5cea1d7c9e
https://github.com/llvm/llvm-project/commit/58e985b8f39089989c11ea67fcb63c5cea1d7c9e
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/runtime-alias-checks-scheduled-order.ll
M llvm/test/Transforms/SLPVectorizer/X86/runtime-alias-checks.ll
Log Message:
-----------
[SLP] Fix-up profile metadata for runtime alias checks (#220769)
This makes two main changes
* Adds profile information regardless of whether or not the function is
profile. This data is still useful even when little else is profiled.
e.g., it helps ensure that registers are spilt in the cold block rather
than the hot one.
* Switches to using MDBuilder's branch weight designations. The named
values make the meaning of the code clearer and this is the standard way
to denote cold code in the compiler absent additional information about
the specific frequency here.
Commit: a4f8918d699b4ed3b34d0842871ca920afc61996
https://github.com/llvm/llvm-project/commit/a4f8918d699b4ed3b34d0842871ca920afc61996
Author: Michael Hu <horton.mrf at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/InitializePasses.h
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/RegAllocPBQP.cpp
Log Message:
-----------
Initialize PBQP Pass for Clang (#217954)
As mentioned in discussion on
https://github.com/llvm/llvm-project/issues/16391, the PBQP allocator is
not available to clang despite existing in the backend. This updates
code to initialize the pass and make it available to clang.
Commit: cdb1815806dd61770e58844f58a8937519527ebf
https://github.com/llvm/llvm-project/commit/cdb1815806dd61770e58844f58a8937519527ebf
Author: David Tellenbach <dtellenbach at apple.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
Log Message:
-----------
[AArch64][NFC] Make insertion of CMP for fused cond. branches reusable (#220771)
Both if-conversion and CCMP-chain forming need to undo the fusion of
conditional branches such as CBZ or CB.<cc>. With the introduction of
FEAT_CMPBR, this logic got quite involved.
This patch makes the functionality reusable through AArch64InstrInfo.
Commit: 6334d98f5bb78881adaacb7744636f4ce147ae2a
https://github.com/llvm/llvm-project/commit/6334d98f5bb78881adaacb7744636f4ce147ae2a
Author: Florian Mayer <fmayer at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/unittests/CodeGen/SelectionDAGTestBase.h
Log Message:
-----------
[test] fix use after destroy in SelectionDAGTestBase (#220775)
we were capturing the context from the MMI, which was destroyed after
setup
Commit: 4be38a0764ec87dfb1e1cef5325bbd1df9767d63
https://github.com/llvm/llvm-project/commit/4be38a0764ec87dfb1e1cef5325bbd1df9767d63
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M lld/ELF/EhFrame.cpp
M lld/ELF/EhFrame.h
M lld/ELF/SyntheticSections.cpp
M lld/test/ELF/eh-frame-fde-encoding.s
A lld/test/ELF/eh-frame-hdr-zero-range.s
M lld/test/ELF/eh-frame-negative-pcrel-sdata2.s
M lld/test/ELF/eh-frame-negative-pcrel-sdata4.s
Log Message:
-----------
[ELF] Omit zero-range FDEs from .eh_frame_hdr (#220492)
A zero-sized function (e.g. only `__builtin_unreachable()` in the body
when not using -trap-unreachable) shares its address with the next
function, and its zero-range FDE can win the uniquify step, leaving the
next real function impossible to unwind.
Fix #218124 by dropping FDEs with a zero PC range from the search table.
Commit: a4eb2ece7b779639b7d9b0855b7c21aa6deafdbf
https://github.com/llvm/llvm-project/commit/a4eb2ece7b779639b7d9b0855b7c21aa6deafdbf
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M orc-rt/include/orc-rt-c/support/Compiler.h
M orc-rt/include/orc-rt/support/Compiler.h
M orc-rt/test/unit/support/CAPICompileTest.c
M orc-rt/test/unit/support/CompilerTest.cpp
Log Message:
-----------
[orc-rt] Sink remaining Compiler.h macros into C API header (#220780)
ORC_RT_LIKELY, ORC_RT_UNLIKELY, ORC_RT_WEAK_IMPORT,
ORC_RT_BUILTIN_UNREACHABLE and ORC_RT_UNREACHABLE are useful from C but
were only reachable through the C++ header, so move them to
orc-rt-c/support/Compiler.h.
Rename ORC_RT_EXPORT to ORC_RT_CXX_EXPORT so that both export macros
name their language explicitly. The C++ header is left holding only that
macro. Keep the header separate anyway so that C APIs don't accidentally
use ORC_RT_CXX_EXPORT.
Extend CAPICompileTest.c to use each moved macro from C, with assertions
in CompilerTest.cpp so the behaviour is checked and not just the syntax.
Commit: 907dd67f959483a8b5dd12aa28dfc3bdb3469311
https://github.com/llvm/llvm-project/commit/907dd67f959483a8b5dd12aa28dfc3bdb3469311
Author: Oscar Priego <oscar.priegov at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/test/Dialect/LLVMIR/constant-folding.mlir
Log Message:
-----------
[MLIR][LLVM] Avoid narrowing wide constant shift amounts (#220777)
LLVM::ShlOp::fold() used APInt::getZExtValue() to compare a constant
shift
amount against the operand bit width.
For wide integer constants whose active value exceeds 64 bits, such as
an i128
shift amount of 2^100, getZExtValue() asserts before the fold can
determine
that the shift is out of range.
Compare the APInt directly with the operand bit width using uge()
instead. This
preserves the existing behavior for out-of-range shifts, which are
currently
left unfolded, while avoiding the unsafe narrowing.
Add regression coverage for:
- a wide out-of-range shift amount
- the exact bit-width boundary
- the largest valid shift amount
Fixes #220610.
Commit: 303475a57c121e13b3363a4ef0e3fcd52523457c
https://github.com/llvm/llvm-project/commit/303475a57c121e13b3363a4ef0e3fcd52523457c
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/unittests/TargetParser/TargetParserTest.cpp
Log Message:
-----------
[AMDGPU] Expose LDS block features to TargetParser (#220717)
Add `FeatureHalfAddressablePhysicalLocalMemory` to
`AMDGPUFrontendVisibleFeatures` so TargetParser carries them in its
per-GPU feature bitset.
Commit: 9bd808983596f0d6b018221d609187ff757f81f4
https://github.com/llvm/llvm-project/commit/9bd808983596f0d6b018221d609187ff757f81f4
Author: Thrrreeee <shijinrui at bytedance.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M bolt/include/bolt/Rewrite/RewriteInstance.h
M bolt/lib/Core/Relocation.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
A bolt/test/RISCV/ifunc.s
Log Message:
-----------
[BOLT][RISCV] Handle static IFUNC calls through .iplt (#207733)
Teach BOLT to recognize RISC-V `.iplt` as a PLT-like section and make
the RISC-V `.plt` entry size explicit. Static RISC-V binaries can use
`.iplt` entries together with `R_RISCV_IRELATIVE` relocations for GNU
IFUNC calls, while call sites reference the IFUNC symbol through
`R_RISCV_CALL_PLT`.
Commit: d79ce87f19d70db353b96b3f0e5f40b85cf99b14
https://github.com/llvm/llvm-project/commit/d79ce87f19d70db353b96b3f0e5f40b85cf99b14
Author: mleair <leairmark at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang/docs/Extensions.md
M flang/include/flang/Semantics/semantics.h
M flang/include/flang/Support/Fortran-features.h
M flang/lib/Semantics/semantics.cpp
M flang/lib/Support/Fortran-features.cpp
A flang/test/Lower/common-block-multiple-init.f90
A flang/test/Semantics/common-block-multiple-init-bindc.f90
A flang/test/Semantics/common-block-multiple-init-flags.f90
A flang/test/Semantics/common-block-multiple-init.f90
Log Message:
-----------
[flang][Semantics] Accept multiple initialization of a COMMON block (#218529)
…as a GNU extension
Some compilers accept a named COMMON block variable being redundantly
initialized (via DATA statements or declaration initializers) in more
than one program unit, as a nonstandard extension, so long as every
appearance that initializes the block does so identically: the same
members are initialized to the same values everywhere the block appears.
flang currently rejects this unconditionally as a hard error, whether or
not the appearances agree.
Downgrade this to a portability warning enabled by default (matching the
behavior of the other compilers) when the initializations are
duplicates. A conflicting initialization -- a different value for a
shared member, or a member initialized in one appearance but not another
-- remains a hard error, as it has no defined, portable behavior
(compilers that accept it disagree on which appearance wins). A member
that is only indirectly initialized via an equivalenced object (rather
than directly, by a DATA statement or declaration initializer) is
conservatively treated as a conflict rather than compared for a
duplicate value, since the equivalenced objects may differ in name,
offset, or type across appearances.
Since DATA statement values are not yet known at the point where COMMON
block conflicts are otherwise detected (during offset computation,
before DATA statements are compiled into initializer values), the
duplicate-vs-conflict decision for such conflicts is deferred until
after DATA statement compilation; this deferred check runs even when an
unrelated fatal error has occurred elsewhere in the file, since it can
still usefully diagnose COMMON blocks unaffected by that error.
Update the existing common-blocks.f90 test for the new diagnostic, add
semantics tests covering the shapes both the accepted (duplicate) and
rejected (conflicting) cases apply to -- DATA statements, declaration
initializers, three or more appearances, an uninitialized first
appearance, disjoint members, indirect initialization via equivalence --
and the -Wmultiple-common-block-init spelling (silencing and -Werror
promotion), a test pinning that a shared BIND(C) name correctly
attributes the previous initialization to the right block, a Lower test
pinning that a duplicate initialization still lowers correctly, and a
flang/docs/Extensions.md entry documenting the behavior.
Assisted-by: AI
Commit: 9191266744b70a75de4e273f5c22763271aa43e9
https://github.com/llvm/llvm-project/commit/9191266744b70a75de4e273f5c22763271aa43e9
Author: Kelvin Li <kli at ca.ibm.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M flang-rt/lib/runtime/exceptions.cpp
M flang-rt/unittests/Runtime/Exceptions.cpp
M flang/include/flang/Optimizer/Builder/LowLevelIntrinsics.h
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp
A flang/test/Lower/Intrinsics/ieee_status.f90
Log Message:
-----------
[flang][PPC] Implement ieee_set_status and ieee_get_status for AIX (#215618)
This patch implements the ieee_set_status and ieee_get_status for AIX
PPC. On AIX, the trap-enable bits are needed to have the correct round-trip.
Assisted-by: IBM Bob
Commit: 334db19b004338728979018c5a2bcd6d44b29109
https://github.com/llvm/llvm-project/commit/334db19b004338728979018c5a2bcd6d44b29109
Author: Aditya Chaudhary <aditya.chaudhary0714 at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/insertvalue-element.ll
Log Message:
-----------
[SLP] Handle InsertValueInst in getVectorElementSize. (#215473)
When given an `InsertValueInst`, the `getVectorElementSize()` function
was falling back to measuring the bit width of the instruction's result
type (the aggregate type, e.g. { i64, i64 } -> 128 bits) instead of
inspecting the scalar element value being inserted (operand(1) -> 64
bits).
This leads to an overestimated element bit-width, which restricts the
calculated maximum vectorization factor and can prevent valid SLP
vectorization of chains of insertvalue instructions.
---------
Co-authored-by: Aditya-Chaudhary1 <aditya.chaudhary1 at ibm.com>
Commit: c5b1e01ed897f417c370a225c6cdaaa14a1c142d
https://github.com/llvm/llvm-project/commit/c5b1e01ed897f417c370a225c6cdaaa14a1c142d
Author: david04g <85910051+david04g at users.noreply.github.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp
M llvm/lib/Target/Mips/MipsISelDAGToDAG.h
M llvm/test/CodeGen/Mips/cmov.ll
M llvm/test/CodeGen/Mips/llvm-ir/select-globaladdr.ll
Log Message:
-----------
[MIPS] Fix GP-relative selection after select/add combine (#215414)
## Summary
- Rewrite `$gp + select(...)` before MIPS instruction selection when a
select
arm contains a GP-relative relocation.
- Keep each `MipsISD::GPRel` attached to a selectable add operation.
- Add MIPS32 regression coverage and update the resulting MIPS64 checks.
## Background
The generic DAG combiner can transform:
select C, (add $gp, %gp_rel(A)), (add $gp, %gp_rel(B))
into:
add $gp, (select C, %gp_rel(A), %gp_rel(B))
This leaves `MipsISD::GPRel` as a standalone value, which MIPS
instruction
selection cannot match. The new MIPS DAG-to-DAG preprocessing step
restores
the distributive form before selection.
This follows the MIPS-local fixup direction discussed in #212163 and
avoids
introducing a target-independent hook.
## Testing
- Built `llc` on current `upstream/main`.
- Ran the exact MIPS32 static `-mgpopt -mattr=+noabicalls` reproducer.
- Ran:
- `llvm/test/CodeGen/Mips/cmov.ll`
- `llvm/test/CodeGen/Mips/llvm-ir/select-globaladdr.ll`
- Ran `check-llvm-codegen-mips`:
- 1040 discovered
- 1033 passed
- 3 unsupported
- 4 expected failures
- 0 unexpected failures
Fixes #212057
AI disclosure: I used OpenAI Codex to help with issue analysis, patch
development/review, and local validation. I personally reviewed and
understand the final code, tests, and PR description and take
responsibility
for the contribution.
Commit: 37dbe72e9a0cba2fae6025fc7b8284d7ff01a665
https://github.com/llvm/llvm-project/commit/37dbe72e9a0cba2fae6025fc7b8284d7ff01a665
Author: arrowten <69420825+arrowten at users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
A llvm/test/Transforms/SimplifyCFG/switch-select-remap.ll
Log Message:
-----------
[SimplifyCFG] Handle switch-to-select remapping correctly (#213302)
Simplifed `switch`es whose input a select that maps one value to
another. Handles both equal and non equal forms and also avoids a
pointless case when it would not change anything.
Fixes #202212.
Commit: 5b2b3d1b319c2ca9745e4b6602fd2bc802679757
https://github.com/llvm/llvm-project/commit/5b2b3d1b319c2ca9745e4b6602fd2bc802679757
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/x86_64/CMakeLists.txt
Log Message:
-----------
[libc][cmake] Introduce add_type_header for OS/arch-specific types. (#220750)
* Follow the existing model of `add_macro_header` and introduce
`add_type_header` which implicitly adds OS-specific and arch-specific
dependencies for type definitions;
* Since arch-specific definitions may depend on other types (e.g.
`ucontext_t` depends on `sigset_t`),
move arch-specific folder inclusion and types to the bottom of the list;
* Use `add_type_header` for only four types (so far) that require it -
`mcontext_t`, `ucontext_t`,
`loff_t`, and `struct sysinfo`. We can bulk-update everyone else, but
that might be easier to do once
we have CMake formatter in place.
Commit: 5d063386f51b7d9925df7db5f05ec2f0a33f63c4
https://github.com/llvm/llvm-project/commit/5d063386f51b7d9925df7db5f05ec2f0a33f63c4
Author: Jiaxun Yang <jiaxun.yang at flygoat.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Arch/Mips.cpp
A clang/test/CodeGen/Mips/fixed-register-global.c
A clang/test/Driver/mips-fixed-register.c
M llvm/lib/Target/Mips/Mips.td
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/Mips/MipsRegisterInfo.cpp
M llvm/lib/Target/Mips/MipsSubtarget.h
A llvm/test/CodeGen/Mips/get-register-reserve.ll
M llvm/test/CodeGen/Mips/named-register-n32.ll
M llvm/test/CodeGen/Mips/named-register-n64.ll
M llvm/test/CodeGen/Mips/named-register-o32.ll
A llvm/test/CodeGen/Mips/reserved-gpr.ll
Log Message:
-----------
[Mips] Support reserving GPRs with -ffixed-N (#217013)
NetBSD dedicates GPR $24 to mips_curlwp and passes -ffixed-24 when
building the MIPS kernel.
Add Clang driver options for numeric MIPS GPRs and lower them to
reserve-gprN target features. Teach the backend to reserve the
corresponding 32-bit register and its 64-bit super-register, and require
named-register accesses to refer to reserved registers.
Also replace the regex-based numeric register parsing with
StringRef::getAsInteger and add driver, allocation, and global-register
regression coverage.
Commit: 0f391cb05e6e4727453b5ace37eda77ce67db85f
https://github.com/llvm/llvm-project/commit/0f391cb05e6e4727453b5ace37eda77ce67db85f
Author: Luke Lau <luke at igalia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
M llvm/test/Transforms/LoopVectorize/reduction-inloop.ll
Log Message:
-----------
[VPlan] Regenerate reduction-inloop tests with UTC. NFC (#220799)
To remove the br label changes in another PR
Commit: 54dc216fae73f1b85dbef9cc5a1c0ec1ade72d79
https://github.com/llvm/llvm-project/commit/54dc216fae73f1b85dbef9cc5a1c0ec1ade72d79
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang-tools-extra/clangd/AST.cpp
M clang-tools-extra/clangd/unittests/InlayHintTests.cpp
Log Message:
-----------
[clangd] Handle varargs functions in resolveForwardingParameters() (#220488)
Fixes https://github.com/llvm/llvm-project/issues/220359
Commit: 3993ccd4f07a5feee69764efa5bc9b53a0ce19ae
https://github.com/llvm/llvm-project/commit/3993ccd4f07a5feee69764efa5bc9b53a0ce19ae
Author: Sergey Shcherbinin <sscherbinin at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-profgen.md
A llvm/test/tools/llvm-profgen/AArch64/brbe-branch-profile.test
A llvm/test/tools/llvm-profgen/AArch64/warn-not-symbolized-mmap.test
M llvm/tools/llvm-profgen/PerfReader.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.h
M llvm/tools/llvm-profgen/llvm-profgen.cpp
Log Message:
-----------
[llvm-profgen] Support AArch64 BRBE branch profiles (#209769)
BRBE branch stacks use the same perf format as LBR and therefore work
out of the box through llvm-profgen's existing LBR machinery; no
dedicated BRBE reader is needed. Add AArch64 coverage for this path
together with option needed to process profiles in AArch64 environments.
Profile support:
- Add an AArch64 test for BRBE perf script input.
New option: `--warn-not-symbolized` reports symbolization failures only
for addresses covered by recorded MMAP ranges.
Related split PRs:
- #212253 `--perf-binary` and perf harness hardening
- #212258 preserve zero-valued first PT_LOAD address
These changes are part of the work to introduce the universal
profile-guided loop data prefetcher described in:
https://discourse.llvm.org/t/rfc-universal-profile-guided-automatic-software-loop-data-prefetcher-for-llvm/90916
Assisted by GPT-5
Commit: 76c63f17762ad60d25a85b9ecacd43d9e828790f
https://github.com/llvm/llvm-project/commit/76c63f17762ad60d25a85b9ecacd43d9e828790f
Author: Chi-Chun, Chen <chichun.chen at hpe.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/include/flang/Lower/PFTBuilder.h
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/OpenMP/Utils.cpp
M flang/lib/Lower/OpenMP/Utils.h
M flang/lib/Semantics/openmp-utils.cpp
A flang/test/Lower/OpenMP/Todo/metadirective-loop-data-environment.f90
A flang/test/Lower/OpenMP/Todo/metadirective-loop-intervening-statement.f90
A flang/test/Lower/OpenMP/Todo/metadirective-loop-iteration-variable.f90
A flang/test/Lower/OpenMP/Todo/metadirective-loop-unstructured.f90
A flang/test/Lower/OpenMP/Todo/metadirective-loop-unsupported-replacements.f90
R flang/test/Lower/OpenMP/Todo/metadirective-loop.f90
M flang/test/Lower/OpenMP/metadirective-implementation.f90
A flang/test/Lower/OpenMP/metadirective-loop-openmp-60.f90
A flang/test/Lower/OpenMP/metadirective-loop.f90
Log Message:
-----------
[flang][OpenMP] Lower DO, SIMD, and DO SIMD metadirective variants (#218555)
A standalone metadirective and its associated loop are represented as
sibling PFT evaluations. For example:
```
!$omp metadirective &
!$omp& when(user={condition(flag)}: do) &
!$omp& otherwise(nothing)
do i = 1, n
a(i) = i
end do
```
has the following evaluation shape:
```
METADIRECTIVE
DO
`-- a(i) = i
```
Lowering temporarily associates the DO evaluation with the metadirective
so the selected replacement can reuse the existing OpenMP loop-lowering
path.
For the example above, runtime selection lowers conceptually as:
```
if (flag)
omp.wsloop
omp.loop_nest
else
fir.do_loop
```
The evaluation ownership is restored after lowering so that the PFT
remains available to other lowering paths.
This patch lowers only canonical structured DO loop nests selected as
DO, SIMD, or DO SIMD. It supports standalone metadirectives and begin/end
forms whose structured block is the associated loop nest. Static selections
and runtime user conditions are supported. NOTHING retains ordinary Fortran
loop lowering. Other loop-associated cases are diagnosed.
Assisted with codex.
Commit: b4a2ef9364dadd542d8cc638fc45d75966de89be
https://github.com/llvm/llvm-project/commit/b4a2ef9364dadd542d8cc638fc45d75966de89be
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.h
Log Message:
-----------
[SLP][modularisation][NFC] Move REVEC cost helpers to SLPCostAnalysis (#220594)
Move the following BoUpSLP-independent cost helpers out of
SLPVectorizer.cpp into SLPVectorizer/SLPCostAnalysis.{h,cpp}:
getMaskedDivRemCost
getScalarizationOverhead
getVectorInstrCost
getExtractWithExtendCost
These were deferred from the earlier SLPCostAnalysis extraction because
they read the SLPReVec cl::opt. SLPReVec stays static in
SLPVectorizer.cpp; the moved helpers take its value as an explicit bool
parameter. Behavior is unchanged.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
Commit: c2cc141d26bd6c3cff05ba7176bb49ef37affde0
https://github.com/llvm/llvm-project/commit/c2cc141d26bd6c3cff05ba7176bb49ef37affde0
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M orc-rt/lib/bedrock/linux/TargetTriple.cpp
A orc-rt/test/regression/linux/check-rt-process-info.test
A orc-rt/test/regression/linux/lit.local.cfg
Log Message:
-----------
[orc-rt] Add very basic Linux triple detection. (#220814)
Commit: fbe6f045e733ce3306c78f0856ae4bc3933ade12
https://github.com/llvm/llvm-project/commit/fbe6f045e733ce3306c78f0856ae4bc3933ade12
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-02 (Wed, 02 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/StringMap.h
M llvm/lib/Support/SmallPtrSet.cpp
M llvm/unittests/ADT/DenseMapTest.cpp
M llvm/unittests/ADT/SmallPtrSetTest.cpp
M llvm/unittests/ADT/StringMapTest.cpp
Log Message:
-----------
[ADT] Invalidate iterators on move and swap in SmallPtrSet and StringMap (#220796)
This patch adds missing incrementEpoch() calls to:
- StringMapImpl's move constructor.
- SmallPtrSetImplBase's moveHelper() (move construction and assignment).
- SmallPtrSetImplBase's swap().
This ensures that existing iterators pointing into moved-from or
swapped containers are properly invalidated in debug mode.
Assisted-by: Antigravity
Commit: 34b1799860f3ef48fec5e76e0dcedeecdb7c5294
https://github.com/llvm/llvm-project/commit/34b1799860f3ef48fec5e76e0dcedeecdb7c5294
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/GVN.cpp
A llvm/test/Transforms/GVN/memoryssa-implies-no-memdep.ll
Log Message:
-----------
[GVN] Enforce MemDep/MemorySSA mutual exclusion for cl::opt overrides (#217896)
parseGVNOptions() already keeps the gvn<...> pass parameters mutually
exclusive, but the -enable-gvn-{memdep,memoryssa} cl::opt overrides
default independently. Two fixes for that path:
- Enabling MemorySSA now implies MemDep is off, so
-enable-gvn-memoryssa=true on its own no longer trips the on-demand
MemorySSA assertion.
- Explicitly enabling both is a contradiction and is now rejected with a
diagnostic instead of resolving it arbitrarily.
Commit: 83051952abc253395a811902921d2683d0a494ee
https://github.com/llvm/llvm-project/commit/83051952abc253395a811902921d2683d0a494ee
Author: SunilKuravinakop <98882378+SunilKuravinakop at users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
A flang/test/Lower/OpenMP/Todo/workshare-firstprivate-polymorphic.f90
A flang/test/Lower/OpenMP/workshare-firstprivate.f90
M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
Log Message:
-----------
[flang][OpenMP] incorrect handling for local variable in OpenMP parallel workshare firstprivate(P) (#195616)
Changes to handle "!$omp parallel workshare firstprivate(P)" where P is
an array. Handling the creation and initialization of the local copy
properly.
This also Fixes
[195337](https://github.com/llvm/llvm-project/issues/195337) .
---------
Sunil Kuravinakop <koops at hpe.com>
Commit: 8a63809466d6aa0a895d2922b812002b025f6229
https://github.com/llvm/llvm-project/commit/8a63809466d6aa0a895d2922b812002b025f6229
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/sve-vector-compress.ll
Log Message:
-----------
[AArch64][SVE] Promote unpacked 16-bit floats to legal VECTOR_COMPRESS ops (#220268)
This patch promotes f16 and bf16 VECTOR_COMPRESS ops for nxv2/nxv4 to
64-bit or 32-bit operations respectively. This allows lowering them via
`compact` in SVE1.
Assisted-by: Codex (tests)
Commit: 3a8affeef4da19d39191aac316e189eca3214a8c
https://github.com/llvm/llvm-project/commit/3a8affeef4da19d39191aac316e189eca3214a8c
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libc/src/pwd/CMakeLists.txt
A libc/src/pwd/field_tokenizer.h
A libc/src/pwd/flat_file_db.h
M libc/src/pwd/pwd_utils.cpp
M libc/src/pwd/pwd_utils.h
M libc/test/src/pwd/CMakeLists.txt
A libc/test/src/pwd/field_tokenizer_test.cpp
A libc/test/src/pwd/flat_file_db_test.cpp
M libc/test/src/pwd/getpwent_test.cpp
M libc/test/src/pwd/pwd_utils_test.cpp
Log Message:
-----------
[libc] Add FieldTokenizer and FlatFileDatabase (#214720)
Refactored the pwd database backend to separate file stream mechanics
from record parsing using generic FlatFileDatabase and FieldTokenizer
template engines.
POSIX user and group database queries must operate without dynamic heap
allocations (ruling out getline/getdelim) and service both static
process state (getpwent) and user-supplied reentrant buffers
(getpwnam_r).
To satisfy these requirements with zero runtime overhead:
* Implemented FieldTokenizer to provide safe, in-place span tokenisation
without pointer arithmetic or index-tracking hazards.
* Implemented FlatFileDatabase<EntryType> to encapsulate file lifecycle
(setdb, enddb, getnext) and predicate-based linear search (lookup)
parameterized directly on record types and free parse_line functions.
* Refactored PasswdParser into free parse_line and updated
process-global passwd state to use FlatFileDatabase<struct passwd>.
This establishes the common scanning and search engine that will be
reused directly by reentrant user lookups (getpwnam_r, getpwuid_r) and
the upcoming group database subsystem (getgrent, getgrnam, getgrgid).
Assisted-by: Automated tooling, human reviewed.
Commit: 1a9a9331e4b8015cbabec9f553af32ddc6441192
https://github.com/llvm/llvm-project/commit/1a9a9331e4b8015cbabec9f553af32ddc6441192
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libc/src/__support/FPUtil/dyadic_float.h
M libc/test/src/__support/FPUtil/dyadic_float_test.cpp
Log Message:
-----------
[libc][math] Fix `quick_add` incorrect exponent (#220374)
Fixes #220140
Failure from the test added
```sh
FAILURE
Failed to match double(c1) against LIBC_NAMESPACE::testing::getMatcher< LIBC_NAMESPACE::testing::TestCond::EQ>(double(a) + double(b)).
Expected floating point value: 0x47F0000000000000 = (S: 0, E: 0x047F, M: 0x0000000000000000)
Actual floating point value: 0x3FF0000000000000 = (S: 0, E: 0x03FF, M: 0x0000000000000000)
```
Commit: d1a52e46045cab156768c0058eb067ea91cdd100
https://github.com/llvm/llvm-project/commit/d1a52e46045cab156768c0058eb067ea91cdd100
Author: Mattéo Rizza Murgier <matteo.rizza-murgier at sipearl.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
M llvm/test/CodeGen/AArch64/complex-deinterleaving-fma.ll
Log Message:
-----------
[ComplexDeinterleaving] Fix miscompile with fma/fmuladd sign tracking (#220602)
This PR fixes a miscompile where the sign of the product in a `fma` was
also applied to the addend resulting in an incorrect `fcmla` angle.
Commit: f4ad12c3e4371874aaf40078785fb3d00a664aa0
https://github.com/llvm/llvm-project/commit/f4ad12c3e4371874aaf40078785fb3d00a664aa0
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/test/Target/LLVMIR/Import/import-failure.ll
Log Message:
-----------
[mlir][LLVMIR] Validate profile format metadata (#220582)
Commit: 20102748a3548a1006e32056868cb3df8ce83565
https://github.com/llvm/llvm-project/commit/20102748a3548a1006e32056868cb3df8ce83565
Author: Rainer Orth <ro at gcc.gnu.org>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang-rt/lib/runtime/environment.cpp
Log Message:
-----------
[flang-rt] Fix runtime/environment.cpp compilation on FreeBSD (#219705)
`runtime/environment.cpp` doesn't compile on FreeBSD:
```
runtime/environment.cpp:115:47: error: use of undeclared identifier 'RTLD_DEFAULT'
115 | auto envpp{reinterpret_cast<char ***>(dlsym(RTLD_DEFAULT, "environ"))};
| ^~~~~~~~~~~~
```
`<dlfcn.h>` needs to be included.
Tested on `x86_64-pc-freebsd15.1` and `x86_64-pc-linux-gnu`.
Commit: 7a5f8a04e602ea1d74f4a9f28fdd4d5592611e68
https://github.com/llvm/llvm-project/commit/7a5f8a04e602ea1d74f4a9f28fdd4d5592611e68
Author: Tapiwa Gonga <126596199+tapiwagonga at users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/getpid.h
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/getpid.cpp
Log Message:
-----------
[libc] Add getpid syscall wrapper for Linux (#220595)
Adds an internal `getpid` Linux system call wrapper
(`LIBC_NAMESPACE::linux_syscalls::getpid`) in
`src/__support/OSUtil/linux/syscall_wrappers/getpid.h` and registers the
corresponding CMake header library target.
This follows the established pattern of existing syscall wrappers in
this directory to allow internal utilities to query the process ID via
`SYS_getpid` in freestanding environments.
Update existing getpid to use it.
Assisted-by: Automated tooling, human reviewed.
Commit: 478f8bfd8e02295e0d9409130831410a6622fba0
https://github.com/llvm/llvm-project/commit/478f8bfd8e02295e0d9409130831410a6622fba0
Author: David Meng <davidmenggx at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h
M clang-tools-extra/docs/ReleaseNotes.md
M clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.rst
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-typedef-inherit-anon-tag-config.c
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-typedef-inherit-anon-tag-config.cpp
Log Message:
-----------
[clang-tidy] Add `TypedefInheritAnonTagConfig` to `readability-identifier-naming` (#213772)
`typedef enum {} MyEnum;` is currently checked against `TypedefCase`
even though the identifier names the enum itself. With the new option
enabled (default false), such a typedef or type alias is checked against
the style configured for that tag kind instead. If none is configured,
the typedef style still applies.
Closes https://github.com/llvm/llvm-project/issues/213665
---------
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
Commit: 68d0ae1c0de8008ea694cc3f310cbea0433505f2
https://github.com/llvm/llvm-project/commit/68d0ae1c0de8008ea694cc3f310cbea0433505f2
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
Log Message:
-----------
[SCEV] Express SeqMinMax de-dup visitor tersely (NFC) (#220539)
Express the redundant visitor code in
SCEVSequentialMinMaxDeduplicatingVisitor tersely.
Commit: 833ee6a5c5bec340c494a8bfd416fa8fe51bf2c4
https://github.com/llvm/llvm-project/commit/833ee6a5c5bec340c494a8bfd416fa8fe51bf2c4
Author: Harry Ramsey <harry.ramsey at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-interleave-low-vf-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-accesses.ll
Log Message:
-----------
[AArch64][Vectorizer] Enable scalable factor-3 interleaving (#217370)
AArch64 can lower scalable `llvm.vector.interleave3` and
`llvm.vector.deinterleave3` intrinsics. Allow the vectorizer to cost
these operations when the interleave factor is supported.
Factor-3 lowering requires each input vector to have a known minimum
size of 384 bits, so retain an invalid cost for smaller scalable vector types.
Commit: dfa87f3575280b998d3714b5a3faf1e11548c515
https://github.com/llvm/llvm-project/commit/dfa87f3575280b998d3714b5a3faf1e11548c515
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M lldb/test/API/functionalities/breakpoint/hardware_breakpoints/write_memory_with_hw_breakpoint/TestWriteMemoryWithHWBreakpoint.py
M lldb/test/API/functionalities/breakpoint/write_over_software_breakpoint/TestWriteOverSoftwareBreakpoint.py
Log Message:
-----------
Reland "[lldb][test] Disable two breakpoint tests for debugserver" (#220845)
Reverts llvm/llvm-project#220615
These tests are still failing in Swift CI despite apparently working at
desk:
https://ci.swift.org/view/all/job/llvm.org/job/lldb-cmake-sanitized/1529/
Tracking this in https://github.com/llvm/llvm-project/issues/220844.
Commit: 81c5a3bc169f5c85bbae0ada05515ab11d49a6bd
https://github.com/llvm/llvm-project/commit/81c5a3bc169f5c85bbae0ada05515ab11d49a6bd
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M lldb/unittests/Target/RegisterTypeBuilderClangTest.cpp
Log Message:
-----------
[lldb][test] Fix RegisterTypeBuilder tests on Arm 32-bit (#220591)
By setting the target triple to x86_64 Linux (same as the fake
platform), so we are always using the x86_64 types.
Fixes #218725 / bc2a795648a3b3412fb833db4f879dae3d604275.
There were two failure points:
* Pointer sizes, easily fixed by using sizeof(void*).
* Bfloat type being valid but not having a size. I think that's because
for it to have a size on Arm you'd have to have the bf16 feature
enabled.
And I could work around both of those but it would make the tests more
complex for a detail we're not actually concerned about here.
Also it's confusing to see a triple set in one thing and not used in
another, so we should make that
consistent regardless.
Commit: 0d22d4cc858e72e0d467eaa5685fb96f1b6fdd5e
https://github.com/llvm/llvm-project/commit/0d22d4cc858e72e0d467eaa5685fb96f1b6fdd5e
Author: michaelselehov <michael.selehov at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
A llvm/test/Analysis/CostModel/AMDGPU/bitcast-mask.ll
A llvm/test/Analysis/CostModel/AMDGPU/reduce-add-i1.ll
M llvm/test/Analysis/CostModel/AMDGPU/reduce-and.ll
M llvm/test/Analysis/CostModel/AMDGPU/reduce-or.ll
A llvm/test/Analysis/CostModel/AMDGPU/reduce-xor.ll
A llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction-i1-mask.ll
Log Message:
-----------
[AMDGPU] Price the packed form of a vector of i1 (#217327)
A vector of i1 has no packed form on this target: every element lives in its
own mask, so building an integer from the elements takes a select, a shift and
an or per element. The generic cost model charges about one instruction per
element for that work, and nothing at all for the reverse.
Price the bitcast in both directions, and the add and the xor reduction over a
vector of i1. Measured instruction counts from gfx900 to gfx1201 give 4 per
element to pack a mask and 3 to unpack it.
Assisted-by: Claude Opus
Commit: 9020c7f7ab220626710b6ab844213a7f7756a72e
https://github.com/llvm/llvm-project/commit/9020c7f7ab220626710b6ab844213a7f7756a72e
Author: Tomohiro Kashiwada <kikairoya at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Cygwin.h
M clang/test/CodeGen/dwarf-version.c
Log Message:
-----------
[Clang][Cygwin] Set default DWARF version to 4 (#220738)
Cygwin distribution's GDB doesn't work with DWARF 5.
Do the same as MinGW (6cf64b2d2858dc93c3ec93438bdaca2807847e9b).
Commit: 778919df9ee16ade3c7090efb6edb7a7f332237c
https://github.com/llvm/llvm-project/commit/778919df9ee16ade3c7090efb6edb7a7f332237c
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
M llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
Log Message:
-----------
Remove unused MachineBlockFrequencyInfo::isIrrLoopHeader. NFC (#220841)
The only consumer used to be PGOInstrumentation, which now reads it
through the IR-level BlockFrequencyInfo.
Commit: 3f283bd5806313b4d500c4ed48c0d26c676d47c6
https://github.com/llvm/llvm-project/commit/3f283bd5806313b4d500c4ed48c0d26c676d47c6
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/test/Analysis/ScalarEvolution/exhaustive-trip-counts.ll
Log Message:
-----------
[SCEV] Add additional exhaustive-trip-counts test coverage (#218882)
To increase coverage of getConstantEvolvingPHIOperands.
Assisted-by: AI
Commit: 026e3f3cc5f73072cc55a7228e64b9d0db5938b5
https://github.com/llvm/llvm-project/commit/026e3f3cc5f73072cc55a7228e64b9d0db5938b5
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
Log Message:
-----------
[clang][bytecode] Check strcmp input for unknown-size arrays (#220835)
The later calls to getNumElems() will fail for them.
Commit: 4006059d2d07add782dbe8575afacb075601749a
https://github.com/llvm/llvm-project/commit/4006059d2d07add782dbe8575afacb075601749a
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libcxx/src/memory_resource.cpp
A libcxx/test/std/utilities/utility/mem.res/mem.res.global/new_delete_resource.align.pass.cpp
M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_overaligned_request.pass.cpp
Log Message:
-----------
[libc++] Fix std::pmr::new_delete_resource() returning underaligned pointers (#219166)
We're currently using `__libcpp_allocate` inside
`std::pmr::new_delete_resource`. `__libcpp_allocate` calls `operator
new` without an alignment argument if the alignment is small enough.
This, however, violates the requirement that `new_delete_resource` needs
to return a pointer with an alignment greater or equal to the alignment
argument, since `operator new` without an alignment argument only has to
return "suitably aligned storage", which basically assumes that `size >=
alignment`. To fix that we can simply call the aligned operator new
unconditionally.
Commit: 7340cf42e84fb1187ef2c9477908fb92f2f38e79
https://github.com/llvm/llvm-project/commit/7340cf42e84fb1187ef2c9477908fb92f2f38e79
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang-rt/unittests/Runtime/ExternalIOTest.cpp
Log Message:
-----------
[flang-rt] Fix out of bounds read in ExternalIOTest.cpp (#218966)
The test added by 076da86cd35aa58759c9be7d23ba4cd8693b7414 / #180605
fails when run with ASAN:
```
==339162==ERROR: AddressSanitizer: global-buffer-overflow on address 0xc565e049c86e at pc 0xc565e0ee9268 bp 0xffffd5d7de20 sp 0xffffd5d7de18
READ of size 1 at 0xc565e049c86e thread T0
#0 0xc565e0ee9264 in Fortran::runtime::TrimTrailingSpaces(char const*, unsigned long) /home/davspi01/llvm-project/flang-rt/lib/runtime/tools.cpp:21:19
#1 0xc565e0e41d7c in Fortran::runtime::io::OpenStatementState::set_path(char const*, unsigned long) /home/davspi01/llvm-project/flang-rt/lib/runtime/io-stmt.cpp:291:17
#2 0xc565e0d56a84 in _FortranAioSetFile /home/davspi01/llvm-project/flang-rt/lib/runtime/io-api.cpp:1072:11
<...>
0xc565e049c86e is located 0 bytes after global variable '.str.263' defined in '/home/davspi01/llvm-project/flang-rt/unittests/Runtime/ExternalIOTest.cpp' (0xc565e049c860) of size 14
'.str.263' is ascii string 'opennewextant'
```
The test calls SetFile with "opennewextant" and a length of 15, but the
length of that string is 13 (characters). TrimTrailingSpaces trusts that
length and does `s[n - 1]`, which accesses out of bounds.
Fix this by using the correct length of the string.
Commit: 5cebb6ce1423f84513c32953ab984aba811a3345
https://github.com/llvm/llvm-project/commit/5cebb6ce1423f84513c32953ab984aba811a3345
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 7a5f8a0 (#220838)
This fixes 7a5f8a04e602ea1d74f4a9f28fdd4d5592611e68 (#220595).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=7a5f8a04e602ea1d74f4a9f28fdd4d5592611e68
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: edd28877bc1975fddfc127b5bf9ac20b4f8e0df3
https://github.com/llvm/llvm-project/commit/edd28877bc1975fddfc127b5bf9ac20b4f8e0df3
Author: Luke Lau <luke at igalia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/blend-costs.ll
M llvm/test/Transforms/LoopVectorize/RISCV/pr87378-vpinstruction-or-drop-poison-generating-flags.ll
M llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs-max-bandwidth.ll
M llvm/test/Transforms/LoopVectorize/reduction-inloop.ll
Log Message:
-----------
[VPlan] Simplify (x && y) | !x -> !x || y (#220801)
https://alive2.llvm.org/ce/z/MkNMAB
This should reduce the sensitivity of the ordering of blend masks, as
noticed in
https://github.com/llvm/llvm-project/pull/219060/changes#r3920863730
Commit: 50f7c40b113a06242965feec71909595f97fe522
https://github.com/llvm/llvm-project/commit/50f7c40b113a06242965feec71909595f97fe522
Author: shivaramaarao <58245296+shivaramaarao at users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
A flang/test/Lower/OpenMP/omp-lib-header-integer-wrappers.f90
M openmp/module/omp_lib.h.var
Log Message:
-----------
[flang][OpenMP] Fix integer kind handling for omp_lib.h entry points (#218836)
Replace bind(c) interface definitions for OpenMP/KMP routines that take
integer arguments with external declarations in omp_lib.h. The strict
interfaces caused Flang to fail intrinsic resolution when callers passed
integer arguments whose kind differed from omp_integer_kind.
Added a regression test that includes omp_lib.h and exercises these
routines with integer kinds 1, 2, 4, and 8.
Commit: 5ba0b37ca29e05939e5bdc77e756140821c23cce
https://github.com/llvm/llvm-project/commit/5ba0b37ca29e05939e5bdc77e756140821c23cce
Author: shivaramaarao <58245296+shivaramaarao at users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang-rt/lib/runtime/CMakeLists.txt
Log Message:
-----------
[flang-rt] Fix missing omp_lib symbols in static runtime archive (#220821)
When both FLANG_RT_ENABLE_STATIC and FLANG_RT_ENABLE_SHARED are enabled,
runtime sources are built through an intermediate object library. Nested
$<TARGET_OBJECTS:libomp-mod> in that object library does not reliably
end up in libflang_rt.runtime.a,so omp_lib Fortran module symbols are
missing from the static archive. This causes undefined reference errors
for symbols defined in omp_lib_impl.F90 file.
Attached libomp-mod object files directly to flang_rt.runtime.static and
flang_rt.runtime.shared instead of routing them through
obj.flang_rt.runtime.
Assisted by Cursor to find the root cause.
Commit: d9b65e6e580f40979b6b64c08e641faec8b3fa91
https://github.com/llvm/llvm-project/commit/d9b65e6e580f40979b6b64c08e641faec8b3fa91
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/CodeGen/AArch64/get-active-lane-mask-extract.ll
M llvm/test/CodeGen/AArch64/sve-extract-fixed-from-scalable-vector.ll
M llvm/test/CodeGen/AArch64/sve-extract-fixed-vector.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-reshuffle.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-reshuffle.ll
M llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
Log Message:
-----------
[LLVM][CodeGen][SVE] Improve code quality of predicate vector extracts. (#220254)
When extracting a fixed-length vector from a scalable boolean vector, it
is better to promote the scalable vector to i8s and extract from that
because it makes the resulting DAG mostly legal with the hope the
truncation of the result will be eliminated.
NOTE: CodeGenDAGPatterns has been changed because the original code was
too strict. Before this change a fixed-length vector was not considered
a valid subvector of a scalable vector. This erronously removed all
scalable vector MVTs to the point that type checking was disabled for
some operations because the matcher assumed only a single MVT was legal.
The net result of this is that NEON only patterns matched against
scalable vector inputs and thus generated bad code.
Commit: b62be688263a661b50628f1c820eabf956b13de3
https://github.com/llvm/llvm-project/commit/b62be688263a661b50628f1c820eabf956b13de3
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libcxx/include/__memory/uninitialized_algorithms.h
M libcxx/include/__vector/vector.h
M libcxx/include/condition_variable
M libcxx/include/memory
R libcxx/test/libcxx/memory/uninitialized_allocator_copy.pass.cpp
A libcxx/test/libcxx/memory/uninitialized_allocator_copy_n.pass.cpp
M libcxx/test/libcxx/transitive_includes/cxx26.csv
M libcxx/test/libcxx/transitive_includes/cxx29.csv
Log Message:
-----------
[libc++] Replace __uninitialized_allocator_copy with __uninitialized_allocator_copy_n (#219445)
We can simplify our code by using an iterator/size version instead of
the iterator pair.
This was originally part of #214132. However, that patch has a difficult
to track down performance issue. I'm splitting it up to make the search
easier.
Commit: 35259509c54b4045602d756e5447994bfddb2756
https://github.com/llvm/llvm-project/commit/35259509c54b4045602d756e5447994bfddb2756
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
A llvm/test/Transforms/OpenMP/parallel_region_merging_debug_loc.ll
Log Message:
-----------
[OpenMPOpt] Preserve debug locations when emitting barriers. (#220554)
One of the OpenMPIRBuilder::LocationDescription constructors takes an
insertion point alone and leaves the debug location default-constructed.
It is not explicit, so passing a bare insertion point to a builder entry
point converts through it silently and everything the callee emits comes
out without a !dbg.
That becomes a hard error once a runtime built with debug info is linked
in, because the verifier requires an inlinable call inside a function
with debug info to have a location. Otherwise the link fails with
inlinable function call in a function with debug info must have a !dbg
location
%omp_global_thread_num1 = call i32 @__kmpc_global_thread_num(ptr @4)
inlinable function call in a function with debug info must have a !dbg
location
call void @__kmpc_barrier(ptr @3, i32 %omp_global_thread_num1)
error: linked module is broken!
The same module links clean against a runtime without debug info, which
is why this stays latent until someone builds one with it.
This is part of an ongoing effort to remove those accidental drops,
after https://github.com/llvm/llvm-project/pull/211254 for the MLIR
translation layer and https://github.com/llvm/llvm-project/pull/218961
for OpenMPIRBuilder.
Three of the barriers here were emitted through a bare insertion point,
so the __kmpc_barrier calls came out with no !dbg even though a suitable
location was sitting right there in each case.
The remaining case in createIdent is left explicitly empty as the
insertion point is only set so the builder can reach the module,
according to the comment above it.
That comment is out of date though: the module is passed explicitly now,
so nothing there needs the insertion point. The workaround is dead code
and will be removed in a separate commit.
---------
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: e5709e10bca1da37314b117b1f44d68a4441fd1b
https://github.com/llvm/llvm-project/commit/e5709e10bca1da37314b117b1f44d68a4441fd1b
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libc/src/__support/net/CMakeLists.txt
M libc/src/__support/net/address.cpp
M libc/src/__support/net/address.h
M libc/src/arpa/inet/CMakeLists.txt
M libc/src/arpa/inet/inet_addr.cpp
M libc/src/arpa/inet/inet_aton.cpp
M libc/test/src/arpa/inet/inet_addr_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc] Reject binary strings in inet_addr and inet_aton (#220556)
The current version of POSIX does not permit inet_addr to accept these
strings, and glibc does not either. inet_aton is not present in POSIX,
but this matches glibc and the intent of this function being a safer
version of inet_addr.
While in there, update the internal wrapper to use cpp::string_view.
Fixes #219133.
Commit: d27381ed50f82bc525cb5f3403af3c3381203437
https://github.com/llvm/llvm-project/commit/d27381ed50f82bc525cb5f3403af3c3381203437
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
Log Message:
-----------
[TTI] Cache type legalization costs (NFC). (#220701)
Computing type legalization costs is not completely cheap, and can be
cached easily, at a slight increase in max RSS in a few cases. Wins are
greater on workloads with lots of code elegible for SLP vectorization.
Improves compile-time:
* stage1-O3: -0.12%
* stage1-ReleaseThinLTO: -0.13%
* stage1-ReleaseLTO-g: -0.15%
* stage1-aarch64-O3: -0.08%
* stage2-O3: -0.10%
https://llvm-compile-time-tracker.com/compare.php?from=8cc60b748cc3e423e48517c35e8cfea7d6d6c6b7&to=55d92fccf21782461882953b91ff31490735a5a8&stat=instructions:u
PR: https://github.com/llvm/llvm-project/pull/220701
Commit: 382165766eaab87bd39fe3cba699fd54d6fe1985
https://github.com/llvm/llvm-project/commit/382165766eaab87bd39fe3cba699fd54d6fe1985
Author: Chris Copeland <chris at chrisnc.net>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
A clang/test/CodeGen/arm-eabihf-no-fpregs.c
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/test/CodeGen/ARM/eabihf-no-fpregs.ll
Log Message:
-----------
[ARM] Name caller and callee in unsupported hard-float calling convention error message (#217693)
Add a clang test for the diagnostic output covering cases with and
without debuginfo.
Commit: 9b4c98114d4a1354d67cffa7efb20d0baa25c546
https://github.com/llvm/llvm-project/commit/9b4c98114d4a1354d67cffa7efb20d0baa25c546
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/IPO/SCCP.cpp
M llvm/test/Transforms/SCCP/assume-equality-pointers.ll
Log Message:
-----------
[IPSCCP] Do not delete non-replaceable constants during globals cleanup (#220854)
Following up on #160083, a tracked global's value may be inferred to be
a constant which is however not replaceable, due to different pointer
provenance. Such a substitution is already prevented by
`tryToReplaceWithConstant`. Ensure these globals, and their users, are
not deleted when this happens to be the case.
Fixes: https://github.com/llvm/llvm-project/issues/220793.
Commit: 3fcd3eb24e16322727be6e2c9229062cbe62ea6a
https://github.com/llvm/llvm-project/commit/3fcd3eb24e16322727be6e2c9229062cbe62ea6a
Author: VladimirMedic <Vladimir.Medic at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/test/tools/llvm-objdump/ELF/Hexagon/source-interleave-hexagon.ll
M llvm/test/tools/llvm-objdump/X86/source-interleave-function-from-debug.test
M llvm/test/tools/llvm-objdump/X86/source-interleave-prefix-non-windows.test
M llvm/test/tools/llvm-objdump/X86/source-interleave-prefix-windows.test
M llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test
M llvm/test/tools/llvm-objdump/X86/source-path.test
M llvm/test/tools/llvm-objdump/XCOFF/print-linenumber.test
M llvm/tools/llvm-objdump/SourcePrinter.cpp
Log Message:
-----------
Normalize file path to fix problems with different folder separators. (#215225)
We have two issues reported by users:
1. Inconsistent file path separators in isa disassembly for line
correlation
2. --substitute-path silently fails for binaries compiled on Windows
when analyzed on Linux
Normalizing the file path in LineInfo is sorting both problems. As the
path is normalized immediately after symbolization, following redundant
normalization calls are removed. Tests are adjusted to accept either /
or \ depending on the host. Additional input is created to test point 2.
Commit: 13b5a5a4b63b3e62659e60f5519d26b8c53312a1
https://github.com/llvm/llvm-project/commit/13b5a5a4b63b3e62659e60f5519d26b8c53312a1
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M orc-rt/lib/bedrock/CMakeLists.txt
R orc-rt/lib/bedrock/darwin/CPUFeatures.cpp
R orc-rt/lib/bedrock/darwin/TargetTriple.cpp
R orc-rt/lib/bedrock/linux/CPUFeatures.cpp
R orc-rt/lib/bedrock/linux/TargetTriple.cpp
R orc-rt/lib/bedrock/posix/DynamicLibrary.cpp
R orc-rt/lib/bedrock/posix/Errno.cpp
R orc-rt/lib/bedrock/posix/Memory.cpp
A orc-rt/lib/bedrock/sys/darwin/CPUFeatures.cpp
A orc-rt/lib/bedrock/sys/darwin/TargetTriple.cpp
A orc-rt/lib/bedrock/sys/linux/CPUFeatures.cpp
A orc-rt/lib/bedrock/sys/linux/TargetTriple.cpp
A orc-rt/lib/bedrock/sys/posix/DynamicLibrary.cpp
A orc-rt/lib/bedrock/sys/posix/Errno.cpp
A orc-rt/lib/bedrock/sys/posix/Memory.cpp
A orc-rt/lib/bedrock/sys/windows/CPUFeatures.cpp
A orc-rt/lib/bedrock/sys/windows/TargetTriple.cpp
R orc-rt/lib/bedrock/windows/CPUFeatures.cpp
R orc-rt/lib/bedrock/windows/TargetTriple.cpp
Log Message:
-----------
[orc-rt] Group lib/bedrock per-OS sources under sys/. NFC. (#220851)
include/orc-rt-internal/support/ already nests its per-OS headers under
sys/ (e.g. support/sys/darwin/CacheControl.h). lib/bedrock/ had darwin/,
linux/, posix/, and windows/ as bare siblings of the generic .cpp files
and sps/, so the two trees didn't line up.
Move them under lib/bedrock/sys/ to match, and update the source lists
and comments in CMakeLists.txt accordingly.
Commit: 1830dcfa42c0b816c913750c301bf9bb79adfb4a
https://github.com/llvm/llvm-project/commit/1830dcfa42c0b816c913750c301bf9bb79adfb4a
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/docs/LangRef.md
M llvm/include/llvm/Bitcode/LLVMBitCodes.h
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/Instructions.h
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/test/Assembler/flags.ll
M llvm/test/Bitcode/compatibility.ll
M llvm/test/Bitcode/flags.ll
M llvm/test/Transforms/InferAddressSpaces/AMDGPU/infer-addrspacecast.ll
M llvm/test/Transforms/InstCombine/addrspacecast.ll
Log Message:
-----------
IR: Add nonnull flag to addrspacecast (#217903)
Introduce the nonnull flag on the addrspacecast instruction,
asserting that the source pointer is not the null value of its
source address space. If the source is the source-address-space null
value, the result is poison.
The LangRef does not yet acknowdlege the existence of non-0 null
pointers, or null pointers for address spaces other than default,
but will "soon".
This gives the target a way to omit the runtime null check to map
between the null values. Currently AMDGPU works around the lack of
this flag by introducing the hacky llvm.amdgcn.addrspacecast.nonnull
intrinsic in a late target codegen pass.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: b2b865e9a9aaffb1543a0e1136d5ceb44987fc70
https://github.com/llvm/llvm-project/commit/b2b865e9a9aaffb1543a0e1136d5ceb44987fc70
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/CodeGen/Targets/Sparc.cpp
M clang/test/CodeGen/Sparc/variadic-aggregate.c
Log Message:
-----------
[Sparc] don't pass aggregate varargs in float registers (#216524)
https://godbolt.org/z/o1nGYEM33
```c
extern void sink(int, ...);
void variadic_cld(_Complex float z) { sink(0, z); }
```
Current clang just uses float registers
```asm
variadic_cld:
mov %g0, %o0
fmovs %f0, %f2
fmovs %f1, %f3
mov %o7, %g1
call sink
mov %g1, %o7
```
GCC packs a complex float into a single GPR
```asm
variadic_cld:
save %sp, -192, %sp
st %f0, [%fp+2043]
lduw [%fp+2043], %g1
sllx %g1, 32, %g1
srl %o1, 0, %o1
or %o1, %g1, %o1
st %f1, [%fp+2043]
lduw [%fp+2043], %g2
mov -1, %g1
sllx %g1, 32, %g1
and %o1, %g1, %o1
or %o1, %g2, %o1
call sink, 0
mov 0, %o0
return %i7+8
nop
```
cc
- https://github.com/llvm/llvm-project/pull/216521
- https://github.com/llvm/llvm-project/pull/216519
Commit: 921a6db53df97d1c81cde2153779386e7ade0777
https://github.com/llvm/llvm-project/commit/921a6db53df97d1c81cde2153779386e7ade0777
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/openmp-reduction-barrier-debug-loc.mlir
Log Message:
-----------
[MLIR][OpenMP] Preserve the debug location for the reduction barrier. (#220605)
`createReductionsAndCleanup` passed the insert point returned by
`createReductions` straight into `createBarrier`. That selects`
LocationDescription(const InsertPointTy &)`, which leaves the debug
location default-constructed, so the `__kmpc_barrier` and the
`__kmpc_global_thread_num` generated by `createBarrier` are emitted
without a !dbg.
That breaks the device link of a target region compiled with -g once a
device runtime built with debug info is present. The verifier fails with
the following error:
inlinable function call in a function with debug info must have a !dbg
location
%31 = call i32 @__kmpc_global_thread_num
inlinable function call in a function with debug info must have a !dbg
location
call void @__kmpc_barrier
LLVM ERROR: Broken module found, compilation aborted!
This is the same class as the sites converted in #211254. Fix it by
passing a valid debug location.
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 10c7bb042b5b6266a390d7b39318ca059177793f
https://github.com/llvm/llvm-project/commit/10c7bb042b5b6266a390d7b39318ca059177793f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/docs/OpenMP-declare-target.md
M flang/test/Fir/omp-declare-target-data.fir
M flang/test/Integration/OpenMP/declare-target-deferred-marking-reductions.f90
M flang/test/Integration/OpenMP/declare-target-deferred-marking.f90
M flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90
M flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap.f90
M flang/test/Integration/OpenMP/declare-target-implicit-tarop-cap.f90
M flang/test/Integration/OpenMP/declare-target-named-main-interface.f90
M flang/test/Integration/OpenMP/function-filtering-2.f90
M flang/test/Lower/OpenMP/common-block-map.f90
M flang/test/Lower/OpenMP/declare-target-data.f90
M flang/test/Lower/OpenMP/declare-target-func-and-subr.f90
M flang/test/Lower/OpenMP/declare-target-multiple-entry.f90
M flang/test/Lower/OpenMP/declare-target-unnamed-main.f90
M flang/test/Lower/OpenMP/declare_target_module.f90
M flang/test/Lower/OpenMP/omp-declare-target-program-var.f90
M flang/test/Transforms/omp-automap-to-target-data.fir
M flang/test/Transforms/omp-function-filtering-todo.mlir
M mlir/docs/DefiningDialects/AttributesAndTypes.md
M mlir/include/mlir/Dialect/OpenMP/OpenMPAttrDefs.td
M mlir/include/mlir/IR/EnumAttr.td
M mlir/test/Dialect/OpenMP/attr.mlir
M mlir/test/Dialect/OpenMP/function-filter.mlir
M mlir/test/Dialect/OpenMP/host-op-filtering.mlir
M mlir/test/Dialect/OpenMP/invalid-interface.mlir
M mlir/test/Dialect/OpenMP/mark-declare-target.mlir
M mlir/test/Dialect/OpenMP/stack-to-shared.mlir
M mlir/test/Target/LLVMIR/omptarget-atomic-capture-control-options.mlir
M mlir/test/Target/LLVMIR/omptarget-atomic-update-control-options.mlir
M mlir/test/Target/LLVMIR/omptarget-constant-alloca-raise.mlir
M mlir/test/Target/LLVMIR/omptarget-debug-map-link-loc.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-all-device-types-device.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-func-visibility.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device-2.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-module-rewrite-device.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-to-device.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-to-host.mlir
M mlir/test/Target/LLVMIR/omptarget-device-shared-mem.mlir
M mlir/test/Target/LLVMIR/omptarget-multi-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir
M mlir/test/Target/LLVMIR/omptarget-private-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction-array-descriptor.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-wsloop-collapsed.mlir
M mlir/test/Target/LLVMIR/omptarget-wsloop.mlir
M mlir/test/Target/LLVMIR/openmp-data-target-device.mlir
M mlir/test/Target/LLVMIR/openmp-llvm-invalid.mlir
M mlir/test/Target/LLVMIR/openmp-llvm.mlir
M mlir/test/Target/LLVMIR/openmp-target-private-shared-mem.mlir
M mlir/test/lib/Dialect/Test/TestAttrDefs.td
M mlir/test/lib/Dialect/Test/TestEnumDefs.td
M mlir/test/mlir-tblgen/attr-or-type-format-roundtrip.mlir
M mlir/test/mlir-tblgen/attr-or-type-format.td
M mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp
Log Message:
-----------
[MLIR][ODS] Strip EnumAttr parameters in struct formats (#220727)
Add typed EnumAttr parameter wrappers for attribute and type
definitions.
Parse and print their underlying enum values inside struct directives.
Assisted-by: Codex
Commit: ae0347b0275bb709607da9f6884bedc8aa99ea23
https://github.com/llvm/llvm-project/commit/ae0347b0275bb709607da9f6884bedc8aa99ea23
Author: Anatoly Trosinenko <atrosinenko at accesssoftek.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/test/CodeGen/AArch64/swifttail-ptrauth.ll
Log Message:
-----------
[AArch64][PAC] Fix the list of registers clobbered by PAUTH_EPILOGUE (#220190)
When SP adjustment might be needed, whether X15 scratch register can be used
by PAUTH_EPILOGUE or not depends on PAuth LR hardening being requested for
the particular function, not the availability of `FEAT_PAuth_LR`.
Commit: 542e90edacd746e87a5d2be0eb1da2d1e29cf1e9
https://github.com/llvm/llvm-project/commit/542e90edacd746e87a5d2be0eb1da2d1e29cf1e9
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Operator.cpp
M llvm/test/Transforms/EarlyCSE/flags.ll
M llvm/test/Transforms/SimplifyCFG/HoistCode.ll
M llvm/unittests/IR/InstructionsTest.cpp
Log Message:
-----------
IR: Intersect and drop the addrspacecast nonnull flag (#217904)
Teach the flag-propagation controls about the nonnull flag
on addrspacecast.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 1d3ecdca6144f75ba30ee2a07fabead1ae486772
https://github.com/llvm/llvm-project/commit/1d3ecdca6144f75ba30ee2a07fabead1ae486772
Author: Matt Turner <mattst88 at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/test/AST/ByteCode/c.c
M clang/test/AST/ByteCode/complex.c
M clang/test/Lexer/bitint-constants-compat.c
Log Message:
-----------
[clang] Make the _BitInt literal suffix a pedantic-only extension (#217815)
Clang diagnoses the `wb`/`uwb` `_BitInt` literal suffixes before C23
by default. Nothing else about the feature is reported that eagerly.
the `_BitInt` type the suffix names, is an `Extension` and only fires
under `-pedantic` or `-Wbit-int-extension`.
Change the suffix diagnostic to an `Extension` which is also how GCC
behaes.
Assisted-by: Claude Code
Commit: 372bafee67352363fcd25f77faddab92e405e051
https://github.com/llvm/llvm-project/commit/372bafee67352363fcd25f77faddab92e405e051
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/test/tools/llvm-reduce/reduce-flags.ll
M llvm/tools/llvm-reduce/ReducerWorkItem.cpp
M llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp
Log Message:
-----------
llvm-reduce: Handle the addrspacecast nonnull flag (#217907)
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: e0b632040e6c141b1540c14d1106dbe69a924f81
https://github.com/llvm/llvm-project/commit/e0b632040e6c141b1540c14d1106dbe69a924f81
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/test/CodeGen/AArch64/neon/f16-getset.c
M clang/test/CodeGen/AArch64/neon/perm.c
M clang/test/CodeGen/AArch64/neon/vpaddl.c
Log Message:
-----------
[Clang][CIR] Unify RUN lines in AArch64 tests for Neon (#220538)
Makes sure that we consistently use `%clang_cc1_cg_arm64_neon` in all
tests.
Commit: ed6cedcd145c77f6bfedab98c1ec0fbda041e987
https://github.com/llvm/llvm-project/commit/ed6cedcd145c77f6bfedab98c1ec0fbda041e987
Author: Joshua Rodriguez <josh.rodriguez at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
M llvm/test/CodeGen/AArch64/arm64-uzp.ll
Log Message:
-----------
[AArch64][GlobalISel] Create uzp in shuffle(v, undefined) situations (#220535)
Stacked PR: 2/3. Preceded by
https://github.com/llvm/llvm-project/pull/219226.
In SDAG, the aarch64-isel phase checks if vector shuffles can be
expressed as uzps. To do this, it checks shuffles of type shuffle(v, v),
and shuffle(v, undefined).
GlobalISel previously only checked shuffles of type shuffle(v, v). Add a
check for the situation where one of the operands is undefined.
Notes:
An uzp de-interleaves the even and odd elements of two vectors.
e.g: `uzp <0, 1, 2, 3>, <4, 5, 6, 7> => <0, 2, 4, 6, 1, 3, 5, 7>`.
A uzp1 takes the bottom half of the result (aka. the even-indexed
elements)
e.g: `uzp1 <0, 1, 2, 3>, <4, 5, 6, 7> => <0, 2, 4, 6>`.
A shuffle is an LLVM IR generic opcode that takes 2 vectors, and places
elements of each into a single vector. The elements are selected based
on a mask.
e.g: `G_SHUFFLE_VECTOR <A, B, C, D>, <E, F, G, H>, <0, 4, 6, 3> => <A,
E, G, D>`.
A shuffle can be represented as a uzp when the result of the shuffle is
just a de-interleaving of one vector.
e.g: `G_SHUFFLE_VECTOR <A, B, C, D>, <A, B, C, D>, <0, 6> => uzp1 <A,
C,>`.
Commit: 1ce15b097423a79f06a0f6777fbb8254db89d2e1
https://github.com/llvm/llvm-project/commit/1ce15b097423a79f06a0f6777fbb8254db89d2e1
Author: Tulio Magno Quites Machado Filho <tuliom at redhat.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/test/CMakeLists.txt
Log Message:
-----------
[mlir] Disable some tests when the execution engine is disabled (#220741)
It's possible to have a scenario where the native target is enabled, but
the execution engine is not, e.g. when trying to avoid an issue with the
execution engine.
In that case, we need to disable the tests that depend on: mlir-runner,
mlir_async_runtime, mlir-capi-execution-engine-test,
mlir-capi-global-constructors-test, mlir_c_runner_utils,
mlir_runner_utils and mlir_float16_utils.
Commit: c6f9cf2bf5a36e42606a684d6a0c37c005dd4bc2
https://github.com/llvm/llvm-project/commit/c6f9cf2bf5a36e42606a684d6a0c37c005dd4bc2
Author: David Green <david.green at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3AE.td
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-neon-instructions.s
Log Message:
-----------
[AArch64] Add Neoverse V3AE scheduling info for v264 frecpe (#219115)
This was missing, falling back to the default information. It should be
like the others.
Commit: 9173f847946202e9869aaf9294c97356169d0425
https://github.com/llvm/llvm-project/commit/9173f847946202e9869aaf9294c97356169d0425
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/Utils/ConversionUtils.h
Log Message:
-----------
[mlir][Tosa] Avoid copying inferred shape components (NFC) (#220908)
Bind the inferred shape by const reference while it remains owned by the
local result vector. The helper only reads the shape components, so
copying their shape storage is unnecessary.
Found by Coverity.
Assisted-by: Codex
Commit: be27db8639ef120465f03b8327cdb7772826863a
https://github.com/llvm/llvm-project/commit/be27db8639ef120465f03b8327cdb7772826863a
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
Log Message:
-----------
[mlir][GPUToSPIRV] Avoid copying the target environment (NFC) (#220909)
Keep a const reference to the target environment returned by the type
converter. The conversion only reads the environment to obtain the
subgroup size, so copying it is unnecessary.
Found by Coverity.
Assisted-by: Codex
Commit: 8038da43de43a52c64cde7b80052661ada07e1e3
https://github.com/llvm/llvm-project/commit/8038da43de43a52c64cde7b80052661ada07e1e3
Author: sstipano <sstipano at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/BUFInstructions.td
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mtbuf.s
M llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf.s
A llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf_err.s
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_isel.ll.expected
Log Message:
-----------
[AMDGPU] MC support for indexed VBUFFER resources for gfx13 (#218649)
Commit: d23b9dbc4e8b25fc673970b27fad53a2e7a7fe60
https://github.com/llvm/llvm-project/commit/d23b9dbc4e8b25fc673970b27fad53a2e7a7fe60
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/tools/mlir-tblgen/RewriterGen.cpp
Log Message:
-----------
[mlir][tblgen] Avoid copies when iterating symbols (NFC) (#220910)
Use a const structured binding when looking up locally bound symbols.
The symbol name and SymbolInfo remain owned by localSymbolMap for the
duration of the lookup, so copying both values is unnecessary.
Found by Coverity.
Assisted-by: Codex
Commit: bf1874e420a374b72b7afde7dc801e24007f979c
https://github.com/llvm/llvm-project/commit/bf1874e420a374b72b7afde7dc801e24007f979c
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M lldb/test/API/functionalities/breakpoint/hardware_breakpoints/write_memory_with_hw_breakpoint/TestWriteMemoryWithHWBreakpoint.py
M lldb/test/API/functionalities/breakpoint/write_over_software_breakpoint/TestWriteOverSoftwareBreakpoint.py
Log Message:
-----------
[lldb] Update decorator in write-over-breakpoint tests (#220919)
sanitized bots don't use the just-built debugserver, so any tests
exercising new debugserver features won't work on them.
Commit: 191b4f522082ca64c63591b61ec2d40091596a5e
https://github.com/llvm/llvm-project/commit/191b4f522082ca64c63591b61ec2d40091596a5e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86CallFrameOptimization.cpp
A llvm/test/CodeGen/X86/callframe-opt-undef-push.mir
Log Message:
-----------
X86: Handle undef push operands in call frame optimization (#220368)
Avoid unchecked getVRegDef call, which will fail for undef
operands. The register-push fallback also dropped the undef flag when
rebuilding the store as a PUSH.
Co-Authored-By: Claude <noreply at anthropic.com> (Claude Opus 4.8)
Commit: 5f410f8aae6a2bc85959f548c3d8728f7e21b318
https://github.com/llvm/llvm-project/commit/5f410f8aae6a2bc85959f548c3d8728f7e21b318
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/test/Transforms/SimplifyCFG/switch-select-remap.ll
Log Message:
-----------
[SimplifyCFG] Use UTC for test
This makes it easier to update.
Pre-commiting so that the profcheck follow-up has a nice diff.
Reviewers: nikic, fhahn, dtcxzyw
Pull Request: https://github.com/llvm/llvm-project/pull/220810
Commit: 73d2d31b999059a86175a4b3d646f3e89b03106d
https://github.com/llvm/llvm-project/commit/73d2d31b999059a86175a4b3d646f3e89b03106d
Author: David Green <david.green at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3AE.td
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s
Log Message:
-----------
[AArch64] Correct FDIV/FSQRT throughput for Neoverse V3ae. (#219113)
This attempts to improve the throughput of fdiv / fsqrt to the correct
throughputs of 1 per cycle. I've moved the SchedWriteRes with multiple
ReleaseAtCycles to the correct section / naming whilst here. Which has
the result of changing the fdiv and fsqrt throughput to 1.
Commit: 887181244f3e22918f6a7c0da8c79d86fdb67a71
https://github.com/llvm/llvm-project/commit/887181244f3e22918f6a7c0da8c79d86fdb67a71
Author: Marco Milanese <marco.milanese at sonarsource.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
Log Message:
-----------
[analyzer][NFC] Fix typo in `exploredAllPaths` variable & predicate
During development of #219225 `hasWorkRemaining` was accidentally
renamed to `exploredAllSTUPaths`, but the correct name should contain a
`not`, i.e., `notExploredAllSTUPaths` which matches the polarity of
`hasWorkRemaining`.
Perform an exhaustive renaming of all occurrences.
--
CPP-8856
Commit: 32fe59e6a1ae8a35619c0ec774be315e0d0bba7c
https://github.com/llvm/llvm-project/commit/32fe59e6a1ae8a35619c0ec774be315e0d0bba7c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/TailDuplicator.cpp
Log Message:
-----------
TailDuplicator: Use getDefBlock (#220903)
This used getVRegDef but only to find the parent block.
Commit: 992d5d0c7c9fefd008478cbffcf6ecf80200526e
https://github.com/llvm/llvm-project/commit/992d5d0c7c9fefd008478cbffcf6ecf80200526e
Author: Zach Goldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
A llvm/test/CodeGen/AMDGPU/lds-dma-war-async.ll
A llvm/test/CodeGen/AMDGPU/lds-dma-war.ll
Log Message:
-----------
[NFC][AMDGPU] Pre-commit tests for LDS -> DMA hazard (#220671)
Pre-commit tests for #220288
Currently, fences with scope `wavefront` or less do not prevent race
conditions with LDS ops before the fence and DMAs after.
Commit: 1f5bea83bf8b7559ed4d6cebb5cb48ecd54af3ed
https://github.com/llvm/llvm-project/commit/1f5bea83bf8b7559ed4d6cebb5cb48ecd54af3ed
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/SmallVector.h
M llvm/unittests/ADT/SmallVectorTest.cpp
Log Message:
-----------
[ADT] Allow SmallVector move construction without move assignment (#220571)
Move-construct inline elements directly instead of using move
assignment.
This avoids requiring element types to be move-assignable.
Reland #219934
The first version routed inline move construction through
append(move_iterator, move_iterator). For trivially copyable elements,
the iterator adapters bypassed SmallVector's raw-pointer memcpy path and
instantiated append, distance, uninitialized_copy, and iterator helpers
for each element type. This duplicated move-assignment machinery when it
was already instantiated in the same translation unit.
Use the old assignment path only for trivially move-assignable elements.
For other elements, reserve storage and use raw-pointer
uninitialized_move. This avoids generic iterator machinery and preserves
the memcpy fast path.
Do not dispatch on `is_move_assignable_v<T>`. It can report true for an
unconstrained assignment operator whose body is ill-formed. A nested
`SmallVector<SmallVector<MoveConstructOnly>>` demonstrates that false
positive, so cover it alongside inline, allocated, and `SmallVectorImpl`
construction.
Assisted-by: Codex
Commit: e3df0332a876362cdfc13caf19bbac73bdbba362
https://github.com/llvm/llvm-project/commit/e3df0332a876362cdfc13caf19bbac73bdbba362
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/switch-select-remap.ll
Log Message:
-----------
[SimplifyCFG] Fix profcheck failure from #213302
This patch fixes the profcheck failure from that patch by explicitly
updating the branch weights given we can infer what the values should
be.
Reviewers: dtcxzyw, nikic
Pull Request: https://github.com/llvm/llvm-project/pull/220811
Commit: 1c47080e1e494693baf1334092e2aca2b428b008
https://github.com/llvm/llvm-project/commit/1c47080e1e494693baf1334092e2aca2b428b008
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/InstructionSimplify.h
M llvm/lib/Analysis/InstructionSimplify.cpp
A llvm/test/Transforms/InstSimplify/addrspacecast-nonnull.ll
Log Message:
-----------
InstSimplify: Fold nonnull addrspacecast of null to poison (#217905)
Perform the definitional fold if the source value is null
in the default address space.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 70cd17698c18d749228c1fab98fdf677d0715e51
https://github.com/llvm/llvm-project/commit/70cd17698c18d749228c1fab98fdf677d0715e51
Author: lntue <lntue at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/round.h
M libc/src/__support/math/roundf.h
M libc/test/src/math/smoke/RoundTest.h
Log Message:
-----------
[libc][math] Do not use __builtin_round* with clang on x86 by default. (#220739)
`__builtin_round`/`__builtin_roundf` expansion for x86-64 using SSE4.1
rounding
instruction by clang is only correct for the default rounding mode.
See https://github.com/llvm/llvm-project/issues/140252
Commit: 1831383172cf8bc9ec14be96d6f582080bd93fa5
https://github.com/llvm/llvm-project/commit/1831383172cf8bc9ec14be96d6f582080bd93fa5
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/test/Analysis/Checkers/WebKit/mock-types.h
M clang/test/Analysis/Checkers/WebKit/unchecked-call-arg.cpp
Log Message:
-----------
[alpha.webkit.UncheckedCallArgsChecker] Treat copyRef() in a call argument as safe (#220882)
Treat calling a non-trivial function with the result of copyRef() or any
other function which returns a safe pointer type as an argument as safe.
Commit: 2ea93ca214dc1e63808b0d0f4c64fc43edba03b7
https://github.com/llvm/llvm-project/commit/2ea93ca214dc1e63808b0d0f4c64fc43edba03b7
Author: Yury Plyakhin <yury.plyakhin at intel.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Driver/Types.def
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/SPIRV.cpp
M clang/lib/Driver/ToolChains/SYCL.cpp
M clang/lib/Driver/ToolChains/SYCL.h
M clang/lib/Driver/Types.cpp
A clang/test/Driver/sycl-nordc-fatbin.cpp
M clang/test/Driver/sycl-offload-jit.cpp
A libsycl/test/basic/no_rdc_multi_tu.cpp
Log Message:
-----------
[clang][SYCL] Enable -fno-gpu-rdc for SYCL (#218089)
Activate non-relocatable SYCL device code compilation for a single
device architecture. Support for multiple device architectures will be
added in the next PR.
Driver:
- In BuildOffloadingActions, when SYCL non-RDC is selected, package the
translation unit's device images and hand them to clang-linker-wrapper
as a LinkerWrapperJobAction producing the TY_SYCL_FATBIN type. The
wrapper finalizes the images and emits the fat binary.
- Include that fat binary into the host compilation via
-foffload-include-binary, so it is embedded and registered at compile
time and the final clang-linker-wrapper performs no SYCL device link.
- Generalize the --emit-fatbin-only handling in tools::LinkerWrapper to
the new type.
- Add a buildLinker() override to SYCLToolChain. This lets the driver to
construct a device link job at compile time.
- -fno-gpu-rdc with more than one device triple is diagnosed in the
driver for SYCL
- More than one device architecture is not supported yet. There are
missing parts in clang-linker-wrapper and SYCL Runtime. Multi-arch
support is expected in the next patch.
Add a driver test asserting the section-level contract that keeps the
two modes apart: the non-RDC host object carries its finalized binary in
".sycl_fatbin" and no ".llvm.offloading", while the RDC host object is
the reverse.
Add a driver test that checks that object holds an offload binary
wrapping a finalized SPIR-V module.
Add end-to-end test. libsycl/test/basic/no_rdc_multi_tu.cpp runs the
equivalent program on a real device in both modes and checks the results
computed by the kernels of both translation units.
SYCL defaults to relocatable device code (RDC); RDC compilation is
unchanged.
Co-authored-by: Claude
Commit: 2087cc30628dd5b52c4b6db078f52dce07672046
https://github.com/llvm/llvm-project/commit/2087cc30628dd5b52c4b6db078f52dce07672046
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[Profcheck] Update XFail list (#220933)
To get the bot back to green while we work on fixing. SimplifyCFG fix
landed in #220811, but it wasn't reviewed so reverting for now.
Commit: 2b36039c6d49b9c46e14327dbb71b30983aabcc5
https://github.com/llvm/llvm-project/commit/2b36039c6d49b9c46e14327dbb71b30983aabcc5
Author: John Otken <john.otken at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/docs/ReleaseNotes.md
M flang/lib/Frontend/TextDiagnosticPrinter.cpp
M flang/lib/Lower/Bridge.cpp
M flang/test/Driver/optimization-remark.f90
Log Message:
-----------
[flang] Remove directory path from compiler remarks (#212669)
flang prefixes optimization remarks with the full path to the
sourcefile. This is not handled by some test frameworks that compare
compiler output to a reference. Change remarks to only display the
source filename.
$ flang -O3 -Rpass=loop-vectorize constr26.f90
home/users/john/test/constr26.f90:6:3: remark: vectorized loop
(vectorization width: 4, interleaved count: 1) [-Rpass=loop-vectorize]
after this change:
$ flang -O3 -Rpass=loop-vectorize constr26.f90
constr26.f90:6:3: remark: vectorized loop (vectorization width: 4,
interleaved count: 1) [-Rpass=loop-vectorize]
gnu fortran output:
$ gfortran -march=native -fopt-info-vec -O3 constr26.f90
constr26.f90:6:0: note: loop vectorized
Co-authored-by: John Otken john.otken at hpe.com
Assisted-by: Copilot and Claude Opus 4.8.
---------
Co-authored-by: Tarun Prabhu <tarunprabhu at gmail.com>
Co-authored-by: John Otken <john.otken at hpe.com>
Commit: 1a656be2fb6902d532c71297b6da0d063ffa72b2
https://github.com/llvm/llvm-project/commit/1a656be2fb6902d532c71297b6da0d063ffa72b2
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Analysis/ScalarEvolution/exhaustive-trip-counts.ll
Log Message:
-----------
[SCEV] Complete instr-types in CanConstantFold (#218874)
Match the types in the ConstantFolder. This allows us to compute more
trip counts.
Assisted-by: AI, for test cases
Commit: 4ceb4872398a2395a4eb78f2d73eec4cdba6ac08
https://github.com/llvm/llvm-project/commit/4ceb4872398a2395a4eb78f2d73eec4cdba6ac08
Author: David Green <david.green at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3AE.td
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-sve-instructions.s
Log Message:
-----------
[AArch64] Improve scheduling info for WHILE instruction (#219122)
They should have a throughput of 2, only using a single M microop.
Commit: 02d1fabd22d599bad38b2b926c7bcaaf41aff6e0
https://github.com/llvm/llvm-project/commit/02d1fabd22d599bad38b2b926c7bcaaf41aff6e0
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/switch-select-remap.ll
Log Message:
-----------
Revert "[SimplifyCFG] Fix profcheck failure from #213302" (#220932)
Reverts llvm/llvm-project#220811
This did not get reviewed. I thought I got a notification indicating the
PR was approved, but it was for a different PR.
Commit: 0d6f2d143afbb5d4dc6d7194585cb31465411402
https://github.com/llvm/llvm-project/commit/0d6f2d143afbb5d4dc6d7194585cb31465411402
Author: David Green <david.green at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3AE.td
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-neon-instructions.s
Log Message:
-----------
[AArch64] Update the scheduling info for scvtf on Neoverse V3ae. (#219119)
These scalar instructions were being treated like vector operations, but
only require a single microop.
Commit: f7e4fff5247d317c507709c61f2224a6409b1b43
https://github.com/llvm/llvm-project/commit/f7e4fff5247d317c507709c61f2224a6409b1b43
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
M llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-namespace-scope.ll
Log Message:
-----------
[SPIRV] Converge different `resolveDebugParentScope` versions into a single one (#219925)
These 4 functions do more or less the same thing: they map the parent
scope of a debug entity to its associated register.
* resolveDebugFunctionParent
* resolveTypeScopeParent
* resolveLexicalBlockParent
* resolveGlobalVariableParent
This patch merges these 4 functions into a single one.
This patch also pipes the parent scope resolution for typedefs through
the new `resolveScope` function.
Closes #210331
Commit: 0f78b9c20ffe1748b0a1f95cfbf598dec678c9b4
https://github.com/llvm/llvm-project/commit/0f78b9c20ffe1748b0a1f95cfbf598dec678c9b4
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Disasm.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/Record.cpp
M clang/lib/AST/ByteCode/Record.h
Log Message:
-----------
[clang][bytecode] Remove Record::VirtualBaseMap (#220907)
Virtual bases are so rarely used that I don't think having a dedicated
map for them in every record is worth it.
Commit: fdc57d9ccbe7be601a058353f46ce2b839ddb50a
https://github.com/llvm/llvm-project/commit/fdc57d9ccbe7be601a058353f46ce2b839ddb50a
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/VEToolchain.cpp
M clang/test/Driver/arch-specific-libdir-rpath.c
Log Message:
-----------
[Clang] Always apply `-frtlib-add-rpath` if requested (#220697)
Summary:
This path used to try to infer if it was needed by using the language
options. The result was that if you tried to use this on a `.o` link job
you would not get the rpath behavior you would expect.
The reason it was this way stems from the fact that this used to be
implicit behavior, so it was being conservative. At some point one of
the maintainers dictated that we cannot add rpath by default, so we
ended up with this, but still being conservative.
If the user passes `-frtlib-add-rpath`, just add the rpath. Flang does
this already.
Commit: e30271b35d8de51d9f398b0b4ae9d103c156a4a8
https://github.com/llvm/llvm-project/commit/e30271b35d8de51d9f398b0b4ae9d103c156a4a8
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 70cd176 (#220941)
This fixes 70cd17698c18d749228c1fab98fdf677d0715e51 (#220739).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=70cd17698c18d749228c1fab98fdf677d0715e51
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: cf763bc43d36e2078568db83e5c513046cd00abb
https://github.com/llvm/llvm-project/commit/cf763bc43d36e2078568db83e5c513046cd00abb
Author: Yuvaraj Venkatesh <yuvaraj.venkatesh at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p0-invalid.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p1-valid.mlir
Log Message:
-----------
[mlir][tosa] Add support for mxfp IDENTITY (#220624)
Tosa specification changes in
https://github.com/arm/tosa-specification/pull/61
Change-Id: Ib938e4915c14e14aeb465944875b2fed7e5e3698
Signed-off-by: Yuvaraj Venkatesh <yuvaraj.venkatesh at arm.com>
Commit: 2189e9a9159336392a0191618410610dff6f864d
https://github.com/llvm/llvm-project/commit/2189e9a9159336392a0191618410610dff6f864d
Author: Sergey Semenov <sergey.semenov at intel.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libsycl/unittests/mock/helpers.cpp
Log Message:
-----------
[libsycl][Unit][NFC] Fix another unused capture warning (#217941)
A follow up for https://github.com/llvm/llvm-project/pull/217418 to
align the changes from https://github.com/llvm/llvm-project/pull/212104
with it.
Commit: bb81d8ea50699b23f360bf726748a1777e24edbc
https://github.com/llvm/llvm-project/commit/bb81d8ea50699b23f360bf726748a1777e24edbc
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-extendedLLTs-err.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-extendedLLTs.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-smax-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-smin-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-umax-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-umin-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/minmaxabs-i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll
M llvm/test/CodeGen/AMDGPU/clmul.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
M llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp-fp8-hw.ll
M llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
M llvm/test/CodeGen/AMDGPU/mad_64_32.ll
M llvm/test/CodeGen/AMDGPU/max.ll
M llvm/test/CodeGen/AMDGPU/min.ll
M llvm/test/CodeGen/AMDGPU/mul.ll
M llvm/test/CodeGen/AMDGPU/reassoc-mul-add-1-to-mad.ll
Log Message:
-----------
[AMDGPU] Avoid slow 64-bit max/min/multiply instructions on GFX1250 (#207006)
On GFX1250 64-bit integer VALU max/min instructions are slower than
expanding to compare and select, and 64-bit integer VALU multiply is
slower than expanding to a sequence of 32-bit multiplies and adds. Avoid
them by pretending that these cases are not legal during instruction
selection.
Fixes: LCOMPILER-2207
Commit: e282c27d4c4d1c4fd8cea8d0dcb4674ad2dff02d
https://github.com/llvm/llvm-project/commit/e282c27d4c4d1c4fd8cea8d0dcb4674ad2dff02d
Author: Wang, Dewei <Dewei.Wang at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
A llvm/test/CodeGen/AMDGPU/amdgpu-attributor-asyncmark-leaf.ll
Log Message:
-----------
[AMDGPU] Mark the async marker intrinsics nocallback (#219099)
llvm.amdgcn.asyncmark and llvm.amdgcn.wait.asyncmark only set and await
a marker in the stream of async requests. They cannot transfer control
out of the module, so they qualify for nocallback.
Without it, AAAMDGPUMinAGPRAlloc takes its conservative arm for calls
that are not nocallback and reaches a pessimistic fixpoint, so no
amdgpu-agpr-alloc attribute is manifested. getMaxNumVectorRegs then
falls back to reserving half of the vector register file for AGPRs,
which halves the arch VGPRs available to any kernel that uses async LDS
copies.
---------
Co-authored-by: Harrison Hao <57025411+harrisonGPU at users.noreply.github.com>
Commit: d4959cb7773ae8d02b8600cc3dedc7e08fe2d466
https://github.com/llvm/llvm-project/commit/d4959cb7773ae8d02b8600cc3dedc7e08fe2d466
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M lldb/test/API/functionalities/breakpoint/two_hits_one_actual/TestTwoHitsOneActual.py
Log Message:
-----------
[lldb][test] Disable TestTwoHitsOneActual.py on Windows on Arm (#220947)
See https://github.com/llvm/llvm-project/issues/220945.
Commit: 80bd2843b5253881c5e53f421ddde6c4a4e35ff5
https://github.com/llvm/llvm-project/commit/80bd2843b5253881c5e53f421ddde6c4a4e35ff5
Author: Ivan R. Ivanov <iivanov at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M offload/plugins-nextgen/common/include/PluginInterface.h
Log Message:
-----------
[offload][nfc] Return an explicit error from createInterop (#220951)
The return type is Expected<omp_interop_val_t *> so a nullptr can be
incorrectly interpreted as a success and subsequently the nullptr could
get dereferenced. Make the error explicit.
Commit: 7ab46731f23c422ac4f119d04890c83236edec46
https://github.com/llvm/llvm-project/commit/7ab46731f23c422ac4f119d04890c83236edec46
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
M llvm/test/Transforms/MemCpyOpt/stack-move-offset.ll
Log Message:
-----------
[MemCpyOpt] Avoid stack-move optzn for out-of-bounds copy reading at offset zero (#220931)
Following up on #217607, avoid performing stack-move optimization on
out-of-bounds memcpys in dead code, in this variant when the read starts
at offset zero.
Fixes: https://github.com/llvm/llvm-project/issues/220904.
Commit: d746b8a12120f770723167bc33b38f7361ce19b5
https://github.com/llvm/llvm-project/commit/d746b8a12120f770723167bc33b38f7361ce19b5
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/test/Transforms/ConstraintElimination/uadd-usub-sat.ll
Log Message:
-----------
[ConstraintElim] Rewrite usub.sat to sub when it cannot saturate. (#220865)
usub.sat(A, B) is max(A - B, 0), so it is exactly A - B when A >=u B.
Check if we can prove the precondition, and if so replace it with a
plain sub nuw. We can also add NSW if A is non-negative.
This helps to both remove unnecessary usub.sat, as well as enables a
number of additional folds (once the usub.sat has been replaced by sub
it can be decomposed when checking conditions involving it, as we do the
rewrite before simplifying any condition involving it):
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1181
Alive2 Proofs: https://alive2.llvm.org/ce/z/v6gZwL
PR: https://github.com/llvm/llvm-project/pull/220865
Commit: 435bbf8a02e8593b417f43ace9518d929c2de982
https://github.com/llvm/llvm-project/commit/435bbf8a02e8593b417f43ace9518d929c2de982
Author: blazej-smorawski <56126596+blazej-smorawski at users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M offload/unittests/OffloadAPI/kernel/olLaunchKernel.cpp
M offload/unittests/OffloadAPI/memory/olMemFill.cpp
M offload/unittests/OffloadAPI/queue/olDestroyQueue.cpp
Log Message:
-----------
[Offload] Update skip list for level_zero Offload API tests (#220937)
olDestroyQueueTest.SuccessDelayedResolution - passes
olLaunchKernelFooTest.SuccessThreaded - ran 1000 times, all passed
olMemFillTest.SuccessLargeByteAlignedEnqueue - passes after fixes from
@311Volt
olLaunchKernelLocalMemStaticTest - it's not using dynamic shared memory,
just a static array which is valid
Commit: aafc318570430eed73891cb84364031c256fe1ac
https://github.com/llvm/llvm-project/commit/aafc318570430eed73891cb84364031c256fe1ac
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libcxx/include/__vector/vector.h
Log Message:
-----------
[libc++] Optimize vector::emplace_back (#218658)
This avoids using a lot of stack memory for `emplace_back` by making the
outlined lambda `static`. This also reduces the number of instructions
to execute a simple `emplace_back`.
Commit: a7d36a747d51b504983be83040ad24adcae44001
https://github.com/llvm/llvm-project/commit/a7d36a747d51b504983be83040ad24adcae44001
Author: Clayton Knittel <cknit1999 at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/test/DebugInfo/CXX/limited-ctor.cpp
Log Message:
-----------
[DebugInfo] Ignore delegating constructors in constructor homing. (#218807)
The constructor homing optimization limits the amount of redundant debug
info generated for classes by only emitting forward declarations to
debug info in translation units that can't instantiate the class on
their own (i.e. they don't see the definitions of any constructors).
Currently, classes that have any user-defined constructors are excluded
from the optimization. This is being changed to only exclude
non-delegating constructors, as we can rely on the delegated constructor
to instantiate debug info.
Signed-off-by: Clayton Knittel <cknit1999 at gmail.com>
Commit: 01cd5ad6ad5fff623eab511efe503e1d4fbe4953
https://github.com/llvm/llvm-project/commit/01cd5ad6ad5fff623eab511efe503e1d4fbe4953
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
Log Message:
-----------
[NFC][SPIRV] Converge different `DIScope` to `MCRegister` maps into a single one (#219927)
The following sets mapped some variant of `DIScope` (`DISubprogram`,
`DILexicalBlock`, `DINamespace`, `DICompilationUnit` and `DIType`) to
its associated `MCRegister`.
* DebugFunctionDeclarationRegs
* DebugFunctionRegs
* DebugLexicalBlockRegs
* CUToCompilationUnitDbgReg
* DebugTypeRegs
Instead keeping separate maps, we can merge them into a single one.
Commit: fa23e82fa0715ed5db767bbf9f5b312f2a78834d
https://github.com/llvm/llvm-project/commit/fa23e82fa0715ed5db767bbf9f5b312f2a78834d
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libc/config/linux/x86_64/headers.txt
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/struct_user_regs_struct.h
M libc/include/llvm-libc-types/x86_64/CMakeLists.txt
A libc/include/llvm-libc-types/x86_64/struct_user_regs_struct.h
A libc/include/sys/user.yaml
Log Message:
-----------
[libc] Add <sys/user.h> for Linux-x86_64 (#220809)
This is a non-POSIX header, which is nevertheless provided in some
environments to give access to arch-specific information, such as
register sets. Linux `ptrace` man page for `PTRACE_GETREGS` flags
references `<sys/user.h>` explcitly :
https://man7.org/linux/man-pages/man2/ptrace.2.html
Users get to rely on that to explore the thread/process state
e.g. LeakSanitizer does it to collect live pointers that can be present
in the registers:
https://github.com/llvm/llvm-project/blob/3993ccd4f07a5feee69764efa5bc9b53a0ce19ae/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp#L41
Provide this header and define `user_regs_struct` struct on Linux
x86_64.
Commit: 8459fed60e363aa3a01514975038773652a5fbac
https://github.com/llvm/llvm-project/commit/8459fed60e363aa3a01514975038773652a5fbac
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
A libcxx/test/libcxx/localization/locales/locale/locale.types/locale.id/id.abi.compile.pass.cpp
Log Message:
-----------
[libc++] Add a test for the ABI of std::locale::id (#220857)
Commit: de7b1d57827b28c94262c1cec2234c9afa41508d
https://github.com/llvm/llvm-project/commit/de7b1d57827b28c94262c1cec2234c9afa41508d
Author: Domenic Nutile <domenic.nutile at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-select.ll
A llvm/test/CodeGen/AMDGPU/promote-alloca-homogeneous-struct.ll
Log Message:
-----------
[AMDGPU] PromoteAlloca: flatten homogeneous structs to vectors (#217055)
getVectorTypeForAlloca() peeled nested ArrayType and one inner
FixedVectorType, but stopped at any StructType. An alloca of an array of
structs was therefore rejected with "Cannot convert type to vector" and
fell back to scratch, even when the struct was a trivial wrapper around
a scalar.
Peel structs too, but only when every field has the same type and the
struct has no padding, so flattened elements keep the byte offsets the
surrounding index arithmetic assumes. Structs with differing field types
or with padding are left alone.
Commit: a44ec4939d90937a17f03c2c4fc9879fe4e0af52
https://github.com/llvm/llvm-project/commit/a44ec4939d90937a17f03c2c4fc9879fe4e0af52
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
R llvm/include/llvm/CodeGen/MachORelocation.h
R llvm/include/llvm/DebugInfo/CodeView/FunctionId.h
R llvm/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h
R llvm/include/llvm/WindowsResource/ResourceProcessor.h
R llvm/include/llvm/WindowsResource/ResourceScriptToken.h
R llvm/lib/Target/Hexagon/HexagonDepMask.h
R llvm/lib/Target/SPIRV/SPIRVCBufferAccess.h
Log Message:
-----------
[llvm] Remove dead headers (NFC) (#220832)
None of these headers are referenced anywhere in the repository.
Commit: 6db90c8ea320a0ed7ec5ee7c24e3fbc0e26b4e8a
https://github.com/llvm/llvm-project/commit/6db90c8ea320a0ed7ec5ee7c24e3fbc0e26b4e8a
Author: Ivan Kelarev <ivan.kelarev at intel.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
A clang/test/OpenMP/assume_holds_codegen.cpp
A clang/test/OpenMP/assume_holds_side_effects.cpp
Log Message:
-----------
[Clang][OpenMP] Lower assume directive's holds clause to llvm.assume (#220688)
Emit `@llvm.assume` for the OpenMP 5.1 `assume` directive's `holds()`
clause, enabling downstream optimizations. Previously the clause was
parsed but its condition discarded without effect. Side-effectful
conditions are skipped with a warning, matching the existing
`[[assume]]`/`__builtin_assume` behavior.
Commit: 9e8a0fec0b8019c3c4ac8bb3bc60869aa008660d
https://github.com/llvm/llvm-project/commit/9e8a0fec0b8019c3c4ac8bb3bc60869aa008660d
Author: Oscar Priego <oscar.priegov at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/IR/Instruction.h
M llvm/lib/IR/Instruction.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/deinterleave-interleave-pairs.ll
M llvm/unittests/IR/InstructionsTest.cpp
Log Message:
-----------
[VectorCombine] Check call targets when folding deinterleave/interleave pairs (#219116)
Instruction::isSameOperationAs() intentionally compares operation shape
and
special state without requiring operand identity. For CallBase
instructions,
this means calls to different targets with otherwise compatible
signatures can
compare as equivalent.
This caused VectorCombine::foldDeinterleaveInterleavePair() to treat
same-signature intrinsics such as llvm.smax and llvm.smin as the same
operation
and incorrectly fold them into a single widened call.
Add an opt-in Instruction::CompareCallTargets operation-equivalence
flag. When
requested, isSameOperationAs() additionally requires
CallBase::getCalledOperand() to match. Existing callers retain the
current
behavior unless they explicitly request call-target comparison.
Update VectorCombine to use the new flag when comparing operations on
deinterleaved chains.
Add direct unit coverage for the new flag and preserve the existing
VectorCombine regression coverage.
Fixes #218162.
Commit: 0434d8f1369e2c19f7b42084554b415f60af0ab4
https://github.com/llvm/llvm-project/commit/0434d8f1369e2c19f7b42084554b415f60af0ab4
Author: Jan Trusiłło <jan.trusillo at intel.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libsycl/src/detail/offload/offload_topology.cpp
M libsycl/src/detail/offload/offload_topology.hpp
M libsycl/src/detail/platform_impl.cpp
M libsycl/src/detail/platform_impl.hpp
M libsycl/src/detail/queue_impl.cpp
M libsycl/unittests/common/unittests_helper.hpp
M libsycl/unittests/device_selector/get_device_preference.cpp
M libsycl/unittests/mock/helpers.cpp
M libsycl/unittests/platform/get_platforms.cpp
M offload/liboffload/API/Context.td
M offload/liboffload/API/Device.td
M offload/liboffload/src/OffloadImpl.cpp
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/level_zero/include/L0Context.h
M offload/plugins-nextgen/level_zero/include/L0Device.h
M offload/plugins-nextgen/level_zero/src/L0Context.cpp
M offload/plugins-nextgen/level_zero/src/L0Plugin.cpp
M offload/unittests/OffloadAPI/common/Properties.hpp
M offload/unittests/OffloadAPI/device/olGetDeviceInfo.cpp
M offload/unittests/OffloadAPI/device/olGetDeviceInfoSize.cpp
Log Message:
-----------
[offload][sycl] Introduce `DRIVER_ID` device property (#217562)
Prior to the introduction of liboffload contexts, Level Zero devices
under different driver instances used to each receive their own
`L0ContextTy`s.
https://github.com/llvm/llvm-project/pull/209144 introduced contexts,
which are designed to map to a single `ze_context` on L0.
`olCreateContext` accepts a user-defined device list and is restricted
to accept devices within a single platform. This restriction is
insufficient for L0 - passing devices from different driver instances is
allowed under this contract, but does not make sense on L0 as
`zeContextCreate` needs a concrete driver instance as a parameter.
Introduce a `DRIVER_ID` device property. On CUDA and AMD, it is always
equal to 0. On L0, it is a distinct integer for each driver instance. A
set of devices can be used to create a context if and only if they all
belong to the same platform and have the same DRIVER_ID.
Change libsycl to create separate logical SYCL platforms (which share
their ol_platform_handle_t) for each possible liboffload (platform,
driverId) pair.
Assisted-by: Codex (5.6 Sol)
Commit: 35f6bd687ad2419069a38c4ad428ace1ad55fb76
https://github.com/llvm/llvm-project/commit/35f6bd687ad2419069a38c4ad428ace1ad55fb76
Author: Jan Trusiłło <jan.trusillo at intel.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/dynamic_l0/L0DynWrapper.cpp
M offload/plugins-nextgen/level_zero/dynamic_l0/level_zero/ze_api.h
M offload/plugins-nextgen/level_zero/include/L0Compat.h
M offload/plugins-nextgen/level_zero/include/L0Context.h
M offload/plugins-nextgen/level_zero/src/L0Context.cpp
M offload/plugins-nextgen/level_zero/src/L0Device.cpp
Log Message:
-----------
[offload][l0] Report actual driver version through OL_DEVICE_INFO_DRIVER_VERSION (#218412)
The Level Zero plugin currently reports the Level Zero API version as
the driver version. Moreover, as the lookup table only includes API
versions up to `1.12`, newer versions (e.g. `1.15`) end up being
reported as Unknown.
Report the actual driver version instead:
- If the `zeIntelGetDriverVersionString` extension is available, use it.
This string may be more detailed than what `zeDriverGetProperties`
provides (e.g. hotfix suffix)
- If the above is not available, use
`zeDriverGetProperties().driverVersion`, an U32 value whose octets make
up major, minor & build numbers.
- The driver version is fetched once per context and stored in an
`std::string` inside of the `L0ContextTy`.
This is intended to match the behavior of Intel's Unified Runtime.
Assisted-by: Codex (5.6 Sol)
---------
Co-authored-by: blazej-smorawski <blazej.smorawski at intel.com>
Commit: 0a3955cae33d4ca6a8d8e7a12b69acfa55a895be
https://github.com/llvm/llvm-project/commit/0a3955cae33d4ca6a8d8e7a12b69acfa55a895be
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/test/Driver/fveclib.f90
Log Message:
-----------
[flang][test] Expect a single -rpath in fveclib.f90 ArmPL check (#220969)
Fixes a `check-flang` failure on main: `Flang :: Driver/fveclib.f90`.
#220697 consolidated `tools::addArchSpecificRPath()` down to a single
call site — it was removed from `ToolChain::addFlangRTLibPath()` and
from the `-fveclib=ArmPL` block in `tools::AddLinkerInputs()`, and one
unconditional call was hoisted to the end of `AddLinkerInputs()`. A link
line can therefore emit each candidate rpath at most once, so
`CHECK-RPATH-ARMPL` fails on its second `-rpath` match:
```
flang/test/Driver/fveclib.f90:59:27: error: CHECK-RPATH-ARMPL-SAME: expected string not found in input
! CHECK-RPATH-ARMPL-SAME: "-rpath"
^
```
The two matches only ever passed because `addArchSpecificRPath()` is a
pure function of the toolchain and the argument list, so the two former
call sites emitted identical paths. The test was matching a duplicate
rpath, not the separate veclib and Fortran-runtime entries that its
comment described. The arch-specific runtime directory — which is where
`flang_rt` lives — is still emitted once, so no rpath is actually lost:
```
$ flang -### -frtlib-add-rpath hello.f90
"-rpath" ".../lib/clang/24/lib/x86_64-unknown-linux-gnu"
```
Assisted-by: AI
Commit: df9e06826c294818818358be1267c38a0455679d
https://github.com/llvm/llvm-project/commit/df9e06826c294818818358be1267c38a0455679d
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M openmp/device/CMakeLists.txt
Log Message:
-----------
[OpenMP][CMake] Fix the device runtime build with LLVM_USE_SPLIT_DWARF (#220322)
Building with LLVM_USE_SPLIT_DWARF fails in the GPU runtimes:
ld.lld: error: -r and --gdb-index may not be used together
HandleLLVMOptions appends -Wl,--gdb-index to CMAKE_EXE_LINKER_FLAGS, and
libompdevice is an add_executable, so it inherits the flag. Its link is
not a real link at all: -flto -r -Wl,--lto-emit-llvm merges the objects
into a single bitcode file, for which a gdb index is meaningless.
Fix is to turn it off for the target.
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 5c9830c0a5a7c1bbae3b6e82232530be101723aa
https://github.com/llvm/llvm-project/commit/5c9830c0a5a7c1bbae3b6e82232530be101723aa
Author: nvptm <pmathew at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/lib/Lower/ConvertVariable.cpp
M flang/test/Fir/OpenACC/acc-declare-gpu-module-insertion.fir
M flang/test/Integration/function-sections.f90
M flang/test/Lower/dense-attributed-array.f90
A flang/test/Lower/module-parameter-linkonce-odr.f90
A flang/test/Transforms/OpenACC/acc-implicit-declare-module-parameter.fir
Log Message:
-----------
[flang][OpenACC] Emit module PARAMETERs as initialized linkonce_odr globals (#220666)
Emit an initialized linkonce_odr global from the module-file value in
each compilation unit that needs a module PARAMETER (follow USE
association so the initializer is not lost). Separately compiled uses
under OpenACC default(present) then keep the constant on the device
instead of treating a bodyless external as data that must already be
present.
Keep external linkage when the PARAMETER has an explicit !$acc declare
or a CUDA data attribute, which need a single shared device symbol
rather than a per-unit copy.
Commit: 90d81acaa356aa58a695f121cad2f81b42ec6e47
https://github.com/llvm/llvm-project/commit/90d81acaa356aa58a695f121cad2f81b42ec6e47
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-empty.cpp
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-padded.cir
Log Message:
-----------
[CIR] Fix CIR tests after recent ABI change (#220749)
A recent change to unnamed bitfield classification for X86 targets
(https://github.com/llvm/llvm-project/pull/216777) broke several CIR
tests.
This change updates two of the failing tests to reflect the current
state. Further cleanup is needed in CIR after the ABI backward
compatibility issues are handled.
A third test was failing with an assertion because the unnamed bitfield
classification change exposed a problem in CIR's type mapper. We were
modeling unnamed zero-length bitfields as having the width of their
declared type rather than zero width. This triggered an assertion in the
ABI library after such bitfields were no longer skipped. This change now
reports zero width for such fields.
Commit: 57998a6047a54643b474d64ca4648d02746a85ca
https://github.com/llvm/llvm-project/commit/57998a6047a54643b474d64ca4648d02746a85ca
Author: Moazin K. <mkhatti at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/Analysis/AliasAnalysis.h
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
M flang/test/Analysis/AliasAnalysis/alias-analysis-host-assoc.fir
Log Message:
-----------
[flang][AliasAnalysis] Relax AliasAnalysis for host associated allocatables (#220826)
Relax AliasAnalysis for host associated allocatables.
FIR alias analysis conservatively returns MayAlias for values with
distinct host-associated origins because their storage may overlap
through EQUIVALENCE.
This change utilizes the fact that an equivalence object cannot be an
allocatable and relaxes the analysis for them. Specifically, if two
values have distinct host associated origin, neither is a pointer or a
target and at least one of them is an allocatable, we can safely declare
them NoAlias. Otherwise, we continue to conservatiely declare them
MayAlias.
Assisted-by: Codex
Commit: d8217655d8c338927ef37462b561d1a61ac7f64a
https://github.com/llvm/llvm-project/commit/d8217655d8c338927ef37462b561d1a61ac7f64a
Author: Victor Campos <victor.campos at arm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/AST/ASTContext.cpp
M clang/test/CodeGen/builtin-clear-padding-codegen.c
M clang/test/CodeGenCXX/builtin-clear-padding-codegen.cpp
Log Message:
-----------
[Clang] Fix BitInt padding clearing on big-endian targets (#215809)
This patch fixes the padding clearing logic of `_BitInt`s.
Before this patch, the clearing logic assumed little endian. But the
memory layout of BitInts differs between little and big endian:
- In LE, the occupied bits start from the lowest address and go on
contiguously up until the BitInt's declared size. The padding bits then
start from that point and go contiguously until the end of the storage
unit.
- In BE, since the byte order is reversed, the occupied bit interval is
not contiguous if the storage unit is larger than the BitInt's size.
Therefore, the logic must tell the two cases apart and perform the
calculations accordingly.
Commit: 52718bbdef7267b600d442f5949638f4783a838a
https://github.com/llvm/llvm-project/commit/52718bbdef7267b600d442f5949638f4783a838a
Author: earnol <earnol at users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/unittests/CodeGen/SelectionDAGTestBase.h
Log Message:
-----------
[CodeGen][test] Make ORE outlive the SelectionDAG in SelectionDAGTestBase (#220732)
Follow-up to 6334d98 (#220775), which fixed the `MachineModuleInfo` half of this problem and resolved the ASan report in #220646.
This PR promotes `ORE` to an owning member and groups it with `MMI` ahead of `MF` and `DAG`, so both are destroyed after the objects that point at them. The two comments record that the ordering is load-bearing, since it is easy to undo in a later refactor.
---------
Co-authored-by: Vladislav Aranov <vladislav.aranov at ericsson.com>
Commit: dca328efcdeebf40ef936152a6d7bc25d0ed6f70
https://github.com/llvm/llvm-project/commit/dca328efcdeebf40ef936152a6d7bc25d0ed6f70
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
A llvm/include/llvm/Passes/RunCodeGen.h
M llvm/lib/Passes/CMakeLists.txt
A llvm/lib/Passes/RunCodeGen.cpp
Log Message:
-----------
[Passes] Add new runCodeGenPipeline abstraction
This is intended to replace this logic in clang/flang other frontends
which currently write essentially the same thing.
Reviewers: arsenm, nikic, aengelke
Pull Request: https://github.com/llvm/llvm-project/pull/220305
Commit: 3783ff1fc631c567badb5b22f6a9d5a36a54cb3b
https://github.com/llvm/llvm-project/commit/3783ff1fc631c567badb5b22f6a9d5a36a54cb3b
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/include/flang/Parser/openmp-utils.h
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Semantics/openmp-modifiers.h
M flang/lib/Semantics/CMakeLists.txt
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
A flang/lib/Semantics/check-omp-syntax.cpp
M flang/test/Parser/OpenMP/dims-modifier.f90
M flang/test/Semantics/OpenMP/clause-validity01.f90
M flang/test/Semantics/OpenMP/depobj-construct-v52.f90
M flang/test/Semantics/OpenMP/linear-clause02.f90
Log Message:
-----------
[flang][OpenMP] Replace modifier verification with a generic one (#220675)
Implement verification of syntactic properties (i.e. required, unique,
exclusive, ultimate) in a generic way, agnostic of the kind of element
to which these properties are applied. The goal here is to reuse it
for verifying clause properties in the future.
Refactor the existing modifier verification code to use it. Modify
the previous implementation (OmpVerifyModifiers) to always succeed
to reduce the amount of necessary changes.
Commit: 162b2e966699d087ccb920ed35be337dc2dc78bc
https://github.com/llvm/llvm-project/commit/162b2e966699d087ccb920ed35be337dc2dc78bc
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/check-omp-syntax.cpp
M flang/test/Semantics/OpenMP/task-depend.f90
M llvm/include/llvm/Frontend/OpenMP/OMPDescriptors.h
M llvm/include/llvm/Frontend/OpenMP/OMPDescriptors.h.inc
M llvm/lib/Frontend/OpenMP/OMPDescriptors.cpp
M llvm/lib/Frontend/OpenMP/OMPDescriptors.inc
Log Message:
-----------
[flang][OpenMP] Implement modifier set and modifier group verification (#220676)
Introduce modifier set and group definitions, and include that
information
in clause descriptors.
Extend the verification of syntactic properties to handle sets and
groups.
Commit: c5858886c7ad7f0c864fe2b6026dbc363c8a651d
https://github.com/llvm/llvm-project/commit/c5858886c7ad7f0c864fe2b6026dbc363c8a651d
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-modifiers.h
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/check-omp-variant.cpp
Log Message:
-----------
[flang][OpenMP] Remove now unused OmpVerifyModifiers (#220677)
Its functionality has been subsumed by VerifyModifiers.
Commit: 97dc989bb446ba476f71dd4cc36641c3ed186bce
https://github.com/llvm/llvm-project/commit/97dc989bb446ba476f71dd4cc36641c3ed186bce
Author: A. Jiang <de34 at live.cn>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libcxx/include/__new/new_handler.h
M libcxx/test/libcxx/language.support/nodiscard.verify.cpp
Log Message:
-----------
[libc++] Apply `[[nodiscard]]` to `get_new_handler` (#220847)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/get.new.handler
Commit: d6b2176126d716110eea8bf90c611eb6833f10ba
https://github.com/llvm/llvm-project/commit/d6b2176126d716110eea8bf90c611eb6833f10ba
Author: Sidhartha kumar <siddharthtiwari155 at yahoo.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/stack-clash-protection.c
Log Message:
-----------
[clang] Enable -fstack-clash-protection by default for Android (#209279)
Enable -fstack-clash-protection by default for Android targets on
architectures
where Clang already supports stack clash protection, as per the RFC:
https://discourse.llvm.org/t/rfc-enable-fstack-clash-protection-by-default-for-android-targets/91223
AI tools were used to assist with this change; the code and tests were
reviewed by the author.
Commit: 94a60f1b9a1b66b2df5892c3745b6d7150bbf6e5
https://github.com/llvm/llvm-project/commit/94a60f1b9a1b66b2df5892c3745b6d7150bbf6e5
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang-rt/lib/runtime/edit-input.cpp
Log Message:
-----------
[flang-rt] Fix misspelled feraiseexcept guard in edit-input.cpp (#219815)
The guard that selects between the unqualified and `std::`-qualified
spellings of `feraiseexcept` in `flang-rt/lib/runtime/edit-input.cpp`
tests `feraisexcept` — missing the second `e`. Fixed the typo.
Note that the sibling guards in `flang-rt/lib/runtime/main.cpp` and
`flang-rt/lib/runtime/stop.cpp` spell their tokens correctly.
Assisted-by: AI
Commit: d802dc9e9cd9f61247417431779f1f0231fdd5fb
https://github.com/llvm/llvm-project/commit/d802dc9e9cd9f61247417431779f1f0231fdd5fb
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/SandboxIR/Context.h
M llvm/lib/SandboxIR/Context.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
[SandboxIR] Callback registration now allows specifying order (#219609)
Up until now the callbacks would execute in the order they were
registered. But this is quite restrictive because there are cases where
the registration order is fixed, yet you need the callbacks to execute
in a different order than the registration order.
These two patches implement a way to specify the order irrespective of
the registration order:
The first one replaces the data-structure used to store the callbacks
from a CallbackID->Callback MapVector to a SmallVector of pairs {CallbackID, Callback}.
The second one updates the API of the registration function (e.g., `registerEraseInstrCallback()`) to
now take an optional `BeforeID` argument to specify the callback ID before
which the new callback should be inserted.
Commit: 2930d9f4295571c01469741d8dc18ea0c4fd7ab5
https://github.com/llvm/llvm-project/commit/2930d9f4295571c01469741d8dc18ea0c4fd7ab5
Author: Andy Bonventre <andybons at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M compiler-rt/lib/tsan/rtl/tsan_platform.h
M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
Log Message:
-----------
[tsan] Accept a 47-bit VMA for the Go runtime on linux/aarch64 (#220040)
The Go arm of the aarch64 VMA check in `InitializePlatformEarly` accepts
only 48, so on a kernel with a 47-bit user address space every Go binary
built with `-race` dies at startup:
```
FATAL: ThreadSanitizer: unsupported VMA range
FATAL: Found 47 - Supported 48
```
Accept 47 as well. `MappingGoAarch64` already serves 47-bit
darwin/arm64, and the ranges Go asks TSan to shadow (the heap hints and
the non-PIE data segment) sit inside `kLoAppMem` regardless of VMA size.
Verified on a 47-bit aarch64 host (gVisor, `go1.27.0 linux/arm64`) with
Go's `runtime/race` suite.
Fixes #220037
Assisted-by: Claude Code
Commit: f6e6f2c311505498badcd042a8e6833013f101d3
https://github.com/llvm/llvm-project/commit/f6e6f2c311505498badcd042a8e6833013f101d3
Author: Akash Manna <akash.manna.mymail at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Sema/SemaChecking.cpp
M clang/test/SemaCXX/builtin-invoke.cpp
Log Message:
-----------
[Clang][Sema] Give calls synthesized by `__builtin_invoke` a valid source range (#220593)
Fixes #185241
When `__builtin_invoke` is called with a pointer to member function,
Sema rewrites it into `(obj.*memptr)(args)` and wraps the `.*`
expression in a `ParenExpr` that was created without source locations. A
call expression takes its begin location from its callee, with the first
argument as fallback — so when there are no trailing arguments, the
synthesized member call ends up with no valid location at all. The
classic constant evaluator stores each call expression's range as the
frame's `CallRange` and asserts it is valid while building the "in call
to" note chain, so diagnosing any failure inside such a call (here,
control flowing off the end of a `constexpr` function) crashed instead
of producing the error. The bytecode interpreter only dodges this
because it skips invalid ranges when picking a location for the note.
The `ParenExpr` now carries the locations of the `__builtin_invoke` call
itself, so the synthesized call maps back to its actual call site like
an ordinary call would, and the "in call to" note points at the
`__builtin_invoke(...)` expression. This also covers the `std::ref` and
pointer object forms, which go through the same node, and the assertion
stays as is since it guards a real invariant. I also added the
reproducer to the existing `builtin-invoke` test.
Commit: 33ec67a140529cd1ae204e231dc718788c1bc95d
https://github.com/llvm/llvm-project/commit/33ec67a140529cd1ae204e231dc718788c1bc95d
Author: SoulTch <drilsteal2015 at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/include/clang/Parse/Parser.h
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseObjc.cpp
M clang/lib/Parse/ParseTemplate.cpp
M clang/lib/Parse/Parser.cpp
M clang/test/SemaCXX/coroutines.cpp
Log Message:
-----------
[Clang][Parse] Fix crash on a coroutine keyword in a mem-initializer (#218168)
Hi, this is my first contribution to the LLVM project, so please let me
know if there is anything I should follow when contributing.
Simply fixes https://github.com/llvm/llvm-project/issues/194298
- If a function has a ":" symbol in its declaration, the following "{"
symbol is interpreted as an initializer, not as the function body.
- Hence, the function is interpreted as a function declaration without a
body.
- Meanwhile, "co_await" marks the function as a coroutine, so it tries
to find the function body and crashes while accessing it.
- This diff marks the function as invalid if there is an initializer but
no actual function body.
I utilized AI while trying to understand why this change makes sense as
much as possible.
Assisted-by: Claude Opus 5 (Claude Code)
Commit: f8d63a6ca8be0200b4941e905e6dd65f7e4bf855
https://github.com/llvm/llvm-project/commit/f8d63a6ca8be0200b4941e905e6dd65f7e4bf855
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/RISCV/gather-constant-offset-lanes-different-bases.ll
A llvm/test/Transforms/SLPVectorizer/RISCV/gather-pointers-different-address-spaces.ll
A llvm/test/Transforms/SLPVectorizer/RISCV/gep-mixed-index-types.ll
A llvm/test/Transforms/SLPVectorizer/X86/copyable-zext-other-block.ll
A llvm/test/Transforms/SLPVectorizer/X86/copyable-zext-poison-lane.ll
Log Message:
-----------
[SLP][NFC]Add extra tests with geps/cast copyables, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221002
Commit: 648b52f4d5806c0ef974cf03f741865f86891fc0
https://github.com/llvm/llvm-project/commit/648b52f4d5806c0ef974cf03f741865f86891fc0
Author: Michael Jones <michaelrj at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
A llvm/test/Instrumentation/MemorySanitizer/ptrtoaddr.ll
Log Message:
-----------
[MSAN] Handle PtrToAddrInst in MemorySanitizer (#219307)
PR #210729 changed how pointer diffs are handled, specifically when
pointer overflow isn't defined it sometimes emits CreatePtrToAddr, which
MSAN currently doesn't handle. This PR adds a visitor for PtrToAddrInst
which fixes the issue as well as a regression test.
https://github.com/llvm/llvm-project/pull/210729#issuecomment-5445402022
has my minimal reproducer.
Assisted-By: Automated tooling, human reviewed
Commit: f07ac0360cefc5883e0a32ec3e8dface23e8ae02
https://github.com/llvm/llvm-project/commit/f07ac0360cefc5883e0a32ec3e8dface23e8ae02
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang-rt/lib/cuda/allocator.cpp
M flang/include/flang/Runtime/CUDA/allocator.h
Log Message:
-----------
[flang][cuda] Expose some function to deal with async device allocation (#220770)
Commit: b4933b7f85c2adf762dda9d1411298efcac91b76
https://github.com/llvm/llvm-project/commit/b4933b7f85c2adf762dda9d1411298efcac91b76
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/include/clang/AST/TypeBase.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Analysis/LifetimeSafety/Loans.cpp
Log Message:
-----------
[clang] Fix FoldingSet lookups that disagree with the node's Profile (#220168)
Some clang code calls FoldingSetImpl::insert with a node whose profile
doesn't match its insert token, leading to missing hash-consing.
* getObjCTypeParamType keys on Decl->getUnderlyingType() where Profile()
reports getCanonicalTypeInternal(). Canonicalize before the lookup: the
decl's underlying type can be updated later.
* getUnaryTransformType drops UnderlyingType for a dependent base after
building the ID.
* getFunctionTypeInternal keys canonically where Profile() passes
isCanonicalUnqualified(), which differs for a computed noexcept.
* getConstantArrayType keys on the full index qualifiers; only the three
CVR bits are stored.
* LoanManager keys a PlaceholderBase on the bare decl pointer where
Profile() reports the PointerUnion's opaque value.
These issues would be caught by #220166
Aided by Opus 5
Commit: 035640baffe1cd563c5d23554e7c6825414bf6d7
https://github.com/llvm/llvm-project/commit/035640baffe1cd563c5d23554e7c6825414bf6d7
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/RISCV/floating-point.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/fminimumnum.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/load-binop-store.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/load-store.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/math-function.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/splat-gather-trim.ll
Log Message:
-----------
[SLP][NFC] Cleanup LIT test labels for RISCV (#220965)
Duplicate outputs can be consolidated.
Commit: 89082772bed1ed16c0311b12147a96c35bb063d8
https://github.com/llvm/llvm-project/commit/89082772bed1ed16c0311b12147a96c35bb063d8
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/SandboxIR/Context.h
M llvm/lib/SandboxIR/Context.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
Revert "[SandboxIR] Callback registration now allows specifying order" (#221008)
Reverts llvm/llvm-project#219609
Seems to be breaking some unittest.
Commit: ecd51d30e3f80863396f5ee05191256f2592880b
https://github.com/llvm/llvm-project/commit/ecd51d30e3f80863396f5ee05191256f2592880b
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/test/Bindings/OCaml/debuginfo.ml
Log Message:
-----------
[OCaml] Update debuginfo test for persistent metadata IDs (#220957)
Metadata nodes now print with stable !N references rather than pointer
addresses. Update the FileCheck captures and dependent references
accordingly.
Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/16/builds/5121
Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/56/builds/6880
Commit: 452f0dd3d02429c305e28d58cb6e3912f40cb9f9
https://github.com/llvm/llvm-project/commit/452f0dd3d02429c305e28d58cb6e3912f40cb9f9
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/BackendUtil.cpp
M clang/test/CodeGen/X86/newpm.c
Log Message:
-----------
[Clang] Switch to runCodeGenPipeline abstraction
This moves some code to LLVM where it can be shared with other
frontends. It also enables a common spot for switching between PMs, so
we can drop the clang specific option.
Reviewers: efriedma-quic, arsenm, aengelke, jansvoboda11
Pull Request: https://github.com/llvm/llvm-project/pull/220306
Commit: 9b7474651733c596ed31afb2c1ce0e4ebb077951
https://github.com/llvm/llvm-project/commit/9b7474651733c596ed31afb2c1ce0e4ebb077951
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/lib/Frontend/FrontendActions.cpp
M flang/test/Driver/emit-asm-x86.f90
Log Message:
-----------
[Flang] Switch to runCodeGenPipeline abstraction
This lets flang share some more code with clang around CodeGen pipeline
setup. It also already has a switch for enabling the NewPM and will
default to the NewPM for targets that opt in.
Reviewers: arsenm, valerydmit, jeanPerier, tarunprabhu, clementval, aengelke
Pull Request: https://github.com/llvm/llvm-project/pull/220307
Commit: fc1afa6edce98a973ce2ce969c589da4f3aee975
https://github.com/llvm/llvm-project/commit/fc1afa6edce98a973ce2ce969c589da4f3aee975
Author: Chris Kennelly <ckennelly at ckennelly.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
A llvm/test/ThinLTO/X86/cfi-icall-import-inline.ll
M llvm/test/Transforms/LowerTypeTests/Inputs/import-icall.yaml
M llvm/test/Transforms/LowerTypeTests/import-icall.ll
Log Message:
-----------
[LowerTypeTests] Keep imported CFI functions inlinable in the ThinLTO backend (#220786)
In the ThinLTO backend, importFunction() treated imported
available_externally definitions like declarations: it created a
bodiless declaration of the real function (foo.cfi) and redirected all
direct calls to it so that they skip the jump table. Since
LowerTypeTests runs at the start of the backend pipeline, this happened
before the inliner ever saw the call, and the imported body became
unreferenced. As a result, with -fsanitize=cfi-icall and ThinLTO, no
function that is a member of a jump table (i.e. whose type is checked by
any indirect call in the program) could be inlined across modules, which
defeats the main purpose of importing it.
Handle imported definitions the same way as local definitions instead:
rename the body to foo.cfi, keep direct calls pointing at it, and
redirect only address-taken uses to the jump table entry.
Assisted-by: Claude Code
Commit: c625fb2087c0ad50cea2834eb4fb244da2a5a188
https://github.com/llvm/llvm-project/commit/c625fb2087c0ad50cea2834eb4fb244da2a5a188
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp
Log Message:
-----------
BPF: Avoid depending on operand parents in BPFMISimplifyPatchable (#220076)
Commit: db0b0e2e026585406301879650935dbb74cb4074
https://github.com/llvm/llvm-project/commit/db0b0e2e026585406301879650935dbb74cb4074
Author: Shengxin Pei <TPPPP72 at outlook.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
R clang/test/Parser/GH214128.cpp
M clang/test/SemaCXX/type-traits.cpp
Log Message:
-----------
[clang][test] Move test `GH214128.cpp` into `type-traits.cpp` NFC (#221000)
Follow up #219799
Commit: 35f5599d73fbcb47c00d5e30e3fc3e518a0c3cad
https://github.com/llvm/llvm-project/commit/35f5599d73fbcb47c00d5e30e3fc3e518a0c3cad
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
Log Message:
-----------
[lldb] Fix iterator invalidation in SigchldHandler (#219752)
While SigchldHandler iterates over m_processes with llvm::any_of to
find the process that owns a waitpid event, handling an event can
create or destroy a NativeProcessLinux instance, mutating m_processes.
Comparing iterators after m_processes is mutated (such as the
find_if(...) != end() check in libstdc++'s std::any_of) triggers
assertion failures under epoch checks.
Operating on a temporary copy of m_processes via llvm::to_vector
ensures that iterator traversal is safe from container mutations.
This bug was discovered with tightened epoch checks in
SmallPtrSetIterator.
Assisted-by: Antigravity
Commit: 9e7ef6d1fa200a9db11299ac965ffa4853332c13
https://github.com/llvm/llvm-project/commit/9e7ef6d1fa200a9db11299ac965ffa4853332c13
Author: anatasluo <luolongjuna at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M lld/ELF/LTO.cpp
M lld/test/ELF/lto/obj-path.ll
Log Message:
-----------
[ELF] Fix --lto-obj-path with the ThinLTO cache (#211062)
The --lto-obj-path option no longer writes empty files if the ThinLTO
cache is enabled or DTLTO is used.
The implementation of --lto-obj-path derives the native ELF file
contents from the buf[] array. When the ThinLTO cache or DTLTO is used
the native ELF file contents may be in the files[] array instead. Delay
the writing of the native ELF file till after the existing code that
extracts the native ELF file contents from either files[] or buf[].
Assisted-by: codex
Signed-off-by: Longjun Luo <luolongjuna at gmail.com>
Commit: 5d41587464cc677049477e76a4ec647a921b7fa8
https://github.com/llvm/llvm-project/commit/5d41587464cc677049477e76a4ec647a921b7fa8
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libc/src/__support/File/file.h
M libc/src/__support/File/linux/file.cpp
M libc/src/pwd/flat_file_db.h
M libc/src/stdio/generic/fgets.cpp
M libc/src/stdio/generic/perror.cpp
M libc/src/stdio/generic/puts.cpp
M libc/src/wchar/fgetws.cpp
M libc/test/src/__support/File/file_test.cpp
Log Message:
-----------
[libc] Make File::FileLock public in File data structure (#221005)
Commit 9db0037bf1b3 moved FileLock from namespace scope into class File
so internal methods could use RAII locking, but placed it in the private
section.
Move FileLock to the public section of class File so that external
callers operating on File streams can use RAII locking instead of manual
lock and unlock calls.
Port callers in puts, fgets, perror, fgetws, reopenfile, and the pwd
flat file database parser to use File::FileLock, and add a unit test
verifying RAII locking on File streams.
Assisted-by: Automated tooling, human reviewed.
Commit: 9410b2c3fb1c9493ca881be009a9b10ba4e562cf
https://github.com/llvm/llvm-project/commit/9410b2c3fb1c9493ca881be009a9b10ba4e562cf
Author: Shaurya Srivastava <104617579+Shaurya2k06 at users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
A llvm/test/CodeGen/X86/avx512-icmp-sle-zero.ll
M llvm/test/CodeGen/X86/cmp-select-sign.ll
M llvm/test/CodeGen/X86/combine-icmp.ll
M llvm/test/CodeGen/X86/vector-pcmp.ll
Log Message:
-----------
[X86] Prefer AVX512 VPCMP against zero over splat(1) for sle/slt (#216716)
InstCombine canonicalizes `icmp sle x, 0` to `icmp slt x, 1`. AVX512 `VPCMP`
can encode LE/GE against a zeroed register, but we were loading splat(1)
from the constant pool (`vpcmpltb .LCPI`).
### Approach
In `combineSetCC`, for AVX512 `vXi1` integer compares:
- Rewrite `slt x, splat(1)` / `sgt splat(1), x` to `sle x, 0`
- Rewrite `sgt x, splat(-1)` / `slt splat(-1), x` to `sge x, 0`
- Skip the existing LE/GE → LT/GT `incDecVectorConstant` fold when it
would
replace a zero splat with ±1 (avoids oscillating with the rewrite above)
This is the vector analog of scalar `TranslateX86CC` (`SETLT x, 1` →
`COND_LE`
vs 0). InstCombine is left unchanged.
Pre-AVX512 (`-mcpu=x86-64-v3`) still uses `vpcmpgtb` vs zero + `not`.
## Test plan
- [x] `llvm/test/CodeGen/X86/avx512-icmp-sle-zero.ll` — sle vs 0, slt vs
1, swapped sgt splat(1), sge vs 0, sgt vs -1; i8/i16/i32; ymm; x86-64-v3
and x86-64-v4
- [x] `llvm/test/CodeGen/X86/combine-icmp.ll` —
`concat_icmp_v64i8_v32i8` now `vpxor` + `vpcmpleb`
- [x] Existing AVX512 vec-cmp tests
Fixes #216660
Commit: 1141d4fee2f1c362953f83ac4c4662a49a4789e9
https://github.com/llvm/llvm-project/commit/1141d4fee2f1c362953f83ac4c4662a49a4789e9
Author: Timur Baidusenov <timurbaidusenov at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/test/tools/llvm-exegesis/RISCV/set-reg-init-check.s
Log Message:
-----------
[llvm-exegesis] Use %t.o instead of a literal %d in a RISC-V test (#220971)
The name therefore collides as soon as a second test in that directory
uses it. llvm-objdump mmaps the file while the concurrently running test
truncates and rewrites it, and touching a page past the new end of the
mapping kills llvm-objdump with SIGBUS, with no diagnostic.
Use %t.o, which lit expands to a name unique to the test, as every other
llvm-exegesis test already does.
Commit: 484ce3905b30b003c736ef3c88c2e0194fdbd563
https://github.com/llvm/llvm-project/commit/484ce3905b30b003c736ef3c88c2e0194fdbd563
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang-rt/lib/runtime/CMakeLists.txt
R flang/test/Lower/OpenMP/omp-lib-integer-wrappers.f90
M flang/test/Lower/OpenMP/omp-lib-num-threads.f90
M llvm/runtimes/CMakeLists.txt
M openmp/module/CMakeLists.txt
M openmp/module/omp_lib.F90.var
R openmp/module/omp_lib_impl.F90.var
M openmp/runtime/cmake/LibompExports.cmake
Log Message:
-----------
Revert "[OpenMP][Flang] Add integer-kind wrappers to omp_lib (#213505)" (#221003)
This reverts commit 01079d2605aabd0beccecb270f51d40119422f04.
And also follow-up PRs:
Revert "[flang-rt] Fix missing omp_lib symbols in static runtime archive
(#220821)"
This reverts commit 5ba0b37ca29e05939e5bdc77e756140821c23cce.
Revert "[flang-rt][OpenMP] fix buildbot failures after commit
01079d2605aabd0beccecb270f51d40119422f04 (#218611)"
This reverts commit 175afd988951626ee55de84a966cf1c66e103b59.
Commit: 77daeaee3c2f29aa7a8e14908317fe89c6e54c9c
https://github.com/llvm/llvm-project/commit/77daeaee3c2f29aa7a8e14908317fe89c6e54c9c
Author: Chennes <xuchen359 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/logical-select.ll
Log Message:
-----------
[InstCombine] Don't assume a trunc with nsw is never poison (#220930)
`impliesPoisonOrCond()` treats `trunc nuw X to i1` as never poison when
`X` is known to be in `[0, 1]`, which makes the assumed-poison premise
vacuously true and folds a logical and/or into a bitwise one.
`m_NUWTrunc()` matches on a flag subset, so it also matches `trunc nuw
nsw`. Such a trunc is still poison for `X == 1`, because `nsw` requires
the truncated bits to equal the top bit of the result, and they are zero
while the result is one. For `%c = false` and `%x = 1` the source
returns `false` while the folded form returns `poison`:
https://alive2.llvm.org/ce/z/Q6G5-v
None of the remaining `m_NUWTrunc()` users assumes that the matched
trunc is non-poison, so they are unaffected.
Fixes #220487.
Commit: 5f47cb6bd4a4aec3ea659d2f2c3adf566099a09a
https://github.com/llvm/llvm-project/commit/5f47cb6bd4a4aec3ea659d2f2c3adf566099a09a
Author: woruyu <1214539920 at qq.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Sema/TreeTransform.h
M clang/test/SemaCXX/cxx2c-expansion-stmts-control-flow.cpp
Log Message:
-----------
[clang] Clean up switch stack when transforming an invalid body (#211162)
This PR resolves https://github.com/llvm/llvm-project/issues/210575.
Call RebuildSwitchStmt() irrespective of whether the body was succesfully
transformed to make sure we always pop an entry off the switch stack.
Assisted-by: OpenAI Codex
Commit: e6734a41bb41d91cb880fe7abce46d8146182518
https://github.com/llvm/llvm-project/commit/e6734a41bb41d91cb880fe7abce46d8146182518
Author: Michael G. Kazakov <mike.kazakov at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/include/__algorithm/pstl.h
M libcxx/include/__pstl/backend_fwd.h
M libcxx/include/__pstl/backends/default.h
M libcxx/include/__pstl/backends/libdispatch.h
M libcxx/include/__pstl/backends/serial.h
M libcxx/include/__pstl/backends/std_thread.h
A libcxx/include/__pstl/cpu_algos/find_end.h
M libcxx/include/module.modulemap.in
M libcxx/test/libcxx/algorithms/pstl.iterator-requirements.verify.cpp
M libcxx/test/libcxx/algorithms/pstl.nodiscard.verify.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/pstl.find_end.pass.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/pstl.find_end_pred.pass.cpp
M libcxx/test/std/algorithms/pstl.exception_handling.pass.cpp
Log Message:
-----------
[libc++][pstl] Implementation of parallel std::find_end() based on __parallel_find() (#218321)
This PR implements a parallel version of `std::find_end()` based on
`__parallel_find()`.
The algorithm crops the input range to a range where a potential match
can start and runs a chunked parallel find on the cropped range.
Inside each chunk potential matches are looked for using the serial
`std::find_end()` and the last one found is returned.
Since it's based on `__parallel_find()`, the algorithm supports early
termination.
Part of #99938.
Commit: 11f9ddf65a6c6087b86acb0202d27b65b325abe7
https://github.com/llvm/llvm-project/commit/11f9ddf65a6c6087b86acb0202d27b65b325abe7
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
Log Message:
-----------
[VPlan] Allow non-live-in start values for widened inductions (NFC). (#220716)
Prepare VPWidenIntOrFpInductionRecipe for modeling the full epilogue
skeleton and resume values properly, by removing the VPIRValue
requirement for the start value.
The only requirement for the start value is that it dominates the phi,
which the verifier already ensures.
This is NFC today, but prepares for modeling the full epilogue skeleton
in VPlan, which requires adding phi nodes in the preheader before
execute.
Commit: fa1857e0ef5575c8472d0b0f59661d811e03f09a
https://github.com/llvm/llvm-project/commit/fa1857e0ef5575c8472d0b0f59661d811e03f09a
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/lib/Semantics/check-allocate.cpp
A flang/test/Semantics/CUDA/cuf32.cuf
Log Message:
-----------
[flang][cuda] Reject DEVICE derived types with attributed allocatable components (#220411)
CUDA attributed allocatables are allocated from the host in most case
(PINNED, MANAGED, UNIFIED). A DEVICE derived-type object keeps its
component descriptors in device global memory, so allocating such a
component is not valid. It's also invalid for a DEVICE component unless
the allocate statement is in device context.
Commit: e973b0c810cac40cfea739c4948749ec00714f84
https://github.com/llvm/llvm-project/commit/e973b0c810cac40cfea739c4948749ec00714f84
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/MachinePipeliner.cpp
Log Message:
-----------
MachinePipeliner: Pass instruction to findLoopIncrementValue (#219966)
The helper recovered the loop block from the operand's parent
instruction. Pass the containing instruction directly so it no longer depends
on MachineOperand::getParent().
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 640ab6c44d94fbec679b3314e50468bb0c5a8f05
https://github.com/llvm/llvm-project/commit/640ab6c44d94fbec679b3314e50468bb0c5a8f05
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/FoldingSet.h
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Support/FoldingSet.cpp
Log Message:
-----------
[ADT] Derive FoldingSetNodeIDRef from ArrayRef<unsigned> (NFC) (#220824)
This patch derives FoldingSetNodeIDRef from ArrayRef<unsigned>,
benefiting from:
- Standard ArrayRef accessors like data() and size() instead of custom
getData() and getSize().
- Range-based for loops directly over FoldingSetNodeIDRef.
- Implicit conversions to and from SmallVector<unsigned>, simplifying
FoldingSetNodeID.
Assisted-by: Antigravity
Commit: b4daa75d626609b35d138866336ed4c7784d3c2f
https://github.com/llvm/llvm-project/commit/b4daa75d626609b35d138866336ed4c7784d3c2f
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP] Check legality before performing RT stride analysis (NFC). (#220968)
analyzeRtStrideCandidate builds SCEVs for pointers during analysis,
which can be expensive, especially if none of the potential strides are
legal on the target.
This improves compile-time on SLP-heavy workloads, like lencod with
ThinLTO (-0.59% on lencod, -0.06% geomean).
https://llvm-compile-time-tracker.com/compare.php?from=d23b9dbc4e8b25fc673970b27fad53a2e7a7fe60&to=c968e08d341112dbf9c1e3741b423e254d1057ab&stat=instructions:u
Aided by Opus 5.
PR: https://github.com/llvm/llvm-project/pull/220968
Commit: 7a27b9779e73d3bcb0cf2deb1f74f68ec725595b
https://github.com/llvm/llvm-project/commit/7a27b9779e73d3bcb0cf2deb1f74f68ec725595b
Author: Lucas Chollet <lucas.chollet at free.fr>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/test/CodeGen/RISCV/zero-call-used-regs.ll
Log Message:
-----------
[PEI] Call insertZeroCallUsedRegs after materializing registers (#214147)
As insertZeroCallUsedRegs only operates on physical registers, we need
to call after all registers are materialized, so after
scavengeFrameVirtualRegs.
This fixes a crash that occurs when virtual registers reach
insertZeroCallUsedRegs. Virtual registers can be introduced during the
pass by emit{Prologue,Epilogue}. For example, RISC-V uses a virtual
register to hold the size of a large alloca.
Commit: 3c31fc62e79abe663de1914c914d1dd30d0e8242
https://github.com/llvm/llvm-project/commit/3c31fc62e79abe663de1914c914d1dd30d0e8242
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/test/CIR/CodeGenOpenMP/emit-device-functions.cpp
M clang/test/CIR/Transforms/omp-mark-declare-target.cir
Log Message:
-----------
[CIR] Fix test affected by update to how EnumAttr parameters are printed (#220974)
This patch fixes a couple of tests that were affected by #220727.
Commit: 3ab93d400b4ea56b9312c02ea7bc5fb364a83ba8
https://github.com/llvm/llvm-project/commit/3ab93d400b4ea56b9312c02ea7bc5fb364a83ba8
Author: Michael Jones <michaelrj at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/unistd.yaml
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/chroot.h
M libc/src/unistd/CMakeLists.txt
A libc/src/unistd/chroot.h
M libc/src/unistd/linux/CMakeLists.txt
A libc/src/unistd/linux/chroot.cpp
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/chroot_test.cpp
M libc/utils/docgen/unistd.yaml
Log Message:
-----------
[libc] implement chroot (#220757)
Add the chroot function and relevant tests.
Assisted-by: Automated tooling, human reviewed.
Commit: 00feff9e0efa25439072444b80bde2a06b258de7
https://github.com/llvm/llvm-project/commit/00feff9e0efa25439072444b80bde2a06b258de7
Author: Tomohiro Kashiwada <kikairoya at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Cygwin.cpp
A clang/test/Driver/Inputs/basic_cygwin_tree/usr/lib/default-manifest.o
M clang/test/Driver/cygwin.cpp
Log Message:
-----------
[Clang][Cygwin] Link default-manifest.o if exists (#220875)
The Cygwin distribution provides an optional package to embed a manifest
xml to disable the UAC escalation dialog.
Link automatically the manifest only if it exists when linking an
executable (but not for DLLs, i.e., `-mdll` or `-shared`).
This matches GCC's behavior.
Commit: 7ece48b9e5bb7aafdcc53aa2445328a67b501d24
https://github.com/llvm/llvm-project/commit/7ece48b9e5bb7aafdcc53aa2445328a67b501d24
Author: Aditya Goyal <goyaladitya2403 at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/FormatTestMacroExpansion.cpp
Log Message:
-----------
[clang-format] Fix hang when object-like macro is called with arguments (#216472)
### Cause
When a macro configured as object-like (e.g. `Macros: [CASE=case]`) is
called with arguments (`CASE(1, "1")`), the parser rewinds the token
stream to reparse the arguments as regular tokens. It then called
`nextToken()`, which first pushes the current `FormatTok` onto the line
being built, but at that point `FormatTok` is the token *past* the macro
call's closing paren, left over from `parseMacroCall()`. The rewound
stream serves that token again later, so it ends up in the unwrapped
lines twice.
A duplicated token makes `AnnotatedLine`'s Next/Previous re-linking
cyclic, and the first backward walk over the line
(`TokenAnnotator::calculateUnbreakableTailLengths`) loops forever. With
a single macro call the two copies land in different lines, which
terminates but silently corrupts the layout; with two calls (or one
top-level call) they land in the same line and clang-format hangs.
### Changes
This PR restores `FormatTok` with `Tokens->getNextToken()` instead,
which yields the identical stream state without the bogus push, matching
the direct restores in the neighboring fallback paths.
The expected output of `KeepParensWhenExpandingObjectLikeMacros` changed
because it exercised the silent variant of the bug: the phantom `;`
pushed onto the `void f() {` line is what kept the macro call from being
merged with the function header.
Fixes #163338.
Commit: e845849ae3d2eedd5ea2d072b7b1df1f6a8f53af
https://github.com/llvm/llvm-project/commit/e845849ae3d2eedd5ea2d072b7b1df1f6a8f53af
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
A llvm/test/MC/AMDGPU/gfx11-vop3-literal-canonicalization.s
A llvm/test/MC/AMDGPU/gfx13-vop3-literal-canonicalization.s
Log Message:
-----------
[AMDGPU] Compare VOP literals by their encoded value (#218752)
VOP instructions can share one 32-bit literal between operands of
different
widths. The assembler compared the full operand values, so it rejected a
32-bit value and its sign-extended 64-bit form even though both use the
same
literal word.
Keep the printer's full 64-bit spelling because it describes the
operand's
value and type. Instead, make literal validation compare the bits that
will
actually be encoded. Preserve full values for explicit lit64 operands.
Commit: 0318d9e00cb90298e88f82330a73d2e14e6e9850
https://github.com/llvm/llvm-project/commit/0318d9e00cb90298e88f82330a73d2e14e6e9850
Author: ZERICO2005 <zerico2005 at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/sve-vector-splat.ll
M llvm/test/CodeGen/AMDGPU/dpp_combine.ll
M llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp-e5m3fnu.ll
M llvm/test/CodeGen/AMDGPU/fract-match.ll
M llvm/test/CodeGen/AMDGPU/frexp-constant-fold.ll
M llvm/test/CodeGen/AMDGPU/known-never-nan.ll
M llvm/test/CodeGen/AMDGPU/modf-constant-fold.ll
M llvm/test/CodeGen/AMDGPU/select-cmp-shared-constant-fp.ll
M llvm/test/CodeGen/ARM/fminmax-folds.ll
M llvm/test/CodeGen/PowerPC/fp-classify.ll
M llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
M llvm/test/CodeGen/RISCV/float-zfa.ll
M llvm/test/CodeGen/SPIRV/literals.ll
M llvm/test/CodeGen/SPIRV/validate/triton-tut-softmax-kernel.ll
M llvm/test/CodeGen/SystemZ/tdc-08.ll
M llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-liveout-unknown-lanes.ll
M llvm/test/CodeGen/WebAssembly/immediates.ll
M llvm/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll
M llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
M llvm/test/CodeGen/X86/avx512-masked-op-fusion.ll
M llvm/test/CodeGen/X86/coff-fp-section-name.ll
M llvm/test/CodeGen/X86/fmaxnum.ll
M llvm/test/CodeGen/X86/fminimum-fmaximum.ll
M llvm/test/CodeGen/X86/fminimumnum-fmaximumnum.ll
M llvm/test/CodeGen/X86/fminnum.ll
M llvm/test/CodeGen/X86/pr45443.ll
M llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics-flags.ll
M llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
M llvm/test/Transforms/Attributor/nofpclass-canonicalize.ll
M llvm/test/Transforms/Attributor/nofpclass-select.ll
M llvm/test/Transforms/Attributor/nofpclass.ll
M llvm/test/Transforms/EarlyCSE/atan.ll
M llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float-specials.ll
M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
M llvm/test/Transforms/InstCombine/AMDGPU/fmed3.ll
M llvm/test/Transforms/InstCombine/X86/x86-scalar-max-min.ll
M llvm/test/Transforms/InstCombine/binop-select.ll
M llvm/test/Transforms/InstCombine/cast-int-fcmp-eq-0.ll
M llvm/test/Transforms/InstCombine/constant-fold-nextafter.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-fp128.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-ppc-fp128.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-x86-fp80.ll
M llvm/test/Transforms/InstCombine/erf.ll
M llvm/test/Transforms/InstCombine/frexp.ll
M llvm/test/Transforms/InstCombine/ilogb.ll
M llvm/test/Transforms/InstCombine/intrinsic-select.ll
M llvm/test/Transforms/InstCombine/log1p.ll
M llvm/test/Transforms/InstCombine/logb.ll
M llvm/test/Transforms/InstCombine/pow-1.ll
M llvm/test/Transforms/InstCombine/pow-exp.ll
M llvm/test/Transforms/InstCombine/remquo.ll
M llvm/test/Transforms/InstCombine/shufflevec-constant-inseltpoison.ll
M llvm/test/Transforms/InstCombine/shufflevec-constant.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-aggregates.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-canonicalize.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-log.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-sqrt.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/cos.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fma_legacy.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fmul_legacy.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fract.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/sin.ll
M llvm/test/Transforms/InstSimplify/ConstProp/WebAssembly/trunc.ll
M llvm/test/Transforms/InstSimplify/canonicalize.ll
M llvm/test/Transforms/InstSimplify/exp10.ll
M llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll
M llvm/test/Transforms/InstSimplify/floating-point-compare.ll
M llvm/test/Transforms/InstSimplify/fminmax-folds.ll
M llvm/test/Transforms/InstSimplify/fp-undef-poison.ll
M llvm/test/Transforms/InstSimplify/fptoi-sat.ll
M llvm/test/Transforms/InstSimplify/known-never-infinity.ll
M llvm/test/Transforms/InstSimplify/known-never-nan.ll
M llvm/test/Transforms/InstSimplify/ldexp.ll
M llvm/test/Transforms/InstSimplify/pr122582.ll
M llvm/test/Transforms/InstSimplify/sincos.ll
M llvm/test/Transforms/LoopUnroll/runtime-unroll-reductions-min-max.ll
M llvm/test/Transforms/SLPVectorizer/catchswitch.ll
M llvm/unittests/Analysis/ValueTrackingTest.cpp
M llvm/unittests/CodeGen/GlobalISel/KnownFPClassTest.cpp
Log Message:
-----------
[LLVM][NFC] Use +inf/-inf syntax for float infinity literals (#221019)
Replaces the legacy float 0x* encodings with the canonical `float +inf`
and `float -inf` syntax for positive/negative infinity literals.
This reduces the chances that the old syntax is introduced in new code,
whether by copying existing tests or by an LLM reproducing the
preexisting style.
The following folders were ignored:
```
llvm/test/Assembler
```
```sh
rg -l -0 '\bfloat 0x7FF0000000000000\b' llvm \
| xargs -0 perl -pi -e 's/\bfloat 0x7FF0000000000000\b/float +inf/g'
rg -l -0 '\bfloat 0x7ff0000000000000\b' llvm \
| xargs -0 perl -pi -e 's/\bfloat 0x7ff0000000000000\b/float +inf/g'
rg -l -0 '\bfloat 0xFFF0000000000000\b' llvm \
| xargs -0 perl -pi -e 's/\bfloat 0xFFF0000000000000\b/float -inf/g'
rg -l -0 '\bfloat 0xfff0000000000000\b' llvm \
| xargs -0 perl -pi -e 's/\bfloat 0xfff0000000000000\b/float -inf/g'
```
Future work:
- Canonicalize `float 0x*` for finite values. This also makes it obvious
to tell if a value is `subnormal` at a glance.
- Canonicalize `float 0x*` encodings for NaN.
- Perform similar canonicalization for `bfloat` and `half` literals.
Commit: b5571ce66b18705348f9fd8273a286f00f4abb0f
https://github.com/llvm/llvm-project/commit/b5571ce66b18705348f9fd8273a286f00f4abb0f
Author: Joshua Batista <jbatista at microsoft.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/InterlockedAnd.hlsl
M clang/test/CodeGenHLSL/builtins/RWBuffer-Interlocked.hlsl
A clang/test/CodeGenHLSL/builtins/RWByteAddressBuffer-InterlockedAnd.hlsl
A clang/test/CodeGenHLSL/builtins/RasterizerOrderedByteAddressBuffer-InterlockedAnd.hlsl
A clang/test/SemaHLSL/BuiltIns/ByteAddressBuffer-InterlockedAnd-sm65-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/InterlockedAnd-errors.hlsl
Log Message:
-----------
Add `InterlockedAnd` standalone builtin and resource methods. (#219317)
This PR adds the `InterlockedAnd` standalone builtin, and associated
resource methods.
It mimics the implementation of the `InterlockedOr` builtin and resource
methods.
Fixes: https://github.com/llvm/llvm-project/issues/99125
Assisted by: Github Copilot
Commit: ffac111683c3adf318c9f358f6ddc097b2917f39
https://github.com/llvm/llvm-project/commit/ffac111683c3adf318c9f358f6ddc097b2917f39
Author: Joshua Batista <jbatista at microsoft.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
A llvm/test/CodeGen/DirectX/Bitcode/atomicrmw.ll
A llvm/test/tools/dxil-dis/atomicrmw.ll
Log Message:
-----------
Use `FUNC_CODE_INST_ATOMICRMW_OLD` legacy code for bitcode writer. (#219277)
Previously, for the AtomicRMW instruction, `FUNC_CODE_INST_ATOMICRMW`
(code 59) would be emitted by the bitcode writer.
This is invalid for DXIL, since `FUNC_CODE_INST_ATOMICRMW_OLD` (code 38)
is expected instead.
This PR changes the emitted code to the FUNC_CODE_INST_ATOMICRMW_OLD
code instead.
Fixes: https://github.com/llvm/llvm-project/issues/217196
Assisted by: Github Copilot
Commit: ae4823156cdf52221343b1bf9f4097eb5b54e1ac
https://github.com/llvm/llvm-project/commit/ae4823156cdf52221343b1bf9f4097eb5b54e1ac
Author: Adam Smith <adams at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
M clang/test/CIR/CodeGen/arg-attrs.cpp
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-abi-compat.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-avx.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-byref.cpp
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-empty.cpp
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-indirect.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-packed.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-padded.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-variadic.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-zero-width-bitfield.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64.c
M clang/test/CIR/CodeGen/call.c
M clang/test/CIR/CodeGen/complex-libcall-abi.c
M clang/test/CIR/Transforms/abi-lowering/byval-sret-arg-attr-lowering.cir
M clang/test/CIR/Transforms/abi-lowering/indirect-byval.cir
M clang/test/CIR/Transforms/abi-lowering/indirect-call-test-target.cir
M clang/test/CIR/Transforms/abi-lowering/indirect-call.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-bitint.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-complex.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-empty-class.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-indirect.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-padded.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-union.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-variadic-call.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-vector.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-vptr.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-wide-floats.cir
Log Message:
-----------
[CIR] Stop marking byval arguments noalias (#220673)
We were putting llvm.noalias on every byval argument. Classic adds it
only under -fpass-by-value-is-noalias, which defaults off, and that
option isn't plumbed into CIR at all, so the right thing is to not emit
it. llvm.noundef stays, since classic does emit that.
Most of the test churn is collapsing LLVM-CIR / LLVM-OGCG prefix pairs
that existed only to record the divergence.
Assisted-by: Cursor / claude-opus-5
Commit: 52e4b75c8dbf1e6c524dd360f705d417c770efec
https://github.com/llvm/llvm-project/commit/52e4b75c8dbf1e6c524dd360f705d417c770efec
Author: Thomas Anderson <thomasanderson at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M libunwind/src/DwarfInstructions.hpp
A libunwind/test/dwarf_expression_stack.pass.cpp
Log Message:
-----------
[libunwind] Bound the DWARF expression evaluator operand stack (#220662)
`evaluateExpression` interprets DW_OP_* bytecode against a fixed-size
`pint_t stack[100]` operand stack without checking whether `sp` stays
within array bounds. Malformed or hostile DWARF expressions (such as
those injected via dynamic FDE registration) pushing more than 100
values or underflowing the stack could corrupt the native call stack.
Add bounds checking on `sp` within `evaluateExpression`:
- Bound `sp` to `[&stack[1], &stack[98]]` at each iteration in the
opcode loop, as single-step opcodes push at most 1 value and net-pop at
most 1.
- Add index/depth validation for `DW_OP_pick` and `DW_OP_rot`.
- Ensure `sp >= &stack[1]` on exit from the evaluator.
- Abort execution via `_LIBUNWIND_ABORT` when bounds are violated.
- Add a regression test verifying that an overflowing DWARF expression
aborts safely rather than overflowing the stack.
Commit: 9741e25af3cecae45327c8adab6b7234f767df67
https://github.com/llvm/llvm-project/commit/9741e25af3cecae45327c8adab6b7234f767df67
Author: Piotr Jeremicz <32737430+piotrekjeremicz at users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/CodeGen/CGDebugInfo.cpp
A clang/test/DebugInfo/ObjC/property-backing-storage.m
Log Message:
-----------
[clang][DebugInfo] Emit DIProperty for synthesized Objective-C properties (#220362)
Follow-up to #215776, which added `DW_TAG_property` / `DIProperty`
support to LLVM's DebugInfo. This patch teaches Clang's CodeGen to emit
the new `DIProperty` node.
In addition to the legacy `DIObjCProperty` node, `CGDebugInfo` now also
emits a `DIProperty` node whose `backing_storage` points at the ivar a
synthesized property forwards to.
Covered in `clang/test/DebugInfo/ObjC/property-backing-storage.m`:
- `declaredBacking`: `@synthesize` binds to a custom ivar name that IS
declared in the `@interface`.
- `undeclaredBacking`: `@synthesize` binds to a custom ivar name that is
NOT declared; the compiler creates the ivar itself.
- `implicitBacking`: no `@synthesize` at all; the compiler
auto-synthesizes both the accessors and a default-named ivar.
Commit: deb7382b1b5bd500db25729a555c2e4db48a5ccd
https://github.com/llvm/llvm-project/commit/deb7382b1b5bd500db25729a555c2e4db48a5ccd
Author: Adrian Vogelsgesang <avogelsgesang at salesforce.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/CMakeLists.txt
M clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp
A clang-tools-extra/clang-tidy/modernize/UseToUnderlyingCheck.cpp
A clang-tools-extra/clang-tidy/modernize/UseToUnderlyingCheck.h
M clang-tools-extra/docs/ReleaseNotes.md
M clang-tools-extra/docs/clang-tidy/checks/list.md
A clang-tools-extra/docs/clang-tidy/checks/modernize/use-to-underlying.md
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/utility
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-to-underlying-custom-function.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-to-underlying-imprecise-casts.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-to-underlying-invalid-config.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-to-underlying.cpp
Log Message:
-----------
[clang-tidy] Add modernize-use-to-underlying check (#210459)
Add a new clang-tidy check to flag casts from a scoped enumeration to an integer
type and replaces them with a call to std::to_underlying (C++23).
Addresses #71543
Commit: 54a5233a5fa64d983b982d41fff0f5f2ad78bbb8
https://github.com/llvm/llvm-project/commit/54a5233a5fa64d983b982d41fff0f5f2ad78bbb8
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Transforms/IPO/CMakeLists.txt
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
R llvm/test/Transforms/LowerTypeTests/Inputs/export-icall.yaml
R llvm/test/Transforms/LowerTypeTests/Inputs/exported-funcs.yaml
R llvm/test/Transforms/LowerTypeTests/Inputs/use-typeid1-dead.yaml
R llvm/test/Transforms/LowerTypeTests/Inputs/use-typeid1-typeid2.yaml
M llvm/test/Transforms/LowerTypeTests/cfi-icall-alias.ll
M llvm/test/Transforms/LowerTypeTests/export-alias.ll
M llvm/test/Transforms/LowerTypeTests/export-allones.ll
M llvm/test/Transforms/LowerTypeTests/export-bytearray.ll
M llvm/test/Transforms/LowerTypeTests/export-cross-dso-cfi.ll
M llvm/test/Transforms/LowerTypeTests/export-dead.ll
M llvm/test/Transforms/LowerTypeTests/export-icall.ll
M llvm/test/Transforms/LowerTypeTests/export-inline.ll
M llvm/test/Transforms/LowerTypeTests/export-rename-local.ll
M llvm/test/Transforms/LowerTypeTests/export-single.ll
M llvm/test/Transforms/LowerTypeTests/export-symver.ll
M llvm/test/Transforms/LowerTypeTests/function-arm-thumb.ll
M llvm/test/Transforms/LowerTypeTests/pr37625.ll
Log Message:
-----------
[LowerTypeTests] Support assembly summaries and migrate export tests (#220776)
Update `LowerTypeTestsModule::runForTesting` to read module summaries
using `parseSummaryIndexAssembly` with automatic fallback to YAML.
We need summaries with call graph edges and edge hotness metadata for
upcoming tests (e.g. for jump table layout optimizations). Instead of
extending the custom YAML format, we should use the documented LLVM
assembly format for module summaries (introduced in 08d5b4ef0d08 and
63ee0e73e44e, and documented in LangRef). The text IR summary
representation (`^... = gv: (...)`) natively supports call edges,
hotness types, and function summary attributes.
Migrate all tests that used `-lowertypetests-summary-action=export` with
YAML summary inputs in `Inputs/` to self-contained tests using
`split-file` and text IR summaries. This eliminates the legacy YAML
files
and simplifies the summary representation using omitted default flags
and
tabulated layout.
TODO: Convert the rest of tests (some YAML features are missing from
textual summary assembly) and remove YAML from LowerTypeTests.
PR Stack:
* ➤ https://github.com/llvm/llvm-project/pull/220776
* https://github.com/llvm/llvm-project/pull/221043
* https://github.com/llvm/llvm-project/pull/221044
* https://github.com/llvm/llvm-project/pull/221045
* https://github.com/llvm/llvm-project/pull/221046
Assisted-by: Gemini
Commit: 7f8be14bfa87f0db6d3173647b6cb819ce00bf88
https://github.com/llvm/llvm-project/commit/7f8be14bfa87f0db6d3173647b6cb819ce00bf88
Author: Domenic Nutile <domenic.nutile at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
A llvm/test/CodeGen/AMDGPU/promote-alloca-mixed-width-access.ll
Log Message:
-----------
[AMDGPU] PromoteAlloca: split scalar accesses that span several elements (#217056)
promoteAllocaToVector already splits a *vector* access across several
elements when it is a multiple of the element size, but a *scalar*
access
had to be bitcastable to the element type, so an i64 load from an alloca
promoted to <8 x i32> was rejected as "not a supported access type" and
the object stayed in scratch.
Accept a scalar access that is a whole multiple of the element size and
route it through the existing subvector path, which already builds the
value from consecutive elements and bitcasts. Accesses with padding are
still rejected, since splitting those would put the pieces at the wrong
offsets, as are non-integer non-float types.
Commit: e069bdecff9667502245436a951cf4fa9d94a242
https://github.com/llvm/llvm-project/commit/e069bdecff9667502245436a951cf4fa9d94a242
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGen/global-ptr-flat-offset.c
A clang/test/CIR/CodeGen/local-ptr-flat-offset.cpp
M clang/test/CIR/IR/global.cir
Log Message:
-----------
[CIR] Add global offset attribute (#220128)
Previously, if we attempted to compile code that used an offset from a
global variable that created a pointer to outside the global or to a
location that wasn't the exact start of an element of a global
structure, CIR codegen would either assert or hit an unreachable
statement. However, there are legal cases where such an offset can be
used.
This change introduces a new attribute, GlobalOffsetAttr, that provides
a way to describe a raw byte offset from a pointer and uses that
attribute to handle cases where we are unable to compute indices for a
global view attribute.
Assisted-by: Cursor / various models
Commit: dd46a521607e38f7d4764ed5cef28af4f25f20c1
https://github.com/llvm/llvm-project/commit/dd46a521607e38f7d4764ed5cef28af4f25f20c1
Author: Joe Isaacs <joe.isaacs at live.co.uk>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-expandloads.ll
M llvm/test/CodeGen/AArch64/vec-combine-compare-to-bitmask.ll
Log Message:
-----------
[AArch64] Lower bitcast of wide <N x i1> masks without a stack spill in more cases (#203420)
vectorToScalarBitmask() lowers `bitcast <N x i1> to iN` to a
register-only movemask, but bailed when the mask's source vector type
`<N x ty>` is wider than 128 bits, leaving the bitcast to legalize
through a stack temporary.
The bail is unnecessary: the bitmask depends only on the lane count and
order, never on the per-lane width. Narrow the per-lane integer width to
128/NumElts bits so the mask fits one 128-bit register and the existing
register-only lowering applies.
Fixes #203414
Co-Authored-By: claude-code
---------
Co-authored-by: Claude Fable 5 <noreply at anthropic.com>
Commit: 4392beb637118222095ccb8d02cdeca4e1c95c6d
https://github.com/llvm/llvm-project/commit/4392beb637118222095ccb8d02cdeca4e1c95c6d
Author: RolandF77 <froese at ca.ibm.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
A llvm/test/Transforms/LoopVectorize/PowerPC/cost-partial-red.ll
A llvm/test/Transforms/LoopVectorize/PowerPC/partial-red.ll
Log Message:
-----------
[PowerPC] Add PPC cost model support for partial reductions (#214760)
PPC has some multiply-add partial reduction instructions, for i8 and i16
elements. Provide cost info so the vectorizers can make use of them.
Commit: d107cc3822d95ba573819ef67a8430e8c171831e
https://github.com/llvm/llvm-project/commit/d107cc3822d95ba573819ef67a8430e8c171831e
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/LowerTypeTests.h
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
M llvm/unittests/Transforms/IPO/LowerTypeTests.cpp
Log Message:
-----------
[NFC][LowerTypeTests] Make GlobalLayoutBuilder a class with build() method (#221043)
Encapsulate GlobalLayoutBuilder into a class with private members and an
explicit build() method.
This separates fragment accumulation from final layout assembly and
flattening, preparing GlobalLayoutBuilder for ordering customization
in https://github.com/llvm/llvm-project/pull/221044.
PR Stack:
* https://github.com/llvm/llvm-project/pull/220776
* ➤ https://github.com/llvm/llvm-project/pull/221043
* https://github.com/llvm/llvm-project/pull/221044
* https://github.com/llvm/llvm-project/pull/221045
* https://github.com/llvm/llvm-project/pull/221046
Assisted-by: Gemini
Commit: 61cedc743136bdd8aac5fc0d49c541325f1bd4d4
https://github.com/llvm/llvm-project/commit/61cedc743136bdd8aac5fc0d49c541325f1bd4d4
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 54a5233 (#221059)
This fixes 54a5233a5fa64d983b982d41fff0f5f2ad78bbb8 (#220776).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=54a5233a5fa64d983b982d41fff0f5f2ad78bbb8
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: c3a9d93ee54d83f7384002219d320b323e768996
https://github.com/llvm/llvm-project/commit/c3a9d93ee54d83f7384002219d320b323e768996
Author: hidekisaito <hidekido at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
M llvm/test/CodeGen/AMDGPU/sdwa-ops.mir
Log Message:
-----------
[AMDGPU] Fix for SDWA assertion fail / compiler crash (#220798)
Iterator increment went beyond the end of MBB
Commit: b59258f567427faa961c5b34bf5bb1f203b0a3e0
https://github.com/llvm/llvm-project/commit/b59258f567427faa961c5b34bf5bb1f203b0a3e0
Author: Kewen Meng <Kewen.Meng at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-select.ll
R llvm/test/CodeGen/AMDGPU/promote-alloca-homogeneous-struct.ll
Log Message:
-----------
Revert "[AMDGPU] PromoteAlloca: flatten homogeneous structs to vector… (#221058)
Reverts llvm/llvm-project#217055
unblock bot: https://lab.llvm.org/buildbot/#/builders/10
Commit: feea42c26039263d5b26976f009dcf0615fb717f
https://github.com/llvm/llvm-project/commit/feea42c26039263d5b26976f009dcf0615fb717f
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/docs/UsersManual.md
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGCUDANV.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/HIPSPV.cpp
M clang/lib/Driver/ToolChains/HIPSPV.h
M clang/test/CodeGenCUDA/anon-ns.cu
M clang/test/CodeGenCUDA/device-stub.cu
M clang/test/CodeGenCUDA/device-var-linkage.cu
M clang/test/CodeGenCUDA/managed-var.cu
M clang/test/CodeGenCUDA/offloading-entries.cu
M clang/test/CodeGenCUDA/static-device-var-rdc.cu
M clang/test/CodeGenHIP/offload-pgo-sections.hip
M clang/test/Driver/amdgpu-hip-system-arch.c
M clang/test/Driver/cuda-bad-arch.cu
M clang/test/Driver/cuda-bindings.cu
M clang/test/Driver/cuda-external-tools.cu
M clang/test/Driver/cuda-openmp-driver.cu
M clang/test/Driver/cuda-options.cu
M clang/test/Driver/cuda-phases.cu
M clang/test/Driver/ftime-trace-offload.cpp
M clang/test/Driver/gpu-libc.c
M clang/test/Driver/hip-binding.hip
M clang/test/Driver/hip-code-object-version.hip
R clang/test/Driver/hip-cuid-hash.hip
M clang/test/Driver/hip-cuid.hip
M clang/test/Driver/hip-dependent-options.hip
R clang/test/Driver/hip-device-compile.hip
R clang/test/Driver/hip-link-bc-to-bc.hip
R clang/test/Driver/hip-link-bundle-archive.hip
R clang/test/Driver/hip-link-save-temps.hip
R clang/test/Driver/hip-link-shared-library.hip
R clang/test/Driver/hip-link-static-library.hip
R clang/test/Driver/hip-offload-compress-zlib.hip
M clang/test/Driver/hip-offload-compress-zstd.hip
M clang/test/Driver/hip-options.hip
R clang/test/Driver/hip-output-file-name.hip
R clang/test/Driver/hip-partial-link.hip
M clang/test/Driver/hip-phases.hip
R clang/test/Driver/hip-rdc-device-only.hip
M clang/test/Driver/hip-save-temps.hip
M clang/test/Driver/hip-spirv-backend-bindings.c
M clang/test/Driver/hip-spirv-backend-opt.c
M clang/test/Driver/hip-spirv-backend-phases.c
M clang/test/Driver/hip-spirv-translator-new-driver.c
R clang/test/Driver/hip-target-id.hip
R clang/test/Driver/hip-temps-linux.hip
R clang/test/Driver/hip-temps-windows.hip
R clang/test/Driver/hip-toolchain-features.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
R clang/test/Driver/hip-toolchain-rdc-flto-partitions.hip
R clang/test/Driver/hip-toolchain-rdc-separate.hip
R clang/test/Driver/hip-toolchain-rdc-static-lib.hip
M clang/test/Driver/hip-toolchain-rdc.hip
R clang/test/Driver/hip-unbundle-preproc.hipi
M clang/test/Driver/hipspv-link-static-library.hip
M clang/test/Driver/hipspv-no-spirv-backend.hip
M clang/test/Driver/hipspv-pass-plugin.hip
M clang/test/Driver/hipspv-toolchain-rdc-separate.hip
M clang/test/Driver/hipspv-toolchain-rdc.hip
M clang/test/Driver/hipspv-toolchain.hip
R clang/test/Driver/lto.cu
M clang/test/Driver/nvptx-cuda-system-arch.c
A clang/test/Driver/offload-new-driver-deprecated.c
M clang/test/Driver/sycl-offload-jit.cpp
R clang/test/Driver/thinlto.cu
M clang/test/OpenMP/openmp_offload_weak_vtables.cpp
M clang/unittests/Tooling/ToolingTest.cpp
M libc/docs/gpu/using.rst
M openmp/docs/CommandLineArgumentReference.rst
M openmp/docs/SupportAndFAQ.rst
Log Message:
-----------
[Clang] Remove the old LLVM offloading driver entirely (#211924)
Summary:
The 'new' offloading driver is the unified set of steps to produce
merged host and device output. OpenMP offloading has used it by default
since Clang 13, CUDA since Clang 21, and HIP / SYCL since Clang 23. The
support has matured in the 23 release and should now cover the remaining
use-cases.
This PR completely removes the support so we stop needing to support
both when making updates to the driver.
Commit: 0edd1b088cc36b4faee80358c925a91e16006258
https://github.com/llvm/llvm-project/commit/0edd1b088cc36b4faee80358c925a91e16006258
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/Dialect/CUF/Attributes/CUFAttr.td
M flang/include/flang/Optimizer/Dialect/FIRAttr.td
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/test/Lower/OpenACC/acc-cache.f90
M flang/test/Lower/OpenMP/Todo/requires-unnamed-common.f90
M flang/test/Lower/OpenMP/force-usm.f90
M flang/test/Lower/OpenMP/has_device_addr-mapinfo.f90
M flang/test/Lower/OpenMP/interop.f90
M flang/test/Lower/OpenMP/requires-common.f90
M flang/test/Lower/OpenMP/requires-force-usm.f90
M flang/test/Lower/OpenMP/requires-usm.f90
M flang/test/Lower/OpenMP/requires.f90
M flang/test/Lower/location.f90
M flang/test/Transforms/OpenMP/lower-workdistribute-fission-target.mlir
M flang/test/Transforms/omp-map-info-finalization-usm.fir
M mlir/docs/DefiningDialects/AttributesAndTypes.md
M mlir/docs/DefiningDialects/Operations.md
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUAttrs.td
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
M mlir/include/mlir/Dialect/Arith/IR/ArithBase.td
M mlir/include/mlir/Dialect/ArmSME/IR/ArmSMEOps.td
M mlir/include/mlir/Dialect/GPU/IR/GPUBase.td
M mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
M mlir/include/mlir/Dialect/Index/IR/IndexOps.td
M mlir/include/mlir/Dialect/LLVMIR/LLVMEnums.td
M mlir/include/mlir/Dialect/LLVMIR/NVVMEnums.td
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/include/mlir/Dialect/LLVMIR/ROCDLAttrs.td
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/include/mlir/Dialect/LLVMIR/XeVMOps.td
M mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
M mlir/include/mlir/Dialect/MPI/IR/MPI.td
M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
M mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td
M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
M mlir/include/mlir/Dialect/Shard/IR/ShardBase.td
M mlir/include/mlir/Dialect/Shard/IR/ShardOps.td
M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td
M mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
M mlir/include/mlir/Dialect/Vector/IR/VectorAttributes.td
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUAttrs.td
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/include/mlir/IR/EnumAttr.td
M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
M mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp
M mlir/python/mlir/dialects/irdl.py
M mlir/test/CAPI/irdl.c
M mlir/test/Dialect/GPU/invalid.mlir
M mlir/test/Dialect/IRDL/variadics-error.irdl.mlir
M mlir/test/Dialect/OpenACC/invalid.mlir
M mlir/test/Dialect/OpenACC/ops.mlir
M mlir/test/Dialect/OpenMP/invalid.mlir
M mlir/test/Dialect/OpenMP/ops.mlir
M mlir/test/IR/array-of-attr.mlir
M mlir/test/IR/enum-attr-invalid.mlir
M mlir/test/IR/enum-attr-roundtrip.mlir
M mlir/test/IR/properties.mlir
M mlir/test/Target/LLVMIR/omptarget-atomic-capture-control-options.mlir
M mlir/test/Target/LLVMIR/omptarget-atomic-update-control-options.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device-2.mlir
M mlir/test/Target/LLVMIR/omptarget-declare-target-module-rewrite-device.mlir
M mlir/test/Target/LLVMIR/omptarget-host-ref-semantics.mlir
M mlir/test/Target/LLVMIR/omptarget-map-pointer-privatization.mlir
M mlir/test/Target/LLVMIR/omptarget-parallel-llvm-debug.mlir
M mlir/test/Target/LLVMIR/openmp-interop-depend.mlir
M mlir/test/Target/LLVMIR/openmp-interop.mlir
M mlir/test/Target/LLVMIR/openmp-llvm.mlir
M mlir/test/Target/LLVMIR/openmp-reduction-task-modifier.mlir
M mlir/test/Target/LLVMIR/openmp-teams-clauses-trunc-ext.mlir
M mlir/test/lib/Dialect/Test/TestAttrDefs.td
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/mlir-tblgen/attr-or-type-format-roundtrip.mlir
M mlir/test/mlir-tblgen/attr-or-type-format.td
M mlir/test/mlir-tblgen/enums-python-bindings.td
M mlir/test/mlir-tblgen/op-format.td
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
Log Message:
-----------
[MLIR][ODS] Default EnumAttr to angle-bracket assembly (#220608)
Make angle brackets the default assembly format for EnumAttr.
Use explicit enum directives where operations retain bare symbolic
syntax.
This is possible now because of the newly added `enum` directive in
#220412 ; which allows to use the raw enum value in the declarative
assembly format, preserving the ability for the enum to use `<` `>`
consistently in the generic form.
You can restore the previous behavior for a given enum attribute with:
```
let assemblyFormat = "$value";
```
Assisted-by: Codex
Commit: ecda99fe96662887881ddaf0a9d23350fd1b5324
https://github.com/llvm/llvm-project/commit/ecda99fe96662887881ddaf0a9d23350fd1b5324
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
M mlir/unittests/Analysis/Presburger/GeneratingFunctionTest.cpp
Log Message:
-----------
[mlir][presburger] Move generating-function storage (NFC) (#221069)
Move by-value constructor parameters into the generating function and
move the locally accumulated term storage when returning a sum. Borrow
storage from lvalue getters, transfer it from mutable rvalue getters,
and preserve value semantics for const rvalues.
Found by Coverity.
Assisted-by: Codex
Commit: a80edbd76a207a81437fe5082aafdc1fc5e524d1
https://github.com/llvm/llvm-project/commit/a80edbd76a207a81437fe5082aafdc1fc5e524d1
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
Log Message:
-----------
[MLIR] Move affine range operands into inference helpers (NFC) (#221070)
Move recursively inferred ranges into fixed-size operand arrays before
calling arithmetic inference helpers. Initialize the affine modulo lower
bound directly instead of copying a local APInt.
Found by Coverity.
Assisted-by: Codex
Commit: a1ac4a76dd5bcbf18b5b82b1fe3a9e62112a20c3
https://github.com/llvm/llvm-project/commit/a1ac4a76dd5bcbf18b5b82b1fe3a9e62112a20c3
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Dialect/GPU/TransformOps/Utils.cpp
Log Message:
-----------
[MLIR][GPU] Move ID-builder results into place (NFC) (#221071)
Move locally owned error strings, mapping IDs, and predicate operations
into IdBuilderResult at the end of each builder callback. These values
are not used after the return, so copying their storage is unnecessary.
Found by Coverity.
Assisted-by: Codex
Commit: 28b0727401a42b79f9e325f84e8ad1f97e17b002
https://github.com/llvm/llvm-project/commit/28b0727401a42b79f9e325f84e8ad1f97e17b002
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
M mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir
Log Message:
-----------
[MLIR][OpenACC] Track compute region canonicalization updates (#221031)
The compute-region canonicalizations mutate block arguments, operands,
and the operand segment attribute. Route these updates through
modifyOpInPlace so pattern-rewriter listeners observe every mutation.
Assisted-by: Codex
Commit: de261e3c44944b21755aa53d593a99a5fabaa3c0
https://github.com/llvm/llvm-project/commit/de261e3c44944b21755aa53d593a99a5fabaa3c0
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp
Log Message:
-----------
[MLIR][IRDL] Move generated dialect strings into storage (NFC) (#221072)
Move locally assembled C++ names and namespace fragments into the
dialect string table. Their temporary strings are not used after the
table entry is built, so copying their allocations is unnecessary.
Found by Coverity.
Assisted-by: Codex
Commit: 39b68d585b3946f5da782f016d590940349848ca
https://github.com/llvm/llvm-project/commit/39b68d585b3946f5da782f016d590940349848ca
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M lldb/tools/debugserver/source/RNBRemote.cpp
Log Message:
-----------
[lldb][debugserver] Don't overwrite the attach error with a hint (#220993)
When the attach fails with "unable to start the exception thread",
debugserver snprintf'd advice about checking Console.app over err_str,
destroying the real error before it reached both the packet sent to lldb
and the DNBLogError below it. That step can fail for reasons other than
a denied attach, so the hint replaced an authoritative error with a
guess.
Commit: 85bb73475eaf0e58b3c4e240a112555551973f50
https://github.com/llvm/llvm-project/commit/85bb73475eaf0e58b3c4e240a112555551973f50
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
Log Message:
-----------
[MLIR][amdgpu] Pass descriptor adaptors by reference (NFC) (#221078)
Pass the descriptor adaptor (136-byte struct) by reference through the
tensor-dimension helper chain. These generated adaptors are read-only in
practice but expose non-const accessors, so use a non-const reference to
avoid copying them.
Found by Coverity.
Assisted-by: Codex
Commit: a9ef5bce7ab674b8294a9379a5fa6e3a157f4594
https://github.com/llvm/llvm-project/commit/a9ef5bce7ab674b8294a9379a5fa6e3a157f4594
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
Log Message:
-----------
[MLIR] Avoid copies in xor range inference (NFC) (#221083)
Borrow the input ranges and move local APInt values into bitwise
operations at their last use while computing varying-bit masks and
inferred xor bounds.
Found by Coverity.
Assisted-by: Codex
Commit: 0e307f140dcd3164b6383b5c3019edb134088a2d
https://github.com/llvm/llvm-project/commit/0e307f140dcd3164b6383b5c3019edb134088a2d
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Dialect/GPU/Pipelines/GPUToXeVMPipeline.cpp
Log Message:
-----------
[MLIR][GPU] Move XeVM pipeline options into passes (NFC) (#221074)
Move locally assembled pass options into pass constructors at their last
use. Keep the lane-layout options intact until the second propagation
pass, then move them as well.
Found by Coverity.
Assisted-by: Codex
Commit: dde327a01fc50e279c4aa7406fd1b0055991fedf
https://github.com/llvm/llvm-project/commit/dde327a01fc50e279c4aa7406fd1b0055991fedf
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
Log Message:
-----------
[MLIR][linalg] Move transform options at their last use (NFC) (#221076)
Move locally assembled tiling and padding options into their owning
destinations at their last use. Remove a self-copy assignment around
setTileSizes while preserving its mutation.
Found by Coverity.
Assisted-by: Codex
Commit: d90f6c36abd7b41e771855261d92fcf29c4a24ef
https://github.com/llvm/llvm-project/commit/d90f6c36abd7b41e771855261d92fcf29c4a24ef
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
Log Message:
-----------
[MLIR][XeGPU] Avoid copies in shape helpers (NFC) (#221080)
Pass shapes by reference to the read-only diagnostic formatter. Move
local shape vectors into the owning layout helper when they are no
longer needed.
Found by Coverity.
Assisted-by: Codex
Commit: 79ad4f834939f988dfdaa1d08e457014619303ca
https://github.com/llvm/llvm-project/commit/79ad4f834939f988dfdaa1d08e457014619303ca
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
Log Message:
-----------
[MLIR][SPIRV] Move deferred struct information into storage (NFC) (#221077)
Transfer the locally accumulated member and decoration information into
the deferred struct record when forward references require it.
Found by Coverity.
Assisted-by: Codex
Commit: 3e18eb0828b16b978f134a5363a52598aa6cb02d
https://github.com/llvm/llvm-project/commit/3e18eb0828b16b978f134a5363a52598aa6cb02d
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
Log Message:
-----------
[MLIR] Move bitwise bounds into local arrays (NFC) (#221082)
Materialize bitwise-and and bitwise-or candidate bounds in fixed-size
arrays by moving local APInt values. This avoids initializer-list copies
before min/max inference.
Found by Coverity.
Assisted-by: Codex
Commit: e6b033b3bff9b6f93d5f0190e5042788dba9f197
https://github.com/llvm/llvm-project/commit/e6b033b3bff9b6f93d5f0190e5042788dba9f197
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/SCF/Transforms/TileUsingInterface.h
M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.cpp
Log Message:
-----------
[MLIR][test] Avoid copies in tiling transform utilities (NFC) (#221073)
Move locally owned tiling options, interchange vectors, and custom loop
callbacks at their last use. Also call setTileSizes directly instead of
copy-assigning the options object from its own returned reference.
Found by Coverity.
Assisted-by: Codex
Commit: c71cf1434b644a6e7867ac0384b5468439b2f1af
https://github.com/llvm/llvm-project/commit/c71cf1434b644a6e7867ac0384b5468439b2f1af
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
Log Message:
-----------
[MLIR] Move inferred remainder bounds into results (NFC) (#221081)
Move locally computed signed and unsigned remainder bounds into their
final range accumulators when the special-case bounds are selected.
Found by Coverity.
Assisted-by: Codex
Commit: fefa6aebf5ff92edda97edb0e889d8a032958a5b
https://github.com/llvm/llvm-project/commit/fefa6aebf5ff92edda97edb0e889d8a032958a5b
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M lldb/test/API/lit.cfg.py
M lldb/test/API/lldbtest.py
M lldb/test/Shell/helper/toolchain.py
M lldb/test/Shell/lit.cfg.py
A lldb/test/lldbflakes.py
Log Message:
-----------
[lldb][test] Rerun tests that hit a known flaky failure (#221006)
macOS 26.3 denies debugserver permission to attach when too many debug
sessions start at once, which surfaces as a test failing with "process
exited with status -1". The denial is intermittent and a rerun normally
gets through.
Gate the rerun on a list of known flake signatures rather than retrying
every failure, because a blanket retry masks real bugs. Adding to that
list is a last resort for defects outside LLDB's control.
Commit: 6a2098943fd59d0cd227ed23ea31c87823d017de
https://github.com/llvm/llvm-project/commit/6a2098943fd59d0cd227ed23ea31c87823d017de
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
A orc-rt/include/orc-rt-internal/bedrock/sys/CPUFeatures.h
A orc-rt/include/orc-rt-internal/bedrock/sys/PageSize.h
A orc-rt/include/orc-rt-internal/bedrock/sys/TargetTriple.h
M orc-rt/include/orc-rt-internal/support/sys/DynamicLibrary.h
M orc-rt/include/orc-rt-internal/support/sys/Memory.h
M orc-rt/include/orc-rt/bedrock/ExecutorProcessInfo.h
M orc-rt/lib/bedrock/CMakeLists.txt
M orc-rt/lib/bedrock/ExecutorProcessInfo.cpp
M orc-rt/lib/bedrock/sys/darwin/CPUFeatures.cpp
M orc-rt/lib/bedrock/sys/darwin/TargetTriple.cpp
M orc-rt/lib/bedrock/sys/linux/CPUFeatures.cpp
M orc-rt/lib/bedrock/sys/linux/TargetTriple.cpp
A orc-rt/lib/bedrock/sys/posix/PageSize.cpp
M orc-rt/lib/bedrock/sys/windows/CPUFeatures.cpp
M orc-rt/lib/bedrock/sys/windows/TargetTriple.cpp
M orc-rt/test/unit/CMakeLists.txt
M orc-rt/test/unit/bedrock/ExecutorProcessInfoTest.cpp
A orc-rt/test/unit/bedrock/sys/CPUFeaturesTest.cpp
A orc-rt/test/unit/bedrock/sys/TargetTripleTest.cpp
Log Message:
-----------
[orc-rt] Make ExecutorProcessInfo platform-generic (#220938)
ExecutorProcessInfo was part generic, part system-specific: some of its
methods were implemented directly in its own .cpp, others only existed
as out-of-line definitions in per-OS files under lib/bedrock/sys/.
Move the system-specific pieces into free functions under orc_rt::sys
(mirroring the existing support/sys/ convention), and have
ExecutorProcessInfo consume them like any other client. The class itself
is now fully generic, with no system-specific code of its own.
No functional change, except that page-size detection (previously
hardcoded to POSIX sysconf) now goes through the same per-OS split as
the rest of ExecutorProcessInfo; a Windows implementation is left for a
follow-up.
Commit: adf79c9ab28991d66f7d765437fb112fbbe00ec9
https://github.com/llvm/llvm-project/commit/adf79c9ab28991d66f7d765437fb112fbbe00ec9
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/SandboxIR/Context.h
M llvm/lib/SandboxIR/Context.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
Reapply "[SandboxIR] Callback registration now allows specifying order (#221008) (#221017)
This reverts commit 89082772bed1ed16c0311b12147a96c35bb063d8.
And includes the fix.
Commit: 256e742e5f543f728c9a8556749086fbf99f2409
https://github.com/llvm/llvm-project/commit/256e742e5f543f728c9a8556749086fbf99f2409
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/CodeGen/QualTypeMapper.cpp
A clang/test/CodeGen/X86/x86_64-empty-cxx-member-abi.cpp
M llvm/include/llvm/ABI/Types.h
M llvm/lib/ABI/Types.cpp
M llvm/unittests/ABI/CMakeLists.txt
A llvm/unittests/ABI/TypesTest.cpp
M llvm/utils/gn/secondary/llvm/unittests/ABI/BUILD.gn
Log Message:
-----------
[LLVMABI] Align RecordType::isEmpty() with Clang's isEmptyRecord() (#218546)
[LLVMABI] Align RecordType::isEmpty() with Clang's isEmptyRecord()
While working on empty record handling for AArch64, I stumbled across a
couple of differences between the LLVM ABI library's
`RecordType::isEmpty()` and Clang's `CodeGen::isEmptyRecord()`. Testing
verified this led to observable differences in classification when using
the ABI library.
This change updates the ABI library's empty record handling to match
Clang.
Assisted-by: Cursor / various models
Commit: 30c695d318a70e58dfb1f8d89c2ba6b8350ebec6
https://github.com/llvm/llvm-project/commit/30c695d318a70e58dfb1f8d89c2ba6b8350ebec6
Author: Andres-Salamanca <andrealebarbaritos at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
A clang/test/CIR/CodeGenCoroutines/coro-alloc.cpp
Log Message:
-----------
[CIR] Add support for coroutine allocation failure (#220466)
This PR adds support for the coroutine promise member function
`get_return_object_on_allocation_failure()`.
When a coroutine fails to allocate its frame, the default behavior is to
throw `std::bad_alloc`. If the promise type defines
`get_return_object_on_allocation_failure()`, the coroutine uses the
nothrow form of `operator new`. If the allocation returns `nullptr`,
`get_return_object_on_allocation_failure()` is called and its return
value is returned to the caller instead of throwing.
One difference from OG is that we reverse the allocation condition. OG
checks whether the allocation was successful and branches to the
initialization path when the allocation succeeds. CIR checks whether the
allocated pointer is `nullptr` and handles the allocation failure case
inside a `cir.if`.
Commit: 49c9f5572bf175004b76c8f61677024e5aa5bbdb
https://github.com/llvm/llvm-project/commit/49c9f5572bf175004b76c8f61677024e5aa5bbdb
Author: Ron Green [NVIDIA] <rogreen at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/include/clang/Options/FlangOptions.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/docs/Extensions.md
M flang/docs/ReleaseNotes.md
M flang/include/flang/Support/Fortran-features.h
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Semantics/expression.cpp
M flang/lib/Support/Fortran-features.cpp
A flang/test/Driver/fout-of-bounds-subscripts.f90
M flang/test/Semantics/bug171844.f90
A flang/test/Semantics/bug82684.f90
M flang/test/Semantics/expr-errors06.f90
Log Message:
-----------
[flang] Warn rather than error on out-of-range constant subscripts (#220435)
A reference with an out-of-range constant subscript is now accepted with
a
warning instead of being rejected with an error, and
`-fno-out-of-bounds-subscripts`
restores the error.
A subscript value is required to be within its bounds only when the
reference is
executed (F'2023 9.5.3.1 paragraph 2), so a reference that never runs
does not
render a program nonconforming. Whether a reference is ever executed
cannot be
determined in general -- consider a procedure whose only call site is in
dead
code, or one that is never called at all -- so rejecting these outright
turns
away conforming programs. Semantics already recognized the narrow case
of a
reference inside a statically false `IF` construct (#174040); this
generalizes
that treatment.
Every other Fortran compiler we have checked accepts this code, so the
previous
behavior blocked migration to Flang. This supersedes the approach in the
first
revision of this PR, which kept the error as the default and added an
opt-in
flag; see also the closed #83011, whose position we now agree with.
### Scope
Covered, and now warnings by default:
- subscripts of variables
- the endpoints of array sections (`a(4:6)` where `a` is `a(5)`)
Deliberately **not** covered, still errors:
- **cosubscripts** -- the requirement is F'2023 9.6 paragraph 2 rather
than
9.5.3.1 paragraph 2, and a cosubscript list determines an image index,
so an
out-of-cobounds constant cosubscript is a materially different situation
- references to a **named constant array** (`Subscript value (0) is out
of range
... in reference to a constant array value`)
- **`DATA` statement designators**
- **substrings**
### User-visible notes
- With the default, an out-of-range subscript inside a statically false
`IF`
construct is now reported as `[-Wout-of-bounds-subscripts]` rather than
`[-Wbad-value-in-dead-code]`, and no longer carries the "in code known
to be
dead due to this compile-time IF expression value" note. No control is
lost:
either `-Wno-` spelling still silences it, and
`-fno-out-of-bounds-subscripts`
restores the previous behavior exactly.
- A module file compiled with the warning can produce errors in a
dependent
compilation that passes `-fno-out-of-bounds-subscripts`, because the
interface
is re-analyzed there; those errors point into the module file.
- `-Wno-out-of-bounds-subscripts` silences the warning entirely.
### Tests
- `flang/test/Semantics/bug82684.f90` -- covers the default, `-fno-`,
and `-Wno-`
modes, plus a section endpoint, and pins the cosubscript /
named-constant /
`DATA` / substring cases as errors in all three modes.
- `flang/test/Driver/fout-of-bounds-subscripts.f90` -- driver-level
coverage of
both spellings, including both orderings to pin down last-wins
precedence.
- `flang/test/Semantics/expr-errors06.f90` and `bug171844.f90` now pass
`-fno-out-of-bounds-subscripts` so they keep testing the error path and
the
downgrade of errors to warnings in code known to be dead.
The motivating pattern, which compiles with other open source and vendor
compilers:
```fortran
module grid_bounds
implicit none
!...choose a 2D or 3D sim by uncomment 1, comment other.
integer, parameter :: n_dims = 2
!integer, parameter :: n_dims = 3
integer, parameter :: extents = 1000
type :: grid_type
real :: cells(extents, n_dims)
end type
contains
subroutine init_2Dgrid(node)
type(grid_type), intent(inout) :: node
node%cells(:,1) = 1.0
node%cells(:,2) = 2.0
end subroutine init_2Dgrid
subroutine init_3Dgrid(node)
type(grid_type), intent(inout) :: node
node%cells(:,1) = 1.0
node%cells(:,2) = 2.0
node%cells(:,3) = 3.0
end subroutine init_3Dgrid
end module grid_bounds
program simul
use grid_bounds
implicit none
type(grid_type) :: x
if (n_dims == 2 ) then
call init_2Dgrid(x)
else
call init_3Dgrid(x)
end if
print*, x%cells(1,:)
end program simul
```
Addresses #82684
Commit: 5498c18b6d83d636fe936454ac07a38692f395af
https://github.com/llvm/llvm-project/commit/5498c18b6d83d636fe936454ac07a38692f395af
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
A clang/test/CIR/CodeGen/global-replace-record-array.c
Log Message:
-----------
[CIR] Fix a problem with global view index calculation (#221066)
When a global that was declared with an incomplete array type is
replaced by a global with the completed type, the byte offset of each
global view on the old global is recomputed from its indices, and new
indices are derived from that offset. The offset computation rounded its
running total up to the ABI alignment of the record being indexed, which
incorrectly assumes that every member starts at a multiple of its
enclosing record's alignment. That does not hold for a member followed
by padding, so the offset came out too large. The recomputed view then
designated the wrong address or, when the inflated offset no longer
landed on a subelement boundary, fell back to a global offset attribute
holding the wrong offset.
Assisted-by: Cursor / claude-opus-5
Commit: f111407c0502851409a887c8e5dea4a3ec190d4e
https://github.com/llvm/llvm-project/commit/f111407c0502851409a887c8e5dea4a3ec190d4e
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/SandboxIR/Context.h
M llvm/lib/SandboxIR/Context.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
Revert "Reapply "[SandboxIR] Callback registration now allows specifying order (#221008)" (#221095)
Reverts llvm/llvm-project#221017
unittest failure
Commit: 20498c810eb6c9e6dfb28a9b47c64e58e047a9e8
https://github.com/llvm/llvm-project/commit/20498c810eb6c9e6dfb28a9b47c64e58e047a9e8
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/test/ExecutionEngine/Orc/throw-catch-merged-compact-unwind.ll
M llvm/test/ExecutionEngine/Orc/throw-catch-minimal.ll
M llvm/test/ExecutionEngine/Orc/throw-catch-no-frame-pointer.ll
M llvm/test/ExecutionEngine/OrcLazy/global-ctors-and-dtors.ll
M llvm/test/ExecutionEngine/OrcLazy/minimal-throw-catch.ll
M llvm/test/lit.cfg.py
M llvm/tools/lli/lli.cpp
Log Message:
-----------
[ORC] Add host-jit-triple lit feature, gate some JIT tests (#220929)
The JIT does not support throwing exceptions on Darwin/arm64e yet. Add
an llvm-lit feature flag, "host-jit-triple", that reports the process
triple as detected by `lli` so that we can mark exception-throwing tests
as unsupported when they would be run as arm64e. (Feature flags based on
build settings, e.g. host-triple and target-triple, don't reliably
report arm64e).
Adds a -host-jit-triple option to lli to print the value for the
feature-flag.
rdar://185482009
Commit: 6ba0802b406e0963720a698702b9136578dde149
https://github.com/llvm/llvm-project/commit/6ba0802b406e0963720a698702b9136578dde149
Author: Clayton Knittel <cknit1999 at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/test/DebugInfo/CXX/limited-ctor.cpp
Log Message:
-----------
[DebugInfo] Ignore undefined constexpr constructors in constructor homing. (#218165)
The constructor homing optimization limits the amount of redundant debug
info generated for classes by only emitting forward declarations to
debug info in translation units that can't instantiate the class on
their own (i.e. they don't see the definitions of any constructors).
Currently, classes that have _any_ constexpr constructors are excluded
from the optimization. This is being changed to only exclude _defined_
constexpr constructors, as declared constexpr constructors are not
callable in a TU that doesn't see their definition.
Signed-off-by: Clayton Knittel <cknit1999 at gmail.com>
Commit: e97669b24d4419cc9839054d84d736db13b7ebe8
https://github.com/llvm/llvm-project/commit/e97669b24d4419cc9839054d84d736db13b7ebe8
Author: Jared Hoberock <jaredhoberock at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
A mlir/test/Conversion/GPUToNVVM/private-func-no-c-interface.mlir
A mlir/test/Conversion/GPUToROCDL/private-func-no-c-interface.mlir
Log Message:
-----------
[mlir][gpu] Don't request C wrappers for private device functions (#214552)
GPU lowerings attach `llvm.emit_c_interface` to device functions
regardless of visibility. This causes private device functions to
receive external entry points and prevents such functions from being
culled by DCE.
On a real module lowered by a downstream compiler, we measured that
unconditional `llvm.emit_c_interface` inflated the generated PTX by 1.8x
by keeping unused private functions alive and by 7x for pipelines that
also give private functions internal linkage.
This change attaches `llvm.emit_c_interface` only to functions which are
not private for both the gpu->nvvm and gpu->rocdl lowerings. No behavior
change to existing unit tests, and new tests are added to witness the
new behavior for private functions.
Assisted-by: Claude Code
Commit: f5d0b6307a337b5b9f81cfd2e0daea1be32fef57
https://github.com/llvm/llvm-project/commit/f5d0b6307a337b5b9f81cfd2e0daea1be32fef57
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/test/CIR/CodeGenOpenACC/combined-copy.c
M clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/compute-copy.c
M clang/test/CIR/CodeGenOpenACC/compute-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/data-copy-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/declare-copy.cpp
M clang/test/CIR/CodeGenOpenACC/declare-copyin.cpp
M clang/test/CIR/CodeGenOpenACC/declare-copyout.cpp
M clang/test/CIR/CodeGenOpenACC/declare-create.cpp
M clang/test/CIR/CodeGenOpenACC/enter-data.c
M clang/test/CIR/CodeGenOpenACC/exit-data.c
M clang/test/CIR/CodeGenOpenMP/omp-module-attrs.c
Log Message:
-----------
[CIR] Fixup OpenACC + 1 OMP test from modifiers attribute changes. (#221101)
Commit: 6632578995ae6844d364c9be398f28ad68af9c8a
https://github.com/llvm/llvm-project/commit/6632578995ae6844d364c9be398f28ad68af9c8a
Author: cmtice <cmtice at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M clang/unittests/AST/AttrTest.cpp
Log Message:
-----------
[clang][OpenMP] Add explicit default libomp value to test. (#221098)
The test OMPInvariantPredicateBoundOnIntraTileLoop, in AttrTest.cpp uses
'-fopenmp' without supplying an explcit value. In some places the
default value is 'libomp', which works just fine for this test. But in
envorinments where 'libomp' is not the default value (e.g. places that
use 'libgomp' by default) the test fails. This fixes that issue by
explicitly telling the test to use 'libomp'.
Commit: d9dbc703b1acb6c03584e2c5fd6f017a2ba6d9fe
https://github.com/llvm/llvm-project/commit/d9dbc703b1acb6c03584e2c5fd6f017a2ba6d9fe
Author: Jonas Heinle <jonasheinle at googlemail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
M llvm/test/CodeGen/AArch64/pr58516.ll
M llvm/test/CodeGen/AArch64/wineh-bti-funclet.ll
M llvm/test/CodeGen/AArch64/wineh-catchret-label-generation.ll
M llvm/test/CodeGen/AArch64/wineh-try-catch-nobase.ll
M llvm/test/CodeGen/AArch64/wineh-try-catch-realign.ll
M llvm/test/CodeGen/AArch64/wineh-try-catch-vla.ll
M llvm/test/CodeGen/AArch64/wineh-try-catch.ll
Log Message:
-----------
[AArch64] Fix missing :lo12: on the catchret address pair (#219200)
`llc -mtriple=aarch64-pc-windows-msvc` emits assembly it cannot assemble
itself.
A function with a `catchret` materialises its continuation block like
this:
```asm
"?catch$2@?0?f at 4HA":
adrp x0, .LBB0_1
add x0, x0, .LBB0_1
ret
```
Pipe that back through `llvm-mc` and you get:
```
error: expected compatible register, symbol or integer in range [0, 4095]
add x0, x0, .LBB0_1
^
```
The `:lo12:` is missing. The CATCHRET expansion in
`AArch64InstrInfo::expandPostRAPseudo()` builds the pair with plain
`.addMBB()`,
so neither operand carries a relocation specifier. This sets `MO_PAGE`
and
`MO_PAGEOFF | MO_NC` on them and teaches `lowerOperand()` to honour a
fragment
flag on a block operand, which is what it already does for every other
symbol
operand.
Two things I got wrong first, in case they come up in review:
- **The flags belong on the MBB operands, not on a symbol.** Rewriting
the pair
with `.addSym()` fixes the printing as well, but it drops the block
reference
and shifts basic-block numbering in
`wineh-catchret-label-generation.ll`.
- **`LowerSymbolOperand()` reads `MO.getOffset()`**, which an MBB
operand does
not have — it asserts. It needs the same guard the neighbouring line
already
carries for jump-table indices, in all three of the ELF/MachO/COFF
paths.
Objects are unaffected: the relocations were always correct
(`PAGEBASE_REL21` + `PAGEOFFSET_12A`), which I checked by assembling the
fixed
output and diffing it against `-filetype=obj`. So this is `-S` /
clang-cl `/FA`
only. It still cost me a night — that is the route you take when a
codegen error
arrives with no source location, and on Windows-on-ARM with C++
exceptions the
route was closed.
Found with clang-cl 23.1.0 building OpenCV for
`aarch64-pc-windows-msvc`.
Assisted-by: Claude (Anthropic)
Commit: dc8e837e6a6c4ff86dc09ba6957270335acefb85
https://github.com/llvm/llvm-project/commit/dc8e837e6a6c4ff86dc09ba6957270335acefb85
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.h
M flang/include/flang/Optimizer/Support/InternalNames.h
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.cpp
M flang/lib/Optimizer/Support/InternalNames.cpp
M flang/unittests/Optimizer/InternalNamesTest.cpp
M mlir/include/mlir/Dialect/OpenACC/OpenACCOpsInterfaces.td
M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
Log Message:
-----------
[mlir][openacc] Add isCompilerGenerated to GlobalVariableOpInterface (#221096)
This function is used to determine if a global is compiler generated or
coming from user variables. This is useful when determining the handling
of globals for unified memory mode.
Commit: ceabc54809682ba79a490fa6f9f81cdb30523279
https://github.com/llvm/llvm-project/commit/ceabc54809682ba79a490fa6f9f81cdb30523279
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/Transforms/ACCDeclareGPUModuleInsertion.cpp
Log Message:
-----------
[mlir][openacc][NFC] Fix ACCDeclareGPUModuleInsertion header (#221106)
Commit: 358cafe41326e1e543b04048d5a200cf6f16ac8a
https://github.com/llvm/llvm-project/commit/358cafe41326e1e543b04048d5a200cf6f16ac8a
Author: Chad Austin <chad at chadaustin.me>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVProcessors.td
A llvm/test/CodeGen/RISCV/andes-45-unaligned-scalar-mem.ll
Log Message:
-----------
[RISCV] Andes: model fast unaligned accesses (#220756)
Mark the Andes 45 tuning profile as supporting efficient unaligned
scalar loads and stores. This lets fixed-size alignment-one copies lower
to scalar instructions instead of a memcpy call. On these in-order
cores, where performance is almost synonymous with instruction count,
this is a material win.
Commit: 9e3a7335e77e92cf4d739d78592c6c31900c4e97
https://github.com/llvm/llvm-project/commit/9e3a7335e77e92cf4d739d78592c6c31900c4e97
Author: Rong "Mantle" Bao <rong.bao at csmantle.top>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchFloatInstrFormats.td
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.h
A llvm/test/MC/Disassembler/LoongArch/colored.txt
A llvm/test/MC/Disassembler/LoongArch/lit.local.cfg
Log Message:
-----------
[LoongArch][MC] Add assembly syntax highlighting for LoongArch (#218946)
This PR adds color highlighting of registers and immediates in LoongArch
disassembly.
This is similar to #65853.
Commit: 822f549e988f143fc8f035b8407db9dc6f43d13f
https://github.com/llvm/llvm-project/commit/822f549e988f143fc8f035b8407db9dc6f43d13f
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/IR/PrintPasses.h
M llvm/include/llvm/Passes/StandardInstrumentations.h
M llvm/lib/Analysis/CallGraphSCCPass.cpp
M llvm/lib/Analysis/LoopPass.cpp
M llvm/lib/Analysis/RegionPass.cpp
M llvm/lib/CodeGen/MachineFunctionPass.cpp
M llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
M llvm/lib/IR/IRPrintingPasses.cpp
M llvm/lib/IR/LegacyPassManager.cpp
M llvm/lib/IR/Pass.cpp
M llvm/lib/IR/PrintPasses.cpp
M llvm/lib/IRPrinter/IRPrintingPasses.cpp
M llvm/lib/Passes/StandardInstrumentations.cpp
A llvm/test/CodeGen/X86/source-loc-print-filter.ll
A llvm/test/Other/source-loc-print-filter.ll
Log Message:
-----------
[IR] Add source location filtering to pass dumps (#203393)
Large dumps from `-print-after-all` can be hard to use when only a few
source lines matter. Function filtering can still print too much and can
miss code after inlining.
Add `-filter-print-source-locs` to limit IR and machine-function dumps
to matching debug locations. The option accepts file names or paths with
selected lines and ranges. It also follows inlined locations and works
with legacy and new pass managers.
Commit: 85081add2d8b401e5f5ee67cf4af11531560f3bf
https://github.com/llvm/llvm-project/commit/85081add2d8b401e5f5ee67cf4af11531560f3bf
Author: Pecco <gaoyanfeng.gyf at alibaba-inc.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
M mlir/test/Dialect/Linalg/vectorization/contraction-interface.mlir
Log Message:
-----------
[mlir][linalg] Preserve cast semantics in named contraction vectorization (#216283)
This patch fixes correctness issues in named contraction vectorization
of Linalg ops whose operands require conversion to an integer
accumulator type.
When `create_named_contraction` is enabled, an op such as `linalg.matmul
{cast = #linalg.type_fn<cast_unsigned>}` was lowered directly to a
mixed-width `vector.contract` without materializing the implied
`arith.extui`. Since `vector.contract` promotes mixed-width integer
operands using sign extension, an `i8 x i8 -> i32` matmul could
interpret unsigned inputs as signed values and produce incorrect
results.
Floating-point operands were similarly passed directly to
`vector.contract` without materializing the `arith.fptosi` or
`arith.fptoui` conversion implied by the Linalg cast semantics.
Materialize `arith.extui` for narrower unsigned integer inputs and
`arith.fptosi` or `arith.fptoui` for floating-point inputs before
constructing the `vector.contract`. Signed integer widening remains
implicit because it matches the promotion semantics of
`vector.contract`.
Assisted-by: Codex (OpenAI)
Commit: faf31b04449c2592100d9693acf882c751de6519
https://github.com/llvm/llvm-project/commit/faf31b04449c2592100d9693acf882c751de6519
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
Log Message:
-----------
[clang][bytecode] Allocate EvalEmitter locals using InterpState allocator (#220922)
They have the same lifetime, so might as well use the existing
allocator.
Commit: f6f14162f59d360509ad79ae96336223b724f44d
https://github.com/llvm/llvm-project/commit/f6f14162f59d360509ad79ae96336223b724f44d
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/FoldingSet.h
Log Message:
-----------
[FoldingSet] Assert inserted node's profile matches its lookup (#220166)
In FoldingSetImpl::insert, assert the node profile matches the insert
token. Otherwise, a memoized node can never be matched, leading to
missing hash consing.
This would catch SelectionDAG's and clang's missing CSE bugs (#219911,
#220168)
Commit: 3dc8f05c99acf7be7ffc123743ee866dc8b6a0fc
https://github.com/llvm/llvm-project/commit/3dc8f05c99acf7be7ffc123743ee866dc8b6a0fc
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/SmallPtrSet.h
M llvm/unittests/ADT/SmallPtrSetTest.cpp
Log Message:
-----------
[ADT] Use isComparableWith in SmallPtrSet (#221020)
This patch updates operator== in SmallPtrSet to use
DebugEpochBase::HandleBase::isComparableWith, bringing it in line with
DenseMap, FoldingSet, and StringMap.
Assisted-by: Antigravity
Commit: 418130d60e3942e957de0f870f25a2e4baaec188
https://github.com/llvm/llvm-project/commit/418130d60e3942e957de0f870f25a2e4baaec188
Author: jay0x <90309873+blazie2004 at users.noreply.github.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp
M flang/test/Transforms/simplifyintrinsics.fir
Log Message:
-----------
[Flang] Skip SimplifyIntrinsics for unsigned reductions (#220850)
SimplifyIntrinsics assumes that the reduction argument element type
matches the runtime call result type.
For UNSIGNED reductions, this is not true. For example, MAXVAL on an
UNSIGNED(4) array is lowered with an array element type of ui32, while
the runtime call returns i32 and is converted back to ui32 afterward.
This causes an assertions-enabled build to fail at -O1 and above with:
```
Assertion `*argType == resultType &&
"Argument/result types mismatch in reduction"' failed.
```
The existing simplified integer reduction path is also not safe for
unsigned values. In particular, MAXVAL currently uses a signed minimum
value as the reduction identity and `arith::MaxSIOp` for the comparison.
Instead of weakening the assertion, skip SimplifyIntrinsics when the
input element type is unsigned and preserve the existing runtime call.
This keeps the correct unsigned semantics while leaving signed integer
and floating-point reductions unchanged.
fixes : [218926](https://github.com/llvm/llvm-project/issues/218926)
Co-authored-by: Jay Satish Kumar Patel <kumarpat at pe31.hpc.amslabs.hpecorp.net>
Commit: c0fb057aad586f4dbf4968f98262dcbeb9ee45ce
https://github.com/llvm/llvm-project/commit/c0fb057aad586f4dbf4968f98262dcbeb9ee45ce
Author: PushkarSingh <149073046+iitianpushkar at users.noreply.github.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/test/Sema/LifetimeSafety/annotation-suggestions.cpp
M clang/test/Sema/LifetimeSafety/nocfg.cpp
M clang/test/Sema/LifetimeSafety/safety-c.c
M clang/test/Sema/LifetimeSafety/safety.cpp
Log Message:
-----------
[Lifetime Safety] Distinguish attributed/inferred lifetimebound diagnostics (#220248)
Commit: 89ebea3545acc3c30b4fb90c1f3ed7f0f6feeddb
https://github.com/llvm/llvm-project/commit/89ebea3545acc3c30b4fb90c1f3ed7f0f6feeddb
Author: Michael G. Kazakov <mike.kazakov at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/include/__algorithm/pstl.h
M libcxx/include/__pstl/backend_fwd.h
M libcxx/include/__pstl/backends/default.h
M libcxx/include/__pstl/backends/libdispatch.h
M libcxx/include/__pstl/backends/serial.h
M libcxx/include/__pstl/backends/std_thread.h
A libcxx/include/__pstl/cpu_algos/is_heap_until.h
M libcxx/include/module.modulemap.in
M libcxx/test/libcxx/algorithms/pstl.iterator-requirements.verify.cpp
M libcxx/test/libcxx/algorithms/pstl.nodiscard.verify.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/is.heap/pstl.is_heap_until.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/is.heap/pstl.is_heap_until_comp.pass.cpp
M libcxx/test/std/algorithms/pstl.exception_handling.pass.cpp
Log Message:
-----------
[libc++][pstl] Implementation of parallel std::is_heap_until() based on __parallel_find() (#218603)
This PR adds an implementation of a parallel `std::is_heap_until()`
based on `__parallel_find()`.
The implementation chops the input range `[first+1, last)` into
partitions and processes them in parallel.
For each partition, it derives the first and the last parents of these
children, and iterates over the parents checking their children for heap
violations.
Basically, it's very close to the implementation of the serial version,
but with a different prologue and epilogue.
Part of #99938.
---------
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Commit: 2da96030c4cf8888b7244973fabc31ad67999b98
https://github.com/llvm/llvm-project/commit/2da96030c4cf8888b7244973fabc31ad67999b98
Author: Frank <suwenw2 at outlook.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.md
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward-cxx20.cpp
Log Message:
-----------
[clang-tidy] Handle auto&& in missing-std-forward (#220164)
Fixes #142660.
`cppcoreguidelines-missing-std-forward` did not diagnose unforwarded
`auto&&` parameters in C++20 abbreviated function templates, even though
equivalent explicitly declared `T&&` parameters were diagnosed.
Abbreviated function templates represent `auto` parameters using an
implicit `TemplateTypeParmDecl`. The existing
`hasDeclaration(templateTypeParmDecl())` matcher does not match this
implicit declaration when traversal ignores implicit nodes.
Remove the redundant declaration matcher so that these parameters are
handled by the existing template type parameter checks.
Add C++20 regression tests covering:
- unforwarded `auto&&`
- correctly forwarded `auto&&`
- `const auto&&`
- mixed `T&&` and `auto&&` parameters
Commit: cfdd90d4e550b4f522c0cead86b655d05add71f9
https://github.com/llvm/llvm-project/commit/cfdd90d4e550b4f522c0cead86b655d05add71f9
Author: Mingming Liu <mingmingl at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M lld/ELF/LinkerScript.cpp
M lld/test/ELF/keep-data-section-prefix.s
Log Message:
-----------
[lld][ELF] Introduce an option to keep data section prefix. (#148985)
https://discourse.llvm.org/t/rfc-profile-guided-static-data-partitioning/83744
proposes to partition a static data section (like `.data.rel.ro`) into
two sections, one grouping the cold ones and the other grouping the
rest.
This change implements section grouping for {`.data.rel.ro`, `.data`,
`.rodata`, `.bss`} to group `.hot` input sections to `.<section>.hot` in
the output and to group `.unlikely` input sections to
`.<section>.unlikely`. The grouping functionality is gated under new lld
option `-z,keep-data-section-prefix`. The mapping for hot ones is
illustrated below.
[bar] is a placeholder to represent optional global variable name below
* `.data.rel.ro.hot.[bar]` => `.data.rel.ro.hot`
* `.data.hot.[bar]` => `.data.hot`
* {`.rodata.hot.[bar]`, `.rodata.str.*.hot.`, `.rodata.cst*.hot.`} =>
.rodata.hot
* .bss.rel.ro => .bss.rel.ro
* .bss.hot.[bar] => .bss.hot
https://github.com/llvm/llvm-project/pull/148920 is a related change
which also introduces lld option `-z,keep-data-section-prefix`. The
option will be introduced once and shared between the two patches.
---------
Co-authored-by: Aiden Grossman <aidengrossman at google.com>
Commit: bea0cf1245823ea6993fce88bb888b0e4612a5e3
https://github.com/llvm/llvm-project/commit/bea0cf1245823ea6993fce88bb888b0e4612a5e3
Author: Macro Terra <13541229370 at qq.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang-tools-extra/clangd/IncludeFixer.cpp
M clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
Log Message:
-----------
[clangd] Avoid invalid include-fixer fuzzy-find queries (#212134)
Fixes #200571.
`operator::align_val_t` is parsed as a conversion-function-id, whose
target type is `::align_val_t`. During typo recovery, Sema correctly
passes clangd a `DeclarationNameInfo` with kind
`CXXConversionFunctionName`; it is not a malformed ordinary identifier.
`UnresolvedNameRecorder` previously flattened every
`DeclarationNameInfo` through `getAsString()`. For a conversion-function
name, that presentation string contains the conversion target type and
can therefore contain a qualified type such as `std::align_val_t`. The
recorder then incorrectly stored that string as `UnresolvedName::Name`
and forwarded it as `FuzzyFindRequest::Query`.
Reject only `CXXConversionFunctionName` before this lossy conversion.
Such a name cannot be represented by IncludeFixer's `Name + Scopes`
model: its embedded type qualification is not the scope of an unresolved
symbol. Other special names, such as overloaded operators, retain their
existing behavior because they may be valid unqualified index names.
Add a regression test for the conversion-function recovery path.
Testing: not run after this source-only refinement.
Commit: 51c5de89d66b23828752df5fac68c602d7b9f331
https://github.com/llvm/llvm-project/commit/51c5de89d66b23828752df5fac68c602d7b9f331
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-03 (Thu, 03 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/FoldingSet.h
M llvm/lib/Support/FoldingSet.cpp
Log Message:
-----------
[ADT] Reorder classes in FoldingSet.h (NFC) (#221092)
This patch reorders classes in FoldingSet.h in bottom-up order:
- FoldingSetNode
- FoldingSetIterator
- FoldingSetBase
This setup brings two benefits:
- Eliminates the forward declaration of FoldingSetIterator.
- Enables consistent use of "FoldingSetNode *" instead of "Node *"
and "void *", eliminating several static_casts.
Assisted-by: Antigravity
Commit: 8c3bde8c34e086f8e75e21f0293f507798f868d4
https://github.com/llvm/llvm-project/commit/8c3bde8c34e086f8e75e21f0293f507798f868d4
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/src/__support/threads/CMakeLists.txt
M libc/src/__support/threads/linux/CMakeLists.txt
A libc/src/__support/threads/linux/aarch64/tcb.h
A libc/src/__support/threads/linux/riscv/tcb.h
A libc/src/__support/threads/linux/tcb.h
A libc/src/__support/threads/linux/x86_64/tcb.h
A libc/src/__support/threads/tcb.h
M libc/startup/linux/aarch64/CMakeLists.txt
M libc/startup/linux/aarch64/tls.cpp
M libc/startup/linux/riscv/CMakeLists.txt
M libc/startup/linux/riscv/tls.cpp
M libc/startup/linux/x86_64/CMakeLists.txt
M libc/startup/linux/x86_64/tls.cpp
Log Message:
-----------
[libc][threads] Add architecture-specific Thread Control Block definitions (#220607)
Add TCB structures and low-level thread-pointer accessor primitives for
Linux (x86_64, aarch64, riscv), and update init_tls code to use the
struct fields instead of manually computing raw pointer offsets.
I've set aside space for the ThreadAttributes pointer inside the
ABI-reserved slot for the thread library, but I'm not actually using
that value yet. I'll do that in the next patch, which will replace the
`thread_local self` object with this pointer.
Commit: ebc71c0ea11fdc72dadd1eb6813ec31c688def1e
https://github.com/llvm/llvm-project/commit/ebc71c0ea11fdc72dadd1eb6813ec31c688def1e
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M mlir/include/mlir/IR/PatternMatch.h
M mlir/unittests/IR/PatternMatchTest.cpp
Log Message:
-----------
[mlir] Avoid repeated moves in RewritePatternSet (#220871)
Multi-pattern add APIs forwarded the same constructor arguments once for
each pattern type. An rvalue was therefore moved from repeatedly, and
every pattern after the first could receive moved-from state.
Pass constructor arguments as lvalues when constructing multiple
patterns, while preserving perfect forwarding when constructing a single
pattern. Cover add, addWithLabel, and insert in the existing
PatternMatch unit test.
Found by Coverity.
Assisted-by: Codex
Commit: 7003bb94edef0b7ff86a556c0e3c3d6d869a4602
https://github.com/llvm/llvm-project/commit/7003bb94edef0b7ff86a556c0e3c3d6d869a4602
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/PowerPC/cost-partial-red.ll
Log Message:
-----------
Add 'REQUIRES: asserts' to Transforms/LoopVectorize/PowerPC/cost-partial-red.ll (#221154)
The test uses `-debug-only=` which is only available in asserts builds.
Follow-up to https://github.com/llvm/llvm-project/pull/214760
Commit: 4bf4bc65d198e54add11ce8e0bbae7ad51cbb0f8
https://github.com/llvm/llvm-project/commit/4bf4bc65d198e54add11ce8e0bbae7ad51cbb0f8
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics.ll
Log Message:
-----------
[LV] Regen RISC-V vp-intrinics test with UTC (NFC) (#221145)
Commit: fa65146842687ef1808fb6fcb1aae66f8bf49216
https://github.com/llvm/llvm-project/commit/fa65146842687ef1808fb6fcb1aae66f8bf49216
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
A llvm/test/Transforms/PGOProfile/icp_callee_unnamed_addr.ll
A llvm/test/Transforms/PGOProfile/icp_vtable_cmp_unnamed_addr.ll
Log Message:
-----------
[Transforms][Utils] Strip unnamed_addr on indirect call promotion (#221121)
This patch strips unnamed_addr from the target symbol and vtable when
call promotion introduces an equality comparison.
When promoting an indirect call site, ICP introduces an equality check
comparing the called value against the target:
if (fp == &callee)
callee();
else
fp();
This address comparison makes the callee's address significant. If the
callee symbol has unnamed_addr, AsmPrinter skips emitting it into the
.llvm_addrsig table. Consequently, the linker (under -icf=safe)
considers the symbol safe to merge with another identical function.
This can happen in practice with AutoFDO if an indirect call site is
profiled against an unrelated function whose machine code was folded by
ICF in the profiled binary. ICP then promotes the indirect call against
that wrong symbol. If the linker folds the symbols again, the equality
check evaluates to true at runtime, directing execution into the wrong
branch.
By stripping unnamed_addr from the callee and vtable address points
during promotion, the symbols are recorded in the .llvm_addrsig table
and
kept unique by the linker, preventing safe ICF from merging them.
Thanks to Arthur Eubanks for the idea of stripping unnamed_addr.
Assisted-by: Antigravity
Commit: 46dabd2f3a822a161b8b12191f8ba32b913a6de0
https://github.com/llvm/llvm-project/commit/46dabd2f3a822a161b8b12191f8ba32b913a6de0
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
Log Message:
-----------
[AArch64][GlobalISel] Fast-path simple common calls (NFC) (#217615)
Instrumentation of aarch64-O0-g CTMark shows the most common argument
and return types are pointer, i32, and i64, with Pointer the only common
flag.
Fast-path these values when they map directly to w0-w7/x0-x7 or w0/x0.
Fall back to the generic assignment machinery for all other cases.
Improves aarch64-O0-g CTMark geomean by -0.31%.
https://llvm-compile-time-tracker.com/compare.php?from=a49d90627bd44d2e76c20b9d4e0cafb339fb806f&to=10b3020aca621c4d21158180efe6d798b3edd22a&stat=instructions%3Au
Assisted-by: codex
Commit: 230ba1212a9b3383f2eefe7c8730a9eb69ee7f22
https://github.com/llvm/llvm-project/commit/230ba1212a9b3383f2eefe7c8730a9eb69ee7f22
Author: Peter Hawkins <phawkins at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
M mlir/test/Integration/Dialect/Complex/CPU/correctness.mlir
Log Message:
-----------
[mlir][complex] Avoid cancellation in tanh denominator (#221014)
In ComplexToStandard lowering of `complex.tanh`, the denominator
expansion includes an exponential term:
$\text{denom} = \text{expm1}(2a) + \text{expm1}(-2a) + 4\cos^2(b)$
When $a$ is small, $\text{expm1}(2a) \approx 2a + 2a^2$ and
$\text{expm1}(-2a) \approx -2a + 2a^2$ have opposite signs. Adding them
cancels the leading $\pm 2a$ terms, resulting in loss of precision.
Near poles ($b \approx \pi/2$), $4\cos^2(b)$ vanishes and this
cancellation
dominates the denominator, causing large relative errors in both real
and imaginary parts.
Since $-(e^{2a} - 1)(e^{-2a} - 1) = e^{2a} + e^{-2a} - 2 =
\text{expm1}(2a) + \text{expm1}(-2a)$,
this term can be evaluated via multiplication instead:
$\text{denom} = -\text{expm1}(2a) \cdot \text{expm1}(-2a) + 4\cos^2(b)$
This eliminates cancellation as $a \to 0$ while reusing the pre-existing
$\text{expm1}(2a)$ and $\text{expm1}(-2a)$ values from the numerator
without
requiring additional transcendental evaluations.
Assisted-by: Gemini Flash 3.8
Commit: 53d6bc623dc5d254dbfc3fa24177b4de54970797
https://github.com/llvm/llvm-project/commit/53d6bc623dc5d254dbfc3fa24177b4de54970797
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M lldb/test/API/functionalities/breakpoint/breakpoint_on_lambda_capture/TestBreakOnLambdaCapture.py
Log Message:
-----------
[lldb][test] Disable TestBreakOnLambdaCapture.py on Windows on Arm (#220944)
Something is wrong with the breakpoint handling which makes it flakey on
our bot.
https://github.com/llvm/llvm-project/issues/220942
Commit: 5cf7ac65133ec30e2a7333585961feae5b224983
https://github.com/llvm/llvm-project/commit/5cf7ac65133ec30e2a7333585961feae5b224983
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/lib/Semantics/compute-offsets.cpp
A flang/test/Semantics/common-block-size.f90
A flang/test/Semantics/oversized-storage-sequence.f90
Log Message:
-----------
[flang][Semantics] reject COMMON/EQUIVALENCE/derived types whose size does not fit in int64 (#219976)
Semantics was not enforcing the overall byte sizes when of
common block and equivalence storage when building the related symbols
and computing offsets for members. The size and offset silently
overflow, leading to computing inconsistent offsets in lowering and
aborting compilation with internal errors like "error: 'hlfir.declare'
op storage offset exceeds the storage size".
This patch limits the storage of such objects to what can fit a signed
64 bit integer (like gfortran/ifx/classic flang).
Assisted-by: AI
Commit: c879c054965d191b5d8df1f5da4c36f6ac6dd37b
https://github.com/llvm/llvm-project/commit/c879c054965d191b5d8df1f5da4c36f6ac6dd37b
Author: Andrew Lazarev <alazarev at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/docs/AddressSanitizer.md
M clang/docs/LeakSanitizer.md
M clang/docs/ThreadSanitizer.md
Log Message:
-----------
[clang][docs] Document compile-time sanitizer suppressions and options (#218793)
Document compile-time default suppressions
(`__<sanitizer>_default_suppressions`) and default options
(`__<sanitizer>_default_options`) across AddressSanitizer,
LeakSanitizer, and ThreadSanitizer. Document all supported suppression
types for ASan and TSan, programmatic leak checking interfaces for LSan,
and explain independent options evaluation when ASan runs with
integrated LSan/UBSan.
Fixes https://github.com/google/sanitizers/issues/1628
**AI tool usage:** An AI assistant was used to help research and draft
the documentation updates.
Commit: 258507f53326dcf04bfa8663e286fa8f503d4e88
https://github.com/llvm/llvm-project/commit/258507f53326dcf04bfa8663e286fa8f503d4e88
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
A llvm/test/Transforms/LowerTypeTests/cfi-jumptable-hotness-summary.ll
A llvm/test/Transforms/LowerTypeTests/cfi-jumptable-hotness.ll
Log Message:
-----------
[NFC][LowerTypeTests] Add tests for CFI jump table hotness ordering (#221045)
Add pre-commit test coverage establishing the baseline CFI jump table
layout before implementing hotness-based reordering in
https://github.com/llvm/llvm-project/pull/221046:
- cfi-jumptable-hotness.ll: checks jump table entry layout with IR
function attributes (hot/cold) and entry count profile metadata.
- cfi-jumptable-hotness-summary.ll: checks jump table entry layout
with ThinLTO module summary call edge hotness types (using text
summary IR and split-file).
These tests verify the baseline declaration-order layout where functions
within each strict type are placed without hotness consideration, making
the subsequent reordering diff explicit and easy to review.
PR Stack:
* https://github.com/llvm/llvm-project/pull/220776
* https://github.com/llvm/llvm-project/pull/221043
* https://github.com/llvm/llvm-project/pull/221044
* ➤ https://github.com/llvm/llvm-project/pull/221045
* https://github.com/llvm/llvm-project/pull/221046
Assisted-by: Gemini
Commit: 0a9c408adc3f4cb5dfa6fe90871c96ed87f97a0b
https://github.com/llvm/llvm-project/commit/0a9c408adc3f4cb5dfa6fe90871c96ed87f97a0b
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/i386/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/pwd.yaml
M libc/src/pwd/CMakeLists.txt
M libc/src/pwd/endpwent.cpp
M libc/src/pwd/flat_file_db.h
M libc/src/pwd/getpwent.cpp
A libc/src/pwd/getpwnam_r.cpp
A libc/src/pwd/getpwnam_r.h
A libc/src/pwd/getpwuid_r.cpp
A libc/src/pwd/getpwuid_r.h
M libc/src/pwd/pwd_utils.cpp
M libc/src/pwd/pwd_utils.h
M libc/src/pwd/setpwent.cpp
M libc/test/src/pwd/CMakeLists.txt
M libc/test/src/pwd/flat_file_db_test.cpp
M libc/test/src/pwd/getpwent_test.cpp
A libc/test/src/pwd/getpwnam_r_test.cpp
A libc/test/src/pwd/getpwuid_r_test.cpp
A libc/test/src/pwd/pwd_test_utils.h
Log Message:
-----------
[libc] Add getpwnam_r and getpwuid_r entrypoints (#220833)
Added reentrant getpwnam_r and getpwuid_r functions using the
FlatFileDatabase lookup engine.
* Implemented getpwnam_r and getpwuid_r entrypoints
* Added find_by_name and find_by_uid lookups under namespace passwd
* Added function specifications to include/pwd.yaml
* Registered entrypoints in config/linux/*/entrypoints.txt
* Added unit tests in libc/test/src/pwd/getpwnam_r_test.cpp and
libc/test/src/pwd/getpwuid_r_test.cpp
Assisted-by: Automated tooling, human reviewed.
Commit: dcdd1bc13db6af3d2fbed6ebe3d296d28107e77f
https://github.com/llvm/llvm-project/commit/dcdd1bc13db6af3d2fbed6ebe3d296d28107e77f
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaTemplate.cpp
A clang/test/Modules/pr96423.cppm
Log Message:
-----------
[C++20] [Modules] Identify the tag redecl through Using (#221147)
Close https://github.com/llvm/llvm-project/issues/96423
We've already have some logics to merge the redecls. But if the previous
decls are found through using decl, we can't merge them right now. As
the reproducer shows. The using decl is common in modules as a common
method to wrap headers into a module.
The fix is simple too. If the existing check fails, we'll check if the
found one is a using decl, if yes, we will reuse the existing check with
the target decl for using decl.
Commit: 6410f94750dd45d6047f99c05288d51a006857a9
https://github.com/llvm/llvm-project/commit/6410f94750dd45d6047f99c05288d51a006857a9
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/FoldingSet.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/unittests/ADT/FoldingSet.cpp
Log Message:
-----------
[ADT] Remove the TempID parameter from FoldingSetTrait::Equals. NFC (#221144)
Let the default implementation declare its own local, so an override
that compares against the node's fields need not accept an unused
FoldingSetNodeID.
Aided by Opus 5
Commit: fbdfb3319bd9ff01d55fd4e1a8c4cf5386082dbf
https://github.com/llvm/llvm-project/commit/fbdfb3319bd9ff01d55fd4e1a8c4cf5386082dbf
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product-costs.ll
M llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product.ll
Log Message:
-----------
[RISCV] Remove -tail-folding-policy=dont-fold-tail for partial reduction tests (#221159)
After #205741, partial reductions with EVL tail folding is now
supported.
Commit: 35b959ab1b7e8204467c4b7f63b2df1dce355db0
https://github.com/llvm/llvm-project/commit/35b959ab1b7e8204467c4b7f63b2df1dce355db0
Author: Mel Chen <mel.chen at sifive.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/VPlan/buildvector-first-lane-only.ll
M llvm/test/Transforms/LoopVectorize/iv_outside_user.ll
Log Message:
-----------
[LV] Enable the exit value optimization via SCEV for tail folding. (#210928)
Extend optimizeLatchExitIVUserViaSCEV to also match the tail-folding
live-out extraction pattern. This lets the SCEV-based final-value
computation apply under tail folding as well, avoiding unnecessary
vector widening of induction variables that are only used outside the
loop.
Based on #195059
Commit: 91865d65b834b6908c8cfd4e8772a612afec47a7
https://github.com/llvm/llvm-project/commit/91865d65b834b6908c8cfd4e8772a612afec47a7
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/Mips/MipsInstrInfo.cpp
Log Message:
-----------
[Mips] Fix instruction size for unfinalized bundles (#220953)
It looks like Mips uses unfinalized bundles (i.e. there is no leading
BUNDLE) for delay slots. While proper delay slots are covered by the
hasDelaySlot() case, things like forbidden slots and load delay slots
are not. Make sure we report the correct size for these.
Part of enabling instruction size verification by default.
Commit: 7976796b120ad03c50f532ba4e647518fa2d8c11
https://github.com/llvm/llvm-project/commit/7976796b120ad03c50f532ba4e647518fa2d8c11
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/shared/math/fmaximum_numf128.h
M libc/shared/math/fminimum_numf128.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/fmaximum_numf128.h
M libc/src/__support/math/fminimum_numf128.h
M libc/src/math/fmaximum_numf128.h
M libc/src/math/fminimum_numf128.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/fmaximum_numf128.cpp
M libc/src/math/generic/fminimum_numf128.cpp
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/FMaximumNumTest.h
M libc/test/src/math/smoke/FMinimumNumTest.h
M libc/test/src/math/smoke/fmaximum_numf128_test.cpp
M libc/test/src/math/smoke/fminimum_numf128_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
Log Message:
-----------
[libc] Make fmaximum_num/fminimum_num functions use the emulated float128 type (#217409)
Commit: 5428ad54f384186224053f39fa84ba5590172f02
https://github.com/llvm/llvm-project/commit/5428ad54f384186224053f39fa84ba5590172f02
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll
A llvm/test/Analysis/ScalarEvolution/exit-value-nowrap-flags.ll
M llvm/test/Analysis/ScalarEvolution/flags-from-poison-noautogen.ll
M llvm/test/Analysis/ScalarEvolution/flags-from-poison.ll
M llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
M llvm/test/Analysis/ScalarEvolution/infer-prestart-no-wrap.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-operand-order.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
M llvm/test/Analysis/ScalarEvolution/nsw-offset-assume.ll
M llvm/test/Analysis/ScalarEvolution/nsw-offset.ll
M llvm/test/Analysis/ScalarEvolution/nsw.ll
M llvm/test/Analysis/ScalarEvolution/ptrtoint-special-pointers.ll
M llvm/test/Analysis/ScalarEvolution/ptrtoint.ll
M llvm/test/Analysis/ScalarEvolution/ranges.ll
M llvm/test/Analysis/ScalarEvolution/sdiv.ll
M llvm/test/Analysis/ScalarEvolution/sext-add-inreg-loop.ll
M llvm/test/Analysis/ScalarEvolution/srem.ll
M llvm/test/Analysis/ScalarEvolution/trip-count-scalable-stride.ll
M llvm/test/Analysis/ScalarEvolution/trip-count15.ll
A llvm/test/Transforms/IndVarSimplify/exit-value-nowrap-flags.ll
Log Message:
-----------
[SCEV] Propagate a recurrence's nuw flag to its exit value. (#217378)
A recurrence's exit value is its closed form Start + BTC * Step. The sum
does not wrap, if the recurrence does not wrap: the recurrence reached
iteration BTC, so the value it computes there is the value the recurrence
had, and that did not wrap.
The flags are attached to the returned use, because they only apply to
this specific expression we evaluated for the exit value, no other,
equivalent SCEVs.
Alive2 Proof: https://alive2.llvm.org/ce/z/0vSRq-
This on its own has small impact on real world code (only retained some
additional flags in most cases):
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/962, but is
the first end-to-end use of SCEVUse.
Commit: 739a15aeb85be687403ea97760961d9cd484f561
https://github.com/llvm/llvm-project/commit/739a15aeb85be687403ea97760961d9cd484f561
Author: Joshua Rodriguez <josh.rodriguez at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
M llvm/test/CodeGen/AArch64/arm64-trn.ll
Log Message:
-----------
[AArch64][GlobalISel] Add support for shuffle(v, undef) -> trn(v, v) transformation (#220914)
Stacked PR: 3/3. Preceded by
https://github.com/llvm/llvm-project/pull/220535.
In SDAG, the aarch64-isel phase checks if vector shuffles can be
expressed as trns. To do this, it checks shuffles of type shuffle(v, v),
and shuffle(v, undefined).
GlobalISel previously only checked shuffles of type shuffle(v, v). Add a
check for the situation where one of the operands is undefined.
Notes:
A trn takes two vectors, places the even-indexed elements in the bottom
half, and the odd-indexed elements in the top half.
e.g: `trn <0, 1, 2, 3>, <4, 5, 6, 7> => <0, 4, 2, 6, 1, 5, 3, 7>`.
A trn1 takes the bottom half of the result (aka. the even-indexed
elements)
e.g: `trn1 <0, 1, 2, 3>, <4, 5, 6, 7> => <0, 4, 2, 6>`.
A shuffle is a generic MIR opcode that takes 2 vectors, and places
elements of each into a single vector. The elements are selected based
on a mask.
e.g: `G_SHUFFLE_VECTOR <A, B, C, D>, <E, F, G, H>, <0, 4, 6, 3> => <A,
E, G, D>`.
For certain masks, a shuffle can be represented as a trn.
e.g: ```G_SHUFFLE_VECTOR <A, B, C, D>, <A, B, C, D>, <0, 4, 2, 6>
=> trn1 <A, B, C, D>, <A, B, C, D>
=> <A, A, C, C>```.
Commit: c8df85607a4bd1ba1921843018d79d964c056a8a
https://github.com/llvm/llvm-project/commit/c8df85607a4bd1ba1921843018d79d964c056a8a
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
Log Message:
-----------
[ARM] Fix instruction sizes for PATCHABLE opcodes (#220949)
Report the size of the xray sled instead of zero.
Part of enabling instruction size verification by default.
Commit: 09e076eca3e12829950339b289c8de6ffd32175d
https://github.com/llvm/llvm-project/commit/09e076eca3e12829950339b289c8de6ffd32175d
Author: Luke Lau <luke at igalia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/multiple-result-intrinsics.ll
Log Message:
-----------
[VPlan] Don't widen extractvalue with single scalar operand (#221146)
If the struct to extract isn't widened, e.g. because it's fed into an
address computation for an interleave, don't widen the extractvalue. A
single scalar extractvalue can still be executed ok.
Fixes a crash reported in
https://github.com/llvm/llvm-project/pull/219941#issuecomment-5535484384
Commit: 4b9cfe08e53decbf4e49ad15fa9eca206a2864c6
https://github.com/llvm/llvm-project/commit/4b9cfe08e53decbf4e49ad15fa9eca206a2864c6
Author: Ömer Sinan Ağacan <omer at osa1.net>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M compiler-rt/test/rtsan/syscall.cpp
Log Message:
-----------
[test] Update temp file path used in rtsan/syscall to allow concurrent testing (#220978)
Commit: c3387469da6f7478df8bd36750698080271b53e7
https://github.com/llvm/llvm-project/commit/c3387469da6f7478df8bd36750698080271b53e7
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/shared/math/fmaximum_magf128.h
M libc/shared/math/fminimum_magf128.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/fmaximum_magf128.h
M libc/src/__support/math/fminimum_magf128.h
M libc/src/math/fmaximum_magf128.h
M libc/src/math/fminimum_magf128.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/fmaximum_magf128.cpp
M libc/src/math/generic/fminimum_magf128.cpp
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/FMaximumMagTest.h
M libc/test/src/math/smoke/FMinimumMagTest.h
M libc/test/src/math/smoke/fmaximum_magf128_test.cpp
M libc/test/src/math/smoke/fminimum_magf128_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
Log Message:
-----------
[libc] Make fmaximum_mag/fminimum_mag functions use the emulated float128 type (#217539)
Commit: d79050cca825cf70a6657e32f8b94a88767ccf30
https://github.com/llvm/llvm-project/commit/d79050cca825cf70a6657e32f8b94a88767ccf30
Author: ZERICO2005 <zerico2005 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/fp-const-fold.ll
M llvm/test/CodeGen/AArch64/isinf.ll
M llvm/test/CodeGen/AArch64/known-never-nan.ll
M llvm/test/CodeGen/AArch64/sve-vector-splat.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow.ll
M llvm/test/CodeGen/AMDGPU/debug-value2.ll
M llvm/test/CodeGen/AMDGPU/dpp64_combine.ll
M llvm/test/CodeGen/AMDGPU/fp-classify.ll
M llvm/test/CodeGen/AMDGPU/fract-match.ll
M llvm/test/CodeGen/AMDGPU/known-never-nan.ll
M llvm/test/CodeGen/AMDGPU/schedule-if-2.ll
M llvm/test/CodeGen/AMDGPU/select-cmp-shared-constant-fp.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/NVPTX/reg-copy.ll
M llvm/test/CodeGen/PowerPC/fp-classify.ll
M llvm/test/CodeGen/PowerPC/p10-splatImm.ll
M llvm/test/CodeGen/RISCV/double-zfa.ll
M llvm/test/CodeGen/SPIRV/literals.ll
M llvm/test/CodeGen/SystemZ/tdc-03.ll
M llvm/test/CodeGen/SystemZ/tdc-05.ll
M llvm/test/CodeGen/SystemZ/tdc-06.ll
M llvm/test/CodeGen/WebAssembly/immediates.ll
M llvm/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll
M llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
M llvm/test/CodeGen/X86/coff-fp-section-name.ll
M llvm/test/CodeGen/X86/compare-inf.ll
M llvm/test/CodeGen/X86/constpool.ll
M llvm/test/CodeGen/X86/fp-undef.ll
M llvm/test/CodeGen/X86/fp128-cast.ll
M llvm/test/Transforms/Attributor/nofpclass-fmul.ll
M llvm/test/Transforms/Attributor/nofpclass-implied-by-fcmp.ll
M llvm/test/Transforms/Attributor/nofpclass-nan-fmul.ll
M llvm/test/Transforms/Attributor/nofpclass-select.ll
M llvm/test/Transforms/CodeGenPrepare/AArch64/fpclass-test.ll
M llvm/test/Transforms/CodeGenPrepare/RISCV/fpclass-test.ll
M llvm/test/Transforms/CodeGenPrepare/X86/fpclass-test.ll
M llvm/test/Transforms/DCE/calls-errno.ll
M llvm/test/Transforms/ExpandIRInsts/AMDGPU/frem-inf.ll
M llvm/test/Transforms/GVNHoist/hoist-call.ll
M llvm/test/Transforms/Inline/simplify-instruction-computeKnownFPClass-context.ll
M llvm/test/Transforms/InstCombine/2007-03-25-BadShiftMask.ll
M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
M llvm/test/Transforms/InstCombine/AMDGPU/fma_legacy.ll
M llvm/test/Transforms/InstCombine/AMDGPU/fmul_legacy.ll
M llvm/test/Transforms/InstCombine/atomicrmw.ll
M llvm/test/Transforms/InstCombine/bitcast-select-const-vector.ll
M llvm/test/Transforms/InstCombine/cast-int-fcmp-eq-0.ll
M llvm/test/Transforms/InstCombine/constant-fold-nextafter.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-fp128.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-ppc-fp128.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-x86-fp80.ll
M llvm/test/Transforms/InstCombine/erf.ll
M llvm/test/Transforms/InstCombine/fcmp-range-check-idiom.ll
M llvm/test/Transforms/InstCombine/fcmp-select.ll
M llvm/test/Transforms/InstCombine/fdim.ll
M llvm/test/Transforms/InstCombine/fmod.ll
M llvm/test/Transforms/InstCombine/fneg.ll
M llvm/test/Transforms/InstCombine/fold-calls.ll
M llvm/test/Transforms/InstCombine/fold-fcmp-trunc.ll
M llvm/test/Transforms/InstCombine/fold-select-fmul-if-zero.ll
M llvm/test/Transforms/InstCombine/fpclass-from-dom-cond.ll
M llvm/test/Transforms/InstCombine/frem-inf.ll
M llvm/test/Transforms/InstCombine/ilogb.ll
M llvm/test/Transforms/InstCombine/intrinsic-select.ll
M llvm/test/Transforms/InstCombine/is_fpclass.ll
M llvm/test/Transforms/InstCombine/known-bits.ll
M llvm/test/Transforms/InstCombine/log1p.ll
M llvm/test/Transforms/InstCombine/logb.ll
M llvm/test/Transforms/InstCombine/phi.ll
M llvm/test/Transforms/InstCombine/pow-1.ll
M llvm/test/Transforms/InstCombine/pow-exp.ll
M llvm/test/Transforms/InstCombine/select-fcmp-fmul-zero-absorbing-value.ll
M llvm/test/Transforms/InstCombine/select.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fdiv.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/cos.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fract.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/sin.ll
M llvm/test/Transforms/InstSimplify/ConstProp/WebAssembly/trunc.ll
M llvm/test/Transforms/InstSimplify/ConstProp/atan-intrinsic.ll
M llvm/test/Transforms/InstSimplify/ConstProp/fma.ll
M llvm/test/Transforms/InstSimplify/ConstProp/fp-undef.ll
M llvm/test/Transforms/InstSimplify/ConstProp/sinh-cosh-intrinsics.ll
M llvm/test/Transforms/InstSimplify/assume-fcmp-constant-implies-class.ll
M llvm/test/Transforms/InstSimplify/call.ll
M llvm/test/Transforms/InstSimplify/canonicalize.ll
M llvm/test/Transforms/InstSimplify/constfold-constrained.ll
M llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll
M llvm/test/Transforms/InstSimplify/floating-point-compare.ll
M llvm/test/Transforms/InstSimplify/fminmax-folds.ll
M llvm/test/Transforms/InstSimplify/fp-undef-poison.ll
M llvm/test/Transforms/InstSimplify/fptoi-sat.ll
M llvm/test/Transforms/InstSimplify/known-never-infinity.ll
M llvm/test/Transforms/InstSimplify/known-never-nan.ll
M llvm/test/Transforms/InstSimplify/logic-of-fcmps.ll
M llvm/test/Transforms/InstSimplify/pr122582.ll
M llvm/test/Transforms/LoopUnroll/runtime-unroll-reductions-min-max.ll
M llvm/test/Transforms/LoopVectorize/select-cmp-multiuse.ll
M llvm/test/Transforms/Reassociate/pr42349.ll
M llvm/test/Transforms/SLPVectorizer/X86/copyable-addsub-reorder.ll
M llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll
M llvm/unittests/Analysis/ValueTrackingTest.cpp
Log Message:
-----------
[LLVM][NFC] Use +inf/-inf syntax for all floating point infinity literals (#221056)
Follow up to https://github.com/llvm/llvm-project/pull/221019
Replaces all remaining legacy `0x*` (double literal) encodings with the
canonical `+inf` and `-inf` syntax for positive/negative infinity
literals.
The following files and folders were ignored:
```
llvm/test/Assembler
llvm/test/MC/LoongArch/Macros/macros-li.s
llvm/test/CodeGen/X86/is_fpclass.ll
llvm/test/CodeGen/AMDGPU/branch-relaxation-debug-info.mir
llvm/test/CodeGen/ARM/misched-prevent-erase-history-of-subunits.mir
```
```sh
rg -l -0 ' 0x7FF0000000000000\b' llvm \
| xargs -0 perl -pi -e 's/ 0x7FF0000000000000\b/ +inf/g'
rg -l -0 ' 0x7ff0000000000000\b' llvm \
| xargs -0 perl -pi -e 's/ 0x7ff0000000000000\b/ +inf/g'
rg -l -0 ' 0xFFF0000000000000\b' llvm \
| xargs -0 perl -pi -e 's/ 0xFFF0000000000000\b/ -inf/g'
rg -l -0 ' 0xfff0000000000000\b' llvm \
| xargs -0 perl -pi -e 's/ 0xfff0000000000000\b/ -inf/g'
```
I believe this removes all relevant uses of the legacy infinity
hexadecimal double literal
```
zerico at DESKTOP-K3KRQL8:~/programming/llvm-project$ rg "0x[7fF][fF][fF]0000000000000" llvm
llvm/unittests/ADT/APFloatTest.cpp
5485: std::make_tuple(0x7ff8000000000000ull, 0, 0x7ff0000000000000ull, 0,
5491: std::make_tuple(0x7ff0000000000000ull, 0, 0x7ff0000000000000ull, 0,
5494: std::make_tuple(0x7ff0000000000000ull, 0, 0, 0, APFloat::fcNaN,
5497: std::make_tuple(0x7ff0000000000000ull, 0, 0x3ff0000000000000ull, 0,
5568: 0x7ff0000000000000ull, 0, APFloat::rmNearestTiesToEven),
6557: std::make_tuple(0x7ff0000000000000ull, 0, 0x7ff0000000000000ull, 0,
6686: std::make_tuple(0x7ff0000000000000ull, 0, 0x7ff0000000000000ull, 0, true),
llvm/test/Assembler/2002-04-07-InfConstant.ll
8: %tmp = fmul float 0x7FF0000000000000, 1.000000e+01 ; <float> [#uses=1]
llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
496: if (static_cast<uint64_t>(OldOpnd->getImm()) == /*+inf=*/0x7FF0000000000000)
501: if (static_cast<uint64_t>(OldOpnd->getImm()) == /*-inf=*/0xFFF0000000000000)
llvm/test/MC/LoongArch/Macros/macros-li.s
69:li.d $a0, 0x7ff0000000000000
llvm/lib/Target/LoongArch/LoongArchMergeBaseOffset.cpp
416: Mask ^= 0xFFF0000000000000ULL;
llvm/test/CodeGen/X86/is_fpclass.ll
1131:; X64-GENERIC-NEXT: movabsq $9218868437227405312, %rax # imm = 0x7FF0000000000000
1141:; X64-NDD-NEXT: movabsq $9218868437227405312, %rcx # imm = 0x7FF0000000000000
1189:; X64-GENERIC-NEXT: movabsq $-4503599627370496, %rax # imm = 0xFFF0000000000000
1201:; X64-NDD-NEXT: movabsq $-4503599627370496, %rcx # imm = 0xFFF0000000000000
1294:; X64-GENERIC-NEXT: movabsq $9218868437227405312, %rax # imm = 0x7FF0000000000000
1308:; X64-NDD-NEXT: movabsq $9218868437227405312, %rdx # imm = 0x7FF0000000000000
1368:; X64-GENERIC-NEXT: movabsq $9218868437227405312, %rax # imm = 0x7FF0000000000000
1378:; X64-NDD-NEXT: movabsq $9218868437227405312, %rcx # imm = 0x7FF0000000000000
llvm/test/CodeGen/AMDGPU/branch-relaxation-debug-info.mir
37: %tmp6 = fcmp oeq float %tmp5, 0x7FF0000000000000
llvm/test/CodeGen/AArch64/masked-integer-compare.ll
28: %sub = sub i64 %and, u0x7ff0000000000000
llvm/test/CodeGen/AArch64/is_fpclass.ll
204:; CHECK-GI-NEXT: mov x8, #9218868437227405312 // =0x7ff0000000000000
233:; CHECK-GI-NEXT: mov x8, #9218868437227405312 // =0x7ff0000000000000
264:; CHECK-GI-NEXT: mov x8, #9218868437227405312 // =0x7ff0000000000000
293:; CHECK-GI-NEXT: mov x8, #9218868437227405312 // =0x7ff0000000000000
546:; CHECK-SD-NEXT: mov x8, #9218868437227405312 // =0x7ff0000000000000
llvm/test/CodeGen/AArch64/sve-vector-splat.ll
627:; CHECK-NEXT: mov z0.d, #0x7ff0000000000000
699:; CHECK-NEXT: mov z0.d, #0xfff0000000000000
llvm/test/CodeGen/AArch64/isinf.ll
68:; CHECK-GI-NEXT: mov x8, #9218868437227405312 // =0x7ff0000000000000
llvm/test/CodeGen/ARM/misched-prevent-erase-history-of-subunits.mir
24: value: double 0x7FF0000000000000
zerico at DESKTOP-K3KRQL8:~/programming/llvm-project$
```
Commit: 4cd5bc471aab3dbec38e6df4f9160ba860825a61
https://github.com/llvm/llvm-project/commit/4cd5bc471aab3dbec38e6df4f9160ba860825a61
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
A llvm/test/Transforms/ConstraintElimination/or-disjoint.ll
Log Message:
-----------
[ConstraintElim] Decompose 'or disjoint' like 'add nsw'. (#220990)
Use m_NSWAddLike instead of m_NSWAdd to also handle 'or disjoint' in
signed decomposition.
Leads to a number of additional folds end-to-end:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1188
Compile-time impact is in the noise in almost all cases except lencod
with ThinLTO. On current main, compile-time for the workload regresses
by ~3%, but almost all additional time is spent in SLP: after some
branches got removed and BBs got merged got bigger, and SLP compile-time
scales super-linearly in block size in some cases.
Together with https://github.com/llvm/llvm-project/pull/220968 the
regression goes down to ~+1.18% on the workload. I have 2 more prototype
patches that reduce the overhead by another ~0.30%. I am not sure if the
compile-time issue should block the patch.
https://llvm-compile-time-tracker.com/compare.php?from=ffe87191eb7090340f12056455104145670ed7e8&to=c073db66b714d3dd26c573ad8371ab8b117890a9&stat=instructions:u
Alive2 Proof: https://alive2.llvm.org/ce/z/ZVFEox
PR: https://github.com/llvm/llvm-project/pull/220990
Commit: d1a54f70d32121b00a572c9b9e2b52ed5d692fd1
https://github.com/llvm/llvm-project/commit/d1a54f70d32121b00a572c9b9e2b52ed5d692fd1
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/intrinsic-vector-match-sve2.ll
Log Message:
-----------
[AArch64] Fix vector.match lowering with VLS SVE (#220647)
With `vscale_range()` fixed-vector types > 128-bit can be legal. If
these are used as a `vector.match` needle we still need to split them as
match works per 128-bit segment.
Also, masks such as `v8i1` become legal for types other than i8 and i16,
so we can't assert the source operands are `i8` or `i16`.
Commit: 8ad22e3d2cd4b9a3881d5354c8510a9cb83024b2
https://github.com/llvm/llvm-project/commit/8ad22e3d2cd4b9a3881d5354c8510a9cb83024b2
Author: Jim Lin <jim at andestech.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVProcessors.td
R llvm/test/CodeGen/RISCV/andes-45-unaligned-scalar-mem.ll
Log Message:
-----------
Revert "[RISCV] Andes: model fast unaligned accesses (#220756)" (#221178)
This reverts commit 358cafe41326e1e543b04048d5a200cf6f16ac8a.
Commit: eac210e8d174f97c305d234ed0260348619d0e4a
https://github.com/llvm/llvm-project/commit/eac210e8d174f97c305d234ed0260348619d0e4a
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlanHelpers.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/cmp_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/epilogue-vectorization-fix-scalar-resume-values.ll
M llvm/test/Transforms/LoopVectorize/AArch64/fully-unrolled-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-with-invariant-stores.ll
M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/replicating-load-store-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-icmpcost.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/reg-usage.ll
M llvm/test/Transforms/LoopVectorize/RISCV/early-exit-live-out.ll
M llvm/test/Transforms/LoopVectorize/RISCV/pr88802.ll
M llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll
M llvm/test/Transforms/LoopVectorize/WebAssembly/memory-interleave.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/vpinstruction-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/conversion-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/pr131359-dead-for-splice.ll
M llvm/test/Transforms/LoopVectorize/X86/pr81872.ll
M llvm/test/Transforms/LoopVectorize/X86/reduction-small-size.ll
M llvm/test/Transforms/LoopVectorize/induction-cost.ll
Log Message:
-----------
[VPlan] Use VPlan-based costs for all integer IVs. (#217766)
Continue the migration of induction costs to be completely VPlan-based.
VPScalarIVStepsRecipe now supports compute its cost for integer
inductions. Skip the legacy precomputeCost code for them.
The main change is that previously we never explicitly accounted for the
canonical IV, which we always generate. It was instead folded into
computing cost of the existing integer IVs with only scalar uses, which
in
most cases are actually served by the canonical IV.
The new code accounts for the cost explicitly, as
VPInstruction::computeCost returns 0 for all recipes w/o underlying
instruction.
Floating point and pointer induction will be handled as follow-ups to
keep the diffs managable and make it easier to track down regressions.
There are a few tests where cost decisions change, but overall they
should be more accurate:
-
llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll:
- partial-reduce-with-invariant-stores.ll
via the legacy cost model, we computed the cost of i64 vector
induction (which has cost of 2/4 for VF 4 and 8), while now we compute
the cost of the generated narrower wide IV and the canonical IV
increment.
- epilogue-vectorization-fix-scalar-resume-values.ll
- predicated-costs.ll
- pr81872.ll
- ARM/optsize_minsize.ll
- X86/conversion-cost.ll
Now also account for the cost of the canonical IV increment
- induction-costs-sve.ll
legacy accounted for scalar increment and extend, now we only account
for the actual canonical IV increment (w/o extend)
Depends on https://github.com/llvm/llvm-project/pull/217765.
PR: https://github.com/llvm/llvm-project/pull/217766
Commit: 4763eb1118682fc5542a3d87b31e5ed738ef3ab8
https://github.com/llvm/llvm-project/commit/4763eb1118682fc5542a3d87b31e5ed738ef3ab8
Author: Adam Siemieniuk <adam.siemieniuk at intel.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/test/Dialect/Linalg/generalize-named-ops.mlir
M mlir/test/Dialect/Linalg/invalid.mlir
M mlir/test/Dialect/Linalg/loops.mlir
M mlir/test/Dialect/Linalg/named-ops.mlir
M mlir/test/Dialect/Linalg/roundtrip.mlir
M mlir/test/Dialect/Linalg/transform-op-fuse.mlir
M mlir/test/Dialect/Linalg/transform-op-tile.mlir
Log Message:
-----------
[mlir][linalg] Scaled contraction op (#203958)
A new contraction op with extended semantics to represent input scaling
using additional scale values as described by their corresponding
indexing maps.
RFC: https://discourse.llvm.org/t/rfc-linalg-scaled-contraction/91075
Assisted-by: Claude
Co-authored-by: Md Asghar Ahmad Shahid <md.asghar.ahmad.shahid at intel.com>
Commit: 9be5dd730e28b21ee1c4d8e27cfb7ea7f92801d8
https://github.com/llvm/llvm-project/commit/9be5dd730e28b21ee1c4d8e27cfb7ea7f92801d8
Author: Kamlesh Kumar <kamlesh.kumar at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[CodeGen] Add Action types for vector_(de)interleave ops (#220859)
Targets could not set lowering actions with setOperationAction for
Interleave operations due to dependence on type and factor. Instead of
requiring two API to find legality of operation one for type and one for
factor. It is cleaner to add a separate action type for these operation.
Commit: 97cbc1e404b980edc58bfbcabb6f1c61793b624b
https://github.com/llvm/llvm-project/commit/97cbc1e404b980edc58bfbcabb6f1c61793b624b
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/test/CIR/IR/cleanup-scope.cir
M clang/test/CIR/IR/invalid-loop-cleanup.cir
Log Message:
-----------
[CIR] Give the cleanup kind a proper standalone attribute spelling (#220878)
CleanupKindAttr overrode its assembly format to a bare `$value` so
`cir.cleanup.scope` would print `cleanup all`. The cost was that the
attribute had no readable standalone form, falling back to
`#cir<cleanup_kind all>`.
The `enum($attr)` operation directive removes the tradeoff. The
attribute
keeps CIR_EnumAttr's bracketed default and now spells
`#cir.cleanup<all>`,
while the operations ask for the bare keyword. The mnemonic drops the
`_kind`
suffix the C++ class name carries.
Commit: db1986ea6115089e64903e8538a73a15ff573644
https://github.com/llvm/llvm-project/commit/db1986ea6115089e64903e8538a73a15ff573644
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
A llvm/test/CodeGen/AArch64/sve-vector-unroll.ll
Log Message:
-----------
[LLVM][SelectionDAG] Implement unrolling of scalable vectors. (#216985)
We cannot typically unroll scalable vectors because they have an
unknown-at-compile-time vector length. However, when a function has the
vscale_range attribute, we can unroll based on their maximum possible
length.
Commit: b8847b2b69b70399f8f4e504dbef35451e594624
https://github.com/llvm/llvm-project/commit/b8847b2b69b70399f8f4e504dbef35451e594624
Author: Graham Hunter <graham.hunter at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/test/Transforms/LoopVectorize/AArch64/aarch64-predication.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-costs.ll
Log Message:
-----------
[LV][AArch64] Provide option to use partial reductions by default (#216001)
Partial reduction intrinsics are explicitly unordered, which may allow
us to perform extra optimizations that may result in a different
ordering of lanes within a vector. This would only be done if the target
indicated the intrinsic was at least as cheap as the normal accumulation
operation.
Off by default to start with.
As an example of an optimization which would be easier/less fragile with
this change, see #206047 which currently tries to match the entire
reduction. If the in-loop update was a partial reduction intrinsic (even
at the same VF), then we could just implement the whole thing as a
DAGCombine.
Some follow-up work will be needed before turning on by default; there's
25 AArch64 check-all failures (just need to update test checks) and some
build failures + regressions in some spec benchmarks to look at.
Commit: eb571d672a60e3d5ad0ba35091e4ff1ceb098d01
https://github.com/llvm/llvm-project/commit/eb571d672a60e3d5ad0ba35091e4ff1ceb098d01
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/test/CIR/CodeGenHIP/builtins-amdgcn-gfx10.hip
M clang/test/CIR/CodeGenHIP/builtins-amdgcn-gfx11.hip
M clang/test/CIR/CodeGenHIP/builtins-amdgcn-s-prefetch-inst-nyi.hip
M clang/test/CIR/CodeGenOpenMP/target-host-op-filtering.c
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-async-load-lds.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-s-buffer-load.cl
M clang/test/OpenMP/openmp_offload_weak_vtables.cpp
M clang/test/OpenMP/target_device_float128_mode_attr.c
M clang/test/OpenMP/target_teams_atomic_reduction_codegen.cpp
M clang/test/SemaHIP/hip-incremental-toplevel-launch.hip
M clang/test/SemaOpenCL/builtins-amdgcn-cvt-sr-pk-bf16-f32-err.cl
M clang/test/SemaOpenCL/builtins-amdgcn-s-wait-event.cl
Log Message:
-----------
clang: Convert some amdgpu tests to subarch triples (#221172)
Commit: 543ac0371f32ecb865d4c05e9a5dc2267bad42c1
https://github.com/llvm/llvm-project/commit/543ac0371f32ecb865d4c05e9a5dc2267bad42c1
Author: Romanov Vlad <Vladislav.Romanov at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecInfo.h
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
A llvm/test/CodeGen/AMDGPU/coexec-mfma-interleave-gfx950.ll
A llvm/test/CodeGen/AMDGPU/coexec-mfma-interleave-gfx950.mir
M llvm/test/CodeGen/AMDGPU/coexec-rewrite-mfma.ll
M llvm/unittests/Target/AMDGPU/CMakeLists.txt
A llvm/unittests/Target/AMDGPU/MFMACoExecRules.cpp
Log Message:
-----------
[AMDGPU] Add initial version of gfx950 MFMA co-exec rules (#214682)
Added co-exec rules for all MFMA instructions which were added in
`gfx950`. Legacy instructions which were inherited from older Instinct
GPUs generations use fallback for now.
Added rules aren't exactly precise and serve merely as a baseline for
now.
Also remove the warning when running coexec sched on gfx950.
Co-authored-by: Alexey Sachkov <alexey.sachkov at amd.com>
Commit: 278d9f76594de1ad0fac669468bf083ad6616a0f
https://github.com/llvm/llvm-project/commit/278d9f76594de1ad0fac669468bf083ad6616a0f
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Remove unused getReductionPatternCost (NFC) (#221183)
In-loop reduction handling + costing has been completely migrated to
VPlan. Remove unused legacy getReductionPatternCost.
Commit: 092263a0e438400f0e5af39664e8d5a5f1c05927
https://github.com/llvm/llvm-project/commit/092263a0e438400f0e5af39664e8d5a5f1c05927
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Add getMaxRuntimeElementCount helper (NFC). (#220397)
Add a getMaxRuntimeElementCount to compute ElementCount * max vscale. It computes
the value in uint64_t, to avoid overflow for very large vscale values.
Returns std::nullopt, if there's no max vscale value. Migrate 3 existing
users to use the shared helper.
PR: https://github.com/llvm/llvm-project/pull/220397
Commit: e377dafa0a6a58a5fe9d1bc85d4a1e4c6b0956fd
https://github.com/llvm/llvm-project/commit/e377dafa0a6a58a5fe9d1bc85d4a1e4c6b0956fd
Author: Kamlesh Kumar <kamlesh.kumar at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/interleaved-accesses.ll
M llvm/test/CodeGen/AArch64/vector-interleave-store.ll
Log Message:
-----------
[AArch64] Support wide interleaved store combine (#217856)
After type legalization wider interleaved store gets spllitted into
legal chunk store, perform a dag combine to turn it into interleaved
store if chunked store is contiguous and result of vector_interleave.
Commit: f0d631b26bd8f63f5d371d790befcc87d4519ba5
https://github.com/llvm/llvm-project/commit/f0d631b26bd8f63f5d371d790befcc87d4519ba5
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/gfni-rotates.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-128.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
Log Message:
-----------
[X86] combineConcatVectorOps - add generic shift handling (#221055)
Limit this to cases where the shift value concatenates for free - the shift amount is often cheap, but the shift value isn't.
Commit: 5b365c072d2bb35990f4bfed9e1b47557122e7b4
https://github.com/llvm/llvm-project/commit/5b365c072d2bb35990f4bfed9e1b47557122e7b4
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/test/Transforms/ConstraintElimination/or-disjoint.ll
M llvm/test/Transforms/ConstraintElimination/or.ll
Log Message:
-----------
[ConstraintElim] Use m_NUWAddLike for unsigned decomposition. (#221175)
Use m_NUWAddLike in unsigned decomposition, remove hand-rolled disjoint
or matching with constant.
Additional flags added in 2 cases end-to-end:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1192
PR: https://github.com/llvm/llvm-project/pull/221175
Commit: 4a43f5658b50b82b2557221ce4e84d221d4375cb
https://github.com/llvm/llvm-project/commit/4a43f5658b50b82b2557221ce4e84d221d4375cb
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/unittests/ExecutionEngine/Orc/IndirectionUtilsTest.cpp
Log Message:
-----------
[LLVM] Use isByValArgument() (NFC) (#221192)
Use the isByValArgument() helper instead of paramHasAttr().
Split off from https://github.com/llvm/llvm-project/pull/207173.
Commit: 8f7d3ba08f14c3d54b8b407d1758dbd1da01bb38
https://github.com/llvm/llvm-project/commit/8f7d3ba08f14c3d54b8b407d1758dbd1da01bb38
Author: Anthony Latsis <alatsis at apple.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/IR/RuntimeLibcalls.td
A llvm/test/CodeGen/AVR/stack-protector.ll
Log Message:
-----------
[RuntimeLibcalls] Add stack protector entries for AVR (#220597)
`__stack_chk_fail` used to be part of the default set of runtime libcall
impls. #148789 moved it out of that set and re-added it explicitly to
each target's `SystemRuntimeLibrary`, and #154930 did the same for the
`__stack_chk_guard` global. `AVRSystemLibrary` was not updated by
either, so both `RTLIB::STACKPROTECTOR_CHECK_FAIL` and
`RTLIB::STACK_CHECK_GUARD` are `RTLIB::Unsupported` on AVR.
Lowering a function with `sspreq` therefore fails twice: loading the
canary reports "unable to lower stackguard", and the failure path dies
in `TargetLowering::makeLibCall` with a `reportFatalInternalError`:
```
$ llc -mtriple=avr ssp.ll
error: unable to lower stackguard
LLVM ERROR: unsupported library call operation
```
Add the two impls directly, as Lanai, MSP430 and Hexagon do. This
restores the pre-#148789 codegen, which referenced `__stack_chk_guard`
and `__stack_chk_fail`.
Assisted-by: Claude Code
Commit: 792023c3e4978667a1920f12614ac84b0b78f780
https://github.com/llvm/llvm-project/commit/792023c3e4978667a1920f12614ac84b0b78f780
Author: 黃國庭 <we3223 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/CodeGenPrepare.cpp
A llvm/test/Transforms/CodeGenPrepare/AArch64/hoist-bitcast-aggregate.ll
A llvm/test/Transforms/CodeGenPrepare/RISCV/hoist-bitcast-scalable.ll
A llvm/test/Transforms/CodeGenPrepare/X86/hoist-bitcast-i686.ll
A llvm/test/Transforms/CodeGenPrepare/X86/hoist-bitcast-integer-to-vector.ll
Log Message:
-----------
[CodeGenPrepare] Failure to hoist bitcast to legal type causes register splitting (#207568)
FIX #179950
Extracted the core logic from CodeGenPrepare.cpp into a new optimizeBitCast function.
I have also included tests covering both legal and illegal types.
Commit: 247d429a5e772f337bf1f966db5d423617e2fcc7
https://github.com/llvm/llvm-project/commit/247d429a5e772f337bf1f966db5d423617e2fcc7
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
A llvm/test/CodeGen/RISCV/interrupt-shrink-wrap.ll
Log Message:
-----------
[RISCV] Disable shrink wrapping for SiFive CLIC and QCI handlers (#218347)
This commit disables shrink wrapping for SiFive CLIC and QCI handlers.
Closes #218344
Commit: 1886f7240ecb91bdd13d00969eac20537c0314c8
https://github.com/llvm/llvm-project/commit/1886f7240ecb91bdd13d00969eac20537c0314c8
Author: Mahmoud Ahmed <anondeveg at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Parse/ParseTemplate.cpp
A clang/test/Interpreter/delayed-template-parsing-incremental.cpp
Log Message:
-----------
[clang][Parse] Fix DeclContext reentry to use the template's lexical TU, not the current fragment's TU (#218571)
Problem:
when `-fdelayed-template-parsing` is enabled Instantiating a late-parsed
function template defined in an earlier TU caused an assertion failure
in `clang::Sema::PushDeclContext`:
``DC->getLexicalParent() == CurContext && "The next DeclContext should
be lexically contained in the current one."'`
Fix:
- 1 in `Parser::ParseLateTemplatedFuncDef` obtained the enclosing
`TranslationUnitDecl` called it `LexicalTU`
- 2 changed `GlobalSavedContext` with the `LexicalTU` instead of using
`Actions.Context.getTranslationUnitDecl()`
- in the case that no `LexicalTU` was found fellback to
`Actions.Context.getTranslationUnitDecl()`
Fixes #217073
Commit: 4746e698304bf95b7e4c55d6e798e422732ae514
https://github.com/llvm/llvm-project/commit/4746e698304bf95b7e4c55d6e798e422732ae514
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/include/__chrono/formatter.h
M libcxx/include/__chrono/parser_std_format_spec.h
M libcxx/include/__chrono/statically_widen.h
M libcxx/include/__format/buffer.h
R libcxx/include/__format/concepts.h
M libcxx/include/__format/container_adaptor.h
A libcxx/include/__format/fmt_char_type.h
M libcxx/include/__format/format_arg.h
M libcxx/include/__format/format_arg_store.h
A libcxx/include/__format/formattable.h
M libcxx/include/__format/formatter_bool.h
M libcxx/include/__format/formatter_bool_impl.h
M libcxx/include/__format/formatter_char.h
M libcxx/include/__format/formatter_floating_point.h
M libcxx/include/__format/formatter_integer.h
M libcxx/include/__format/formatter_integral.h
M libcxx/include/__format/formatter_output.h
M libcxx/include/__format/formatter_pointer.h
M libcxx/include/__format/formatter_string.h
M libcxx/include/__format/formatter_tuple.h
M libcxx/include/__format/range_default_formatter.h
M libcxx/include/__format/range_formatter.h
M libcxx/include/__thread/formatter.h
M libcxx/include/format
M libcxx/include/module.modulemap.in
M libcxx/test/libcxx/transitive_includes/cxx26.csv
M libcxx/test/libcxx/transitive_includes/cxx29.csv
Log Message:
-----------
[libc++] Avoid including <string_view> in <vector> (#220862)
By splitting up `<__format/concepts.h>` we can avoid including
`<string_view>` in `<vector>`, making it ~20% faster to parse.
Commit: 0abb55638843428fccd7a923e6126fcb74a69a51
https://github.com/llvm/llvm-project/commit/0abb55638843428fccd7a923e6126fcb74a69a51
Author: Peiqi Li <voyager.lpq at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/TrailingCommaCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.md
M clang-tools-extra/test/clang-tidy/checkers/readability/trailing-comma-cxx11.cpp
Log Message:
-----------
[clang-tidy] Fix false positive in readability-trailing-comma (#220548)
Use the syntactic form of an empty InitListExpr instead of falling back
to the semantic form.
Fixes #220222
Commit: e65fd7755ae3d60168b603c405d08381a2637d2f
https://github.com/llvm/llvm-project/commit/e65fd7755ae3d60168b603c405d08381a2637d2f
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libcxx/include/__memory_resource/memory_resource.h
A libcxx/test/libcxx/mem/mem.res/assert.pass.cpp
R libcxx/test/libcxx/mem/mem.res/ctor.nullptr.assert.pass.cpp
Log Message:
-----------
[libc++] Assert that the alignment for memory_resource::allocate is a power of two (#219174)
`do_allocate` has a precondition that the argument is a power of two. We
can't assert that in general, since users can provide their own
`do_allocate`s. However, we can assert in `allocate` instead, which has
the added bonus that it's going to be inlined and the check can then
most likely be folded away by the compiler.
Commit: 03a783114c8be1eeaf46344027559d850e21342c
https://github.com/llvm/llvm-project/commit/03a783114c8be1eeaf46344027559d850e21342c
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/test/CIR/CodeGen/global-temp-dtor.cpp
M clang/test/CIR/CodeGen/global-tls-dyn-init.cpp
M clang/test/CIR/CodeGen/global-tls-dynamic-vs-static.cpp
M clang/test/CIR/CodeGen/global-tls-simple-init.cpp
M clang/test/CIR/CodeGen/global-tls-templates.cpp
M clang/test/CIR/CodeGen/thread-local-in-func.cpp
M clang/test/CIR/CodeGen/tls-model-func-scope.cpp
M clang/test/CIR/CodeGen/tls-model.cpp
M clang/test/CIR/CodeGen/tls.c
M clang/test/CIR/IR/global.cir
M clang/test/CIR/IR/invalid-tls.cir
Log Message:
-----------
[CIR] Print cir.global's TLS model without naked angle brackets (#220879)
`cir.global` printed `tls_model = <tls_dyn>`. Those brackets were the
leftover delimiters of `#cir.tls_model<tls_dyn>` after the printer
stripped
the dialect prefix and mnemonic, so one enum had two spellings and the
per-global one was not something anyone would write by hand.
Wrapping the argument in the `enum` directive prints the symbolic value
on
its own:
cir.global external tls_model = tls_dyn @a = #cir.int<5> : !s32i
The standalone attribute is unchanged.
Commit: f02d128c60a938fe85690430f3a9ce009669b662
https://github.com/llvm/llvm-project/commit/f02d128c60a938fe85690430f3a9ce009669b662
Author: Ayokunle Amodu <ayokunle321 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
A clang/test/CIR/CodeGenHIP/builtins-amdgcn-wave32.hip
A clang/test/CIR/CodeGenHIP/builtins-amdgcn-wave64.hip
M clang/test/CIR/CodeGenHIP/builtins-amdgcn.hip
Log Message:
-----------
[CIR][AMDGPU] Add support for AMDGCN cmp and ballot builtins (#198135)
Adds CIRGen for the AMDGCN comparison and ballot builtins:
- __builtin_amdgcn_fcmp
- __builtin_amdgcn_fcmpf
- __builtin_amdgcn_sicmp
- __builtin_amdgcn_sicmpl
- __builtin_amdgcn_uicmp
- __builtin_amdgcn_uicmpl
- __builtin_amdgcn_ballot_w32
- __builtin_amdgcn_ballot_w64
The cmp builtins are deprecated in favor of ballot_w32 and ballot_w64,
but classic CodeGen still supports them, so CIRGen matches it for
parity. The deprecation is a Sema-level warning and does not affect the
emitted IR.
@ranapratap55 Let me know if you would like a comment noting the
deprecation, either in the implementation or the tests.
Commit: f26bfb40c9dad93578167859c6722305bef4cc52
https://github.com/llvm/llvm-project/commit/f26bfb40c9dad93578167859c6722305bef4cc52
Author: Ayokunle Amodu <ayokunle321 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
A clang/test/CIR/CodeGenCUDA/builtins-nvvm-ldu-ldg.cu
R clang/test/CIR/CodeGenCUDA/builtins-nvvm-ldu.cu
Log Message:
-----------
[CIR][CUDA] Add support for __nvvm_ldg builtins (#213178)
Adds CIRGen for the NVVM ldg builtins, which perform loads through the
read-only data cache.
These lower to the corresponding `llvm.nvvm.ldg.global.*` intrinsic.
Commit: 2a54cfd527a5180ea67dde893459b1730a9512c6
https://github.com/llvm/llvm-project/commit/2a54cfd527a5180ea67dde893459b1730a9512c6
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/shared/math/fmaximum_mag_numf128.h
M libc/shared/math/fminimum_mag_numf128.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/fmaximum_mag_numf128.h
M libc/src/__support/math/fminimum_mag_numf128.h
M libc/src/math/fmaximum_mag_numf128.h
M libc/src/math/fminimum_mag_numf128.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/fmaximum_mag_numf128.cpp
M libc/src/math/generic/fminimum_mag_numf128.cpp
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/FMaximumMagNumTest.h
M libc/test/src/math/smoke/FMinimumMagNumTest.h
M libc/test/src/math/smoke/fmaximum_mag_numf128_test.cpp
M libc/test/src/math/smoke/fminimum_mag_numf128_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
Log Message:
-----------
[libc] Make fmaximum_mag_num/fminimum_mag_num functions use the emulated float128 type (#217549)
Commit: cea4f92cd287011732298f91bb8c7c5f67a47aab
https://github.com/llvm/llvm-project/commit/cea4f92cd287011732298f91bb8c7c5f67a47aab
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/shared/math/fdimf128.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/fdimf128.h
M libc/src/math/fdimf128.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/fdimf128.cpp
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/fdimf128_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
Log Message:
-----------
[libc] Make `fdimf128` use the emulated float128 type (#217567)
Commit: a11389136670a4d90abc2d9c2218b0bee64b5770
https://github.com/llvm/llvm-project/commit/a11389136670a4d90abc2d9c2218b0bee64b5770
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 4746e698304b (#221201)
Commit: 3a3cf0dcd47efd805e745029fbc0985a45bc76c6
https://github.com/llvm/llvm-project/commit/3a3cf0dcd47efd805e745029fbc0985a45bc76c6
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/Target/AMDGPU/BUILD.gn
Log Message:
-----------
[gn build] Port 543ac0371f32 (#221202)
Commit: 1221e77db275a4eac466a7794be8ac02cf21d2c0
https://github.com/llvm/llvm-project/commit/1221e77db275a4eac466a7794be8ac02cf21d2c0
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 89ebea3545ac (#221203)
Commit: 60d963340e96580fe8c54c5c742babe0c2264481
https://github.com/llvm/llvm-project/commit/60d963340e96580fe8c54c5c742babe0c2264481
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn
Log Message:
-----------
[gn build] Port dca328efcdee (#221204)
Commit: 40683b3d8841b7f6e5f98d9af274b2e715a9a0b7
https://github.com/llvm/llvm-project/commit/40683b3d8841b7f6e5f98d9af274b2e715a9a0b7
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/modernize/BUILD.gn
Log Message:
-----------
[gn build] Port deb7382b1b5b (#221205)
Commit: e93322bdf5328d1d8e1b4bb06d0d7f0139ea835d
https://github.com/llvm/llvm-project/commit/e93322bdf5328d1d8e1b4bb06d0d7f0139ea835d
Author: Nico Weber <thakis at chromium.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port e6734a41bb41 (#221206)
Commit: 715831c784dfc8b0d7bca6f463a88b0c8af362a1
https://github.com/llvm/llvm-project/commit/715831c784dfc8b0d7bca6f463a88b0c8af362a1
Author: Avi Kivity <avi at scylladb.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/Sema/SemaCoroutine.cpp
M clang/test/SemaCXX/coreturn.cpp
Log Message:
-----------
[clang] Fix lost lambda capture in dependent co_return operand (#220234)
09231ed02384 ("[clang] Delay dependent co_return promise calls") made
Sema::BuildCoreturnStmt return early for a type-dependent operand,
before reaching the ActOnFinishFullExpr() call that every other path
performs.
Inside a lambda, a reference to a variable of an enclosing function is
not captured immediately: DoMarkPotentialCapture() only records it via
LambdaScopeInfo::addPotentialCapture(), and relies on
ActOnFinishFullExpr() to turn it into an actual capture and odr-use.
Skipping that on the dependent path silently drops the pending capture,
so a variable mentioned only in the operand of a dependent co_return
never gets a capture field. When the generic lambda's call operator is
later instantiated from another context, Sema tries to capture the
variable again and rejects valid code with "reference to local variable
'p' declared in enclosing function".
Finish the full-expression on the dependent path as well.
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Fixes #220233
Commit: e96c3fcd9824a9ae8dfe6207188a0c9fa4f65e90
https://github.com/llvm/llvm-project/commit/e96c3fcd9824a9ae8dfe6207188a0c9fa4f65e90
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenCall.cpp
M clang/lib/CIR/CodeGen/CIRGenFunctionInfo.h
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.h
M clang/lib/CIR/CodeGen/TargetInfo.cpp
M clang/lib/CIR/CodeGen/TargetInfo.h
M clang/lib/CIR/CodeGen/Targets/SPIRV.cpp
M clang/lib/CIR/Dialect/IR/CIRDataLayout.cpp
A clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
M clang/test/CIR/CodeGenOpenCL/address-space-local-var.clcpp
Log Message:
-----------
[CIR][SPIR-V] Set spir_kernel calling convention for AMDGCN-flavored HIP kernels (#214246)
CIR emitted no calling convention for HIP `__global__` kernels on the
`spirv64-amd-amdhsa` target, unlike generic SPIR-V, which already gets
`spirv_kernel` CC
Commit: d812b4a980839d36504b5199eb689773ab03dad6
https://github.com/llvm/llvm-project/commit/d812b4a980839d36504b5199eb689773ab03dad6
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/horizontal-fadd-with-sub.ll
Log Message:
-----------
[SLP][NFC]Add extra test for flattened fneg/fadd chains, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221208
Commit: 57807585a6aee7869ccf90a0d777e5fde61da10b
https://github.com/llvm/llvm-project/commit/57807585a6aee7869ccf90a0d777e5fde61da10b
Author: Hung-Kuan Tseng <tseng.tim096 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
M mlir/test/Dialect/Arith/canonicalize.mlir
Log Message:
-----------
[mlir][arith] Fold scaling_extf and scaling_truncf with constant operands (#215123)
Add constant folders for the two MXFP scaling casts, mirroring the
expansion
in `ExpandOps.cpp`:
```
scaling_extf(in, scale) -> mulf(extf(in), extf(scale))
scaling_truncf(in, scale) -> truncf(in / extf(scale))
```
Note the asymmetry the expansion already has: `scaling_extf` widens the
scale
to the result type, `scaling_truncf` to the type of `in`.
These were the only two ops in the dialect with neither a folder nor a
canonicalizer, so `-canonicalize` left them alone even with both
operands
constant, while `-arith-expand -canonicalize` folded them away.
Pipelines that
lower them to hardware instructions rather than expanding them, such as
`ArithToAMDGPU` and `XeGPUToXeVM`, never got the fold.
As in `arith.extf` and `arith.truncf`, the widening and narrowing steps
go
through `convertFloatValue` and fold only when lossless, so a
`roundingmode`
on `scaling_truncf` never changes a folded result. Poison propagates and
shaped results are guarded with a static-shape check, as in the generic
folders.
Scales that are not already `f8E8M0FNU` are left alone, because what
such a
scale means is unsettled: the tree does not say whether truncating a
wider
scale to `f8E8M0FNU` rounds or takes its exponent, and `ArithToAMDGPU`
passes
it to an instruction that reads only the exponent. #215295 asks for a
ruling.
The input space of these types is small enough to enumerate, so every
combination was checked against `-arith-expand -canonicalize`, against
the OCP
MXFP semantics computed independently of LLVM, and -- for the decision
to fold
or not -- against the losslessness rule above:
| sweep | cases | folded | disagreements |
| :--- | ---: | ---: | ---: |
| `scaling_extf` f4E2M1FN x f8E8M0FNU -> f16 | 4096 | 656 | 0 |
| `scaling_extf` f4E2M1FN x f8E8M0FNU -> f32 | 4096 | 4096 | 0 |
| `scaling_truncf` f16 x f8E8M0FNU -> f4E2M1FN | 16777216 | 33390 | 0 |
Commit: c5da0e956e2213fc9045df2f878bd3f6a3938fd5
https://github.com/llvm/llvm-project/commit/c5da0e956e2213fc9045df2f878bd3f6a3938fd5
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/unittests/CIR/ControlFlowTest.cpp
Log Message:
-----------
[CIR] Add RegionBranchOpInterface unit tests and fix cir.await successors (#220507)
Adds unit tests for the five CIR ops that implement
`RegionBranchOpInterface`
with no coverage today, and fixes a `cir.await` bug the new tests found:
`verifyControlFlowInterfaceConsistency` fails on `cir.await` today,
because the
op and its own terminator disagree. `cir.condition` terminates the ready
region
and reports `{resume, suspend}` when the parent is an await, while
`AwaitOp::getSuccessorRegions` listed all three regions as entry
successors and
reported the parent op as the successor of every region exit.
The corrected edges match what `cir.condition` already reports:
- from the parent, the only entry successor is `ready`
- from `ready`, the successors are `resume` and `suspend`
- from `suspend` or `resume`, the successor is the parent operation
Commit: dc6b4e11f136a04699daab6bb19680e7ba6ca427
https://github.com/llvm/llvm-project/commit/dc6b4e11f136a04699daab6bb19680e7ba6ca427
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/test/CIR/CodeGenOpenCL/kernel-arg-info-single-as.cl
M clang/test/CIR/CodeGenOpenCL/kernel-arg-info.cl
M clang/test/CIR/IR/invalid-opencl-kernel-arg-metadata.cir
M clang/test/CIR/IR/opencl-kernel-arg-metadata.cir
M clang/test/CIR/Lowering/opencl-kernel-arg-metadata.cir
Log Message:
-----------
[CIR] Drop lang_address_space's custom parenthesized attribute format (#220880)
CIR_LangAddressSpaceAttr overrode its assembly format to
`(` custom<AddressSpaceValue>($value) `)`. The parentheses defeated the
dialect's `#cir.mnemonic<...>` syntax, so the attribute printed as
`#cir<lang_address_space(offload_global)>`. It now uses the bracketed
CIR_EnumAttr default and spells
`#cir.lang_address_space<offload_global>`.
The `lang_address_space(x)` spelling inside `!cir.ptr` and `cir.global`
is
unaffected, since that goes through MemorySpaceAttrInterface in
CIRTypes.cpp.
The attribute-level pair in CIRAttrs.cpp was only reachable from the
deleted
format, so it goes away.
Commit: e2ce7a69d368641022faa93c2c6590e1ccfeef40
https://github.com/llvm/llvm-project/commit/e2ce7a69d368641022faa93c2c6590e1ccfeef40
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lsfe.ll
M llvm/test/CodeGen/AArch64/Atomics/aarch64_be-atomicrmw-lsfe.ll
A llvm/test/CodeGen/AArch64/Atomics/atomicrmw-fsub-lsfe-combine.ll
M llvm/test/CodeGen/AArch64/Atomics/generate-tests.py
Log Message:
-----------
[AArch64] Lower rmw sub to FNEG+LDFADD when LSFE present (#220568)
This patch enables `atomicrmw sub` nodes to be lowered into
FNEG+LD(B)FADD instructions when LSFE is present and we are not in
strictfp environment.
Additionally, this patch fixes a bug which allowed atomicrmw with fp128
to be considered legal when LSFE present.
Commit: 43a9ad721ddd795f8004572844f56bfdae671f9c
https://github.com/llvm/llvm-project/commit/43a9ad721ddd795f8004572844f56bfdae671f9c
Author: Ashutosh Nema <ashu1212 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-fdot-product.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops-chained.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory.ll
A llvm/test/Transforms/LoopVectorize/VPlan/RISCV/cse-loads-evl.ll
A llvm/test/Transforms/LoopVectorize/VPlan/X86/cse-loads-gather.ll
A llvm/test/Transforms/LoopVectorize/VPlan/cse-loads-masked.ll
A llvm/test/Transforms/LoopVectorize/VPlan/cse-loads-tailfold.ll
A llvm/test/Transforms/LoopVectorize/VPlan/cse-loads.ll
M llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory.ll
Log Message:
-----------
[VPlan] Extend cse to eliminate redundant widened loads (#212543)
The generic cse() skips memory-reading recipes, so duplicate widened
loads are never eliminated. Extend cse() to also CSE redundant
VPWiden(EVL)LoadRecipes.
Within a VPBasicBlock, loads are matched against earlier ones with the
same address, mask, scalar type and alignment; the candidate list is cleared
on any memory-writing recipe (a conservative aliasing barrier), so load CSE
stays within a single block. This covers consecutive, masked and gather loads.
Commit: e9803af577ec20ddf2d789da36235da4a436525d
https://github.com/llvm/llvm-project/commit/e9803af577ec20ddf2d789da36235da4a436525d
Author: lianjinfeng2003 <101249452+mygitljf at users.noreply.github.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/andnot-patterns.ll
M llvm/test/CodeGen/X86/bmi.ll
M llvm/test/CodeGen/X86/pr108731.ll
Log Message:
-----------
[X86] Select i8 ANDN via i32 promotion (#205050)
Added selection support so BMI ANDN can be used for i8 integer operands
by widening through the available 32-bit instruction form and keeping
the low byte result.
I also updated the affected X86 CodeGen checks and added direct coverage
for the i8 case.
Fixes #204985
Commit: 598d9d1369d385582d2a90d71335073d1b2e0950
https://github.com/llvm/llvm-project/commit/598d9d1369d385582d2a90d71335073d1b2e0950
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M lldb/docs/dil-expr-lang.ebnf
M lldb/include/lldb/ValueObject/DILAST.h
M lldb/include/lldb/ValueObject/DILLexer.h
M lldb/source/ValueObject/DILAST.cpp
M lldb/source/ValueObject/DILEval.cpp
M lldb/source/ValueObject/DILLexer.cpp
M lldb/source/ValueObject/DILParser.cpp
M lldb/test/API/commands/frame/var-dil/expr/Assignment/TestFrameVarDILCompositeAssign.py
M lldb/test/API/commands/frame/var-dil/expr/Assignment/main.cpp
Log Message:
-----------
[lldb] Add composite assignments to existing operators in DIL (#208853)
Add operators `*=`, `/=`, `%=`, `<<=`, `>>=`, `&=`, `^=`, `|=` to DIL.
Commit: f706cea82e79294950289d50ceb0b14f1797c997
https://github.com/llvm/llvm-project/commit/f706cea82e79294950289d50ceb0b14f1797c997
Author: Akash Manna <akash.manna.mymail at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/CodeGen/MachineFrameInfo.h
M llvm/lib/CodeGen/MachineFrameInfo.cpp
A llvm/test/CodeGen/X86/pr214750.ll
Log Message:
-----------
[CodeGen] Don't misinterpret a UINT64_MAX-sized stack object as dead (#220172)
Fixes #214750
A static alloca of `0xFFFFFFFFFFFFFFFF` bytes — what clang emits for
`__builtin_alloca(-1)`, which is valid C — crashed with `Assertion
'!isDeadObjectIndex(ObjectIdx) && "Getting frame offset for a dead
object?"' failed`. MachineFrameInfo encoded dead stack objects in-band
as `Size == ~0ULL`, so this object was considered dead from the moment
it was created: PEI skipped it when assigning frame offsets, but the
frame-index reference was still in the function, and eliminateFrameIndex
asserted when resolving it. No pass ever marked the object dead — the
size itself collided with the sentinel. Not actually a recent regression
despite the label; it reproduces back to 20.x, and GlobalISel had the
identical latent bug since it also feeds the raw alloca size into
`CreateStackObject`.
Deadness is now a separate `isDead` flag on `StackObject` instead of
borrowing a size value, so no size can flip an object's liveness.
`RemoveStackObject` sets the flag, `isDeadObjectIndex` reads it, and the
frame-object debug printer — the only other place that looked at the
sentinel — checks it too. This fixes both instruction selectors at once
rather than clamping the size at each call site. An allocation this
large can never succeed at runtime anyway; a size one byte smaller
already compiled fine through the same path, and now `-1` behaves the
same way. Added `llvm/test/CodeGen/X86/pr214750.ll` covering both the
`-O0` and default pipelines with `-verify-machineinstrs`.
LLM tools were used for this contribution. I've reviewed, built, and
tested the change myself before pushing to GitHub.
Commit: 740df3a3ebe0fcba110a640a0bd3696ab7451334
https://github.com/llvm/llvm-project/commit/740df3a3ebe0fcba110a640a0bd3696ab7451334
Author: Vachan <vachanvy05 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/lib/Target/X86/X86InstrCompiler.td
M llvm/lib/Target/X86/X86InstrFragments.td
M llvm/test/CodeGen/X86/aext-and-trunc-avx512.ll
Log Message:
-----------
[X86][AVX-512] Fold `zext(and(bitcast(mask), C))` --> `and(anyext(bitcast(mask)), zext(C))` (#220251)
resolves #120389
Note: I have used AI for the tablegen implementation (using my DAG
implementation as reference) since I'm not very familiar with tablegen
yet.
Commit: 0d4ed3cdbe004e07d441e7e2d62d1b9a13bcf07f
https://github.com/llvm/llvm-project/commit/0d4ed3cdbe004e07d441e7e2d62d1b9a13bcf07f
Author: John Brawn <john.brawn at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/test/Transforms/InstCombine/cast-mul-select.ll
A llvm/test/Transforms/InstCombine/zext-nneg.ll
Log Message:
-----------
[InstCombine] Evaluate zext nneg as sext where possible (#212230)
We can convert zext nneg to sext, and doing so when evaluating an
expression in a wider type means any negative constant operands are
sign-extended instead of zero-extended, meaning the high bits of the
result will be correct without needing to mask them.
Alive2 proofs:
Evaluating nsw arithmetic at higher precision means the sign of the
result can't change: https://alive2.llvm.org/ce/z/xX9eq3
Sign-extending an operand of a bitwise operations doesn't matter with
nneg: https://alive2.llvm.org/ce/z/4QNsEg
Operand can be sign-extended without nsw if we have a zext of a zext:
https://alive2.llvm.org/ce/z/K_UXnU
zext_nneg_of_sext: https://alive2.llvm.org/ce/z/9U6BRG
zext_nneg_of_sext_large_positive: https://alive2.llvm.org/ce/z/Q9mFKu
Commit: c2a4cb4e68ca5e1d4ba9f7ce3bd31f54c25da828
https://github.com/llvm/llvm-project/commit/c2a4cb4e68ca5e1d4ba9f7ce3bd31f54c25da828
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
Log Message:
-----------
[CIR] Delete the unused cir::VisibilityAttr (#220881)
This removes CIR_VisibilityAttr that had no users. `cir.global` and
`cir.func` carry visibility
as `EnumProp<CIR_VisibilityKind>`, a property rather than an attribute,
so
nothing ever built or printed the attribute.
Its only consumer was CIRGenModule::getGlobalVisibilityAttrFromDecl,
itself
never called, and that was the only caller of
getGlobalVisibilityKindFromClangVisibility, so all three go together.
Commit: 017f9d1c0c3e5a009ac75ef01e02eb01ecf6f637
https://github.com/llvm/llvm-project/commit/017f9d1c0c3e5a009ac75ef01e02eb01ecf6f637
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/RISCV/blocks-with-dead-instructions.ll
M llvm/test/Transforms/LoopVectorize/RISCV/dead-ops-cost.ll
M llvm/test/Transforms/LoopVectorize/RISCV/defaults.ll
M llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
M llvm/test/Transforms/LoopVectorize/RISCV/first-order-recurrence-scalable-vf1.ll
M llvm/test/Transforms/LoopVectorize/RISCV/fminimumnum.ll
M llvm/test/Transforms/LoopVectorize/RISCV/gather-scatter-cost.ll
M llvm/test/Transforms/LoopVectorize/RISCV/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/RISCV/indvar-overflow-check-scalable-tc.ll
M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
M llvm/test/Transforms/LoopVectorize/RISCV/interleaved-accesses.ll
M llvm/test/Transforms/LoopVectorize/RISCV/interleaved-masked-access.ll
M llvm/test/Transforms/LoopVectorize/RISCV/lmul.ll
M llvm/test/Transforms/LoopVectorize/RISCV/mask-index-type.ll
M llvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product.ll
M llvm/test/Transforms/LoopVectorize/RISCV/pr87378-vpinstruction-or-drop-poison-generating-flags.ll
M llvm/test/Transforms/LoopVectorize/RISCV/predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/RISCV/reg-usage-prune-vf.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/RISCV/runtime-check-dependent-on-stride.ll
M llvm/test/Transforms/LoopVectorize/RISCV/safe-dep-distance.ll
M llvm/test/Transforms/LoopVectorize/RISCV/scalable-basics.ll
M llvm/test/Transforms/LoopVectorize/RISCV/scalable-tailfold.ll
M llvm/test/Transforms/LoopVectorize/RISCV/scalable-vf-hint.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-access-wide-stride.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses-i64-rv32.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses-narrow-iv.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-bin-unary-ops-args.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-div.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-interleave.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reverse-load-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-safe-dep-distance.ll
M llvm/test/Transforms/LoopVectorize/RISCV/transform-narrow-interleave-to-widen-memory.ll
M llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-cost.ll
M llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-evl-crash.ll
M llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/zvl1024b-crash.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/partial-reduce-dot-product.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/reductions-evl.ll
M llvm/test/Transforms/PhaseOrdering/RISCV/any-of-vectorization.ll
M llvm/test/Transforms/PhaseOrdering/loop-vectorize-bfi.ll
Log Message:
-----------
[TTI/RISCV] Strip getMaxVScale (#220547)
RISC-V is the only target using it at the moment, and it is unnecessary,
as frontends insert a vscale_range attribute that we can use. As such,
this patch is a non-functional cleanup, along with test updates, taking
care to minimize the diff by inserting the vscale_range attribute in
various tests.
Commit: 8c870316400b2f1ce5ca0302c04734ef3f7883ec
https://github.com/llvm/llvm-project/commit/8c870316400b2f1ce5ca0302c04734ef3f7883ec
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape.cpp
Log Message:
-----------
[clang-tidy][NFC] Test all bugprone-exception-escape option modes (#221164)
AI Usage: GPT 5.6 Sol was used to help with pre-commit self-reviewing.
Follow-up of https://github.com/llvm/llvm-project/pull/218067.
Commit: c8391ec76e50dbb353acf1649142ef8f35e174d5
https://github.com/llvm/llvm-project/commit/c8391ec76e50dbb353acf1649142ef8f35e174d5
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.md
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
Log Message:
-----------
[clang-tidy] Fix renaming parameter packs in `sizeof...` expressions (#219155)
Record parameter pack usages held by `SizeOfPackExpr` in the common
renamer visitor. This ensures that declarations and `sizeof...`
references are renamed together.
Closes #219154
Commit: 128cdb86fc6bd947ae8a85602a9b0429b412ac77
https://github.com/llvm/llvm-project/commit/128cdb86fc6bd947ae8a85602a9b0429b412ac77
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/Driver/Action.h
M clang/include/clang/Driver/CommonArgs.h
M clang/include/clang/Driver/Tool.h
M clang/include/clang/Options/Options.td
M clang/lib/Driver/Action.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/Tool.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/Clang.h
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPSPV.cpp
M clang/lib/Driver/ToolChains/HIPUtility.cpp
M clang/lib/Driver/ToolChains/HIPUtility.h
M clang/test/Driver/cuda-phases.cu
M clang/test/Driver/hip-binding.hip
M clang/test/Driver/hip-cuid.hip
M clang/test/Driver/hip-offload-compress-zstd.hip
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/hip-spirv-backend-opt.c
M clang/test/Driver/hip-toolchain-no-rdc.hip
M clang/test/Driver/hipspv-toolchain.hip
M clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-no-rdc.c
Log Message:
-----------
[Clang] Clean up leftover old offloading driver tools and utilities (#221093)
Summary:
This PR cleans up some now unused utilities.
1. The old driver fatbinary object building
2. The SDL library linking
3. The offload bundler unbundler job
These are all replaced by operations the new driver does. The one hitch
is that the `--offload-device-only -lfoo -frdc` will not unbundle like
it once did, but I am unsure if that was ever used much in practice.
Commit: e9e42884a3255729a0ee53c26d45cc992c412924
https://github.com/llvm/llvm-project/commit/e9e42884a3255729a0ee53c26d45cc992c412924
Author: Chris Copeland <chris at chrisnc.net>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCInstrInfo.td
M llvm/test/MC/PowerPC/ppc64-encoding-bookIII.s
Log Message:
-----------
[PowerPC] Remove tlbie one-operand InstAlias for ISA 3.0+ (#213816)
tlbie for ISA 3.0+, aka TLBIEP9, only has a two-operand form or a
5-operand form.
Commit: c536b0aa030474672e293dccdb27b97c36c4e1af
https://github.com/llvm/llvm-project/commit/c536b0aa030474672e293dccdb27b97c36c4e1af
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
Log Message:
-----------
[NFC][TTI] Remove default CostKind and FMF from TTI::getMinMaxReductionCost() (#219310)
Addresses #135598.
AI Usage: Assisted by Codex
Commit: 7678b972c1bd8100de55569cc19f31c79815f8b0
https://github.com/llvm/llvm-project/commit/7678b972c1bd8100de55569cc19f31c79815f8b0
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
A clang/test/CIR/IR/enum-attrs.cir
Log Message:
-----------
[CIR] Migrate seven operation enums off IntegerAttr (#220883)
CastKind, DynamicCastKind, CmpOpKind, ComplexRangeKind, InitCatchKind,
CaseOpKind and AwaitKind generated IntegerAttr subclasses. The
operations
printed them symbolically, but in an attribute dictionary `cir.cast
bitcast`
was stored as `kind = 1 : i32`.
Each enum now sets genSpecializedAttr = 0 and gains a CIR_EnumAttr
wrapper,
and the operations wrap the argument in `enum()` to keep the bare
keyword,
giving spellings like `#cir.cast<bitcast>`. Mnemonics drop the suffix
the C++
class name carries.
Commit: 69056048fe7d50960e4e5a806a898a3146845641
https://github.com/llvm/llvm-project/commit/69056048fe7d50960e4e5a806a898a3146845641
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M lldb/test/API/symstore/TestSymStore.py
Log Message:
-----------
[lldb][test] Fix flaky results from TestSymStore.py test_http_timeout (#221196)
Fixes #217733.
Observed only on Windows on Arm but I bet it can happen other places.
Sometimes the test would fail because it did not find the error message
in the log file.
The problem is that the test is relying on the client to realise the
timeout has been exceeded and close the connection, before the fake
responder can send back status 200.
So what sometimes happens is:
* The client sends the request.
* The server gets the request and waits N seconds.
* The client is delayed doing other things, and doesn't realise the
timeout has been reached. So the connection is still open.
* The server tries to respond with 200, and that sends succesfully.
* The client wakes up and sees the 200 response, so there's no error to
report.
To fix this, I've changed the responder from merely being slow to never
responding. This means the client can be delayed as long as it likes.
To prevent the responder hanging around, it waits on an event which the
test will set once the test is done (whether pass or fail), then the
responder will shut down normally.
This change does mean that if the client was buggy, we could be waiting
up to the global test timeout. However I think that's a reasonable trade
to not have flaky test results. The alternative is to increase the
responder delay, which will have to vary machine to machine and run to
run. In the end, you'd end up with a delay very similar to the global
test timeout anyway.
This change also narrows the original intent, though not the original
behaviour of the test. We would like to test that the timeout is used,
is accurate, and is configurable. Doing so without flakes is more work
than I'm willing to commit to right now.
Commit: 087826d491eadb8a533f217322ae9d8f6ebba1af
https://github.com/llvm/llvm-project/commit/087826d491eadb8a533f217322ae9d8f6ebba1af
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/lib/Semantics/resolve-directives.cpp
M flang/test/Semantics/OpenMP/default-none.f90
A flang/test/Semantics/OpenMP/default-none02.f90
Log Message:
-----------
[flang][OpenMP] Do not emit an error for CRITICAL inside DEFAULT(NONE) (#216403)
Fixes #197394
Fixes #197396
Assisted-By: Claude Sonnet 5
Commit: ee5d07b1655fa0e735d8caed6a447204cb170be9
https://github.com/llvm/llvm-project/commit/ee5d07b1655fa0e735d8caed6a447204cb170be9
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
Log Message:
-----------
[CIR][NFC] Share getSuccessorInputs across region-branch ops (#220509)
All ten CIR ops implementing `RegionBranchOpInterface` hand-wrote
`getSuccessorInputs`, and all ten implementations expressed the same
behavior: regions take no inputs, while returning to the parent yields
the parent’s results.
Three appeared different but were equivalent:
- `CleanupScopeOp` and `CoroBodyOp` unconditionally returned an empty
ValueRange, and neither declares results in ODS.
- `AwaitOp` returned region block arguments, but it carries
`NoRegionArguments`, so those ranges are always empty.
`CIR_RegionBranchOpBase` now declares the method and generates the
shared implementation through extraClassDefinition.
Commit: 4698bcbb9403922c11b03c2f3e2fa10b97de3656
https://github.com/llvm/llvm-project/commit/4698bcbb9403922c11b03c2f3e2fa10b97de3656
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
R clang/include/clang/Analysis/FlowSensitive/DataflowValues.h
R clang/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h
Log Message:
-----------
[clang] Remove dead headers (NFC) (#221161)
None of these headers are referenced anywhere in the repository.
Commit: 4c986c23921d7b020eee08e622af8aac7e37d2d9
https://github.com/llvm/llvm-project/commit/4c986c23921d7b020eee08e622af8aac7e37d2d9
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
A clang/include/clang/CodeGenUtils/CodeGenUtils.h
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/lib/CIR/CodeGen/CMakeLists.txt
M clang/lib/CMakeLists.txt
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
M clang/lib/CodeGen/CMakeLists.txt
M clang/lib/CodeGen/CodeGenModule.cpp
A clang/lib/CodeGenUtils/CMakeLists.txt
A clang/lib/CodeGenUtils/CodeGenUtils.cpp
Log Message:
-----------
[NFCI] Extract out some functions into CodeGenUtils. (#221001)
I need to use these for CIR (see #220946). Also, its been a long-time
coming that we had a way to share stuff between both CodeGens.
This patch does (hopefully) the infrastructure work to get this running
right.
I asked Claude to help me with the CMake files, and best I can tell it
looks right? But if someone knows better, please let me know. I suspect
we might need to add dependencies along the way as we add new things,
but this seems to work at the moment?
Otherwise, this just moves a handful of trivial utilities that seemed
like a good starting point, plus one I need for CIR right away.
Commit: 63aa7d51854b9bd9d28905a0f234f4a2ffa6154d
https://github.com/llvm/llvm-project/commit/63aa7d51854b9bd9d28905a0f234f4a2ffa6154d
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/splat-gather-subtree-store-chain.ll
Log Message:
-----------
[SLP][NFC]Add a test with missed vectorization due to tree size inflate for splats, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221237
Commit: 71d89856082c7d9d81b6f9ef50ae6145a51edf03
https://github.com/llvm/llvm-project/commit/71d89856082c7d9d81b6f9ef50ae6145a51edf03
Author: Kirby Chin <Kirby.Chin at ibm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/XRay/InstrumentationMap.cpp
A llvm/test/tools/llvm-xray/SystemZ/Inputs/elf64-pic.yaml
A llvm/test/tools/llvm-xray/SystemZ/extract-instrmap.test
Log Message:
-----------
[XRay] Enable XRay for SystemZ (#213577)
Fixes InstrumentationMap parsing for big-endian targets and adds SystemZ
support.
Commit: 9853cb54d9d2684b27f0d0db89c00c2da7e31b88
https://github.com/llvm/llvm-project/commit/9853cb54d9d2684b27f0d0db89c00c2da7e31b88
Author: Michael G. Kazakov <mike.kazakov at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/include/__algorithm/pstl.h
M libcxx/include/__pstl/backend_fwd.h
M libcxx/include/__pstl/backends/default.h
M libcxx/include/__pstl/backends/libdispatch.h
M libcxx/include/__pstl/backends/serial.h
M libcxx/include/__pstl/backends/std_thread.h
A libcxx/include/__pstl/cpu_algos/min_element.h
M libcxx/include/module.modulemap.in
M libcxx/test/libcxx/algorithms/pstl.iterator-requirements.verify.cpp
M libcxx/test/libcxx/algorithms/pstl.nodiscard.verify.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.max_element.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.max_element_comp.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.min_element.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.min_element_comp.pass.cpp
M libcxx/test/std/algorithms/pstl.exception_handling.pass.cpp
Log Message:
-----------
[libc++][pstl] Implementation of parallel std::min_element() based on parallel reduce (#219876)
This PR adds an implementation of parallel `std::min_element()` based on
parallel reduce.
`std::max_element()` is also added, implemented as a "one-liner" over
`min_element`.
The implementation formulates `min_element` as a reduction of iterators
over the input range.
The reduction is provided in two forms: 2-element reduction that picks
the iterator pointing to a smaller value, and a range-based reduction
with init value. The latter delegates the heavy-lifting to the serial
implementation of `std::min_element()`.
Part of #99938.
Commit: 54f7d98d52413399a14111bfede1c9e388ac62c7
https://github.com/llvm/llvm-project/commit/54f7d98d52413399a14111bfede1c9e388ac62c7
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/netdb.yaml
M libc/src/netdb/CMakeLists.txt
A libc/src/netdb/gai_strerror.cpp
A libc/src/netdb/gai_strerror.h
M libc/test/src/netdb/CMakeLists.txt
A libc/test/src/netdb/gai_strerror_test.cpp
Log Message:
-----------
[libc][netdb] Implement gai_strerror POSIX function. (#221138)
`gai_strerror` is defined in POSIX and used to provide human-readable
strings for `EAI_*` error codes returned by
`getaddrinfo` and `getnameinfo`.
Provide our implementation via simple switch. Provide string values
based on the POSIX documentation for `EAI_`
values in
https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/netdb.h.html,
but shorten them for brevity.
Commit: 117e53c28efd4944b6860e62fb4517c0d603ec87
https://github.com/llvm/llvm-project/commit/117e53c28efd4944b6860e62fb4517c0d603ec87
Author: Andrew Gaul <andrew at gaul.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/test/CodeGen/X86/cmp.ll
M llvm/test/CodeGen/X86/optimize-compare.mir
A llvm/test/CodeGen/X86/peephole-test-after-shl.ll
Log Message:
-----------
[X86] Remove TEST after SHL by 1..3 when the shifted operand dies (#220744)
optimizeCompareInstr refuses to reuse the flags of a SHL by 1..3 so that
TwoAddressInstructionPass may still convert the shift into an LEA, which
sets no flags. That conversion exists to avoid a register copy, so it
can only pay off while the shifted operand has further uses; when the
shift is the operand's sole user, the reservation costs a TEST (2-3
bytes and a uop) for nothing. Allow the conversion in that case, as
already done for SHR, SAR, and larger SHL counts.
An x86lint audit of Firefox's libxul.so counted 4,369 redundant TESTs
after immediate shifts, dominated by single-use left shifts by a small
count feeding a compare against zero, e.g. Rust's Layout size checks
(shl $1; test; je). This also composes with dda2c12275e5: 63-bit lowmask
compares shrunken to SHL by 2 now drop their TEST as well.
Commit: ca7890e9f76dc6ec709c5c452f7761bf0ab67625
https://github.com/llvm/llvm-project/commit/ca7890e9f76dc6ec709c5c452f7761bf0ab67625
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/AST/NestedNameSpecifier.h
M clang/include/clang/AST/NestedNameSpecifierBase.h
M clang/lib/AST/ASTImporter.cpp
Log Message:
-----------
[clang] remove unused NestedNameSpecifier 'Invalid' constructor (#221128)
These invalid NNS were used as thombstone keys for DenseMap, but the
DenseMap implementation changed and that's not needed anymore.
Commit: 14f097ec3f2bef83e852d9ded7b117fcf2f4e103
https://github.com/llvm/llvm-project/commit/14f097ec3f2bef83e852d9ded7b117fcf2f4e103
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/i386/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/pwd.yaml
M libc/src/pwd/CMakeLists.txt
A libc/src/pwd/getpwnam.cpp
A libc/src/pwd/getpwnam.h
A libc/src/pwd/getpwuid.cpp
A libc/src/pwd/getpwuid.h
M libc/src/pwd/pwd_utils.cpp
M libc/src/pwd/pwd_utils.h
M libc/test/src/pwd/CMakeLists.txt
A libc/test/src/pwd/getpwnam_test.cpp
A libc/test/src/pwd/getpwuid_test.cpp
Log Message:
-----------
[libc] Add getpwnam and getpwuid entrypoints (#221169)
Added non-reentrant getpwnam and getpwuid functions using the shared
process-global buffer.
* Implemented getpwnam and getpwuid entrypoints
* Added non-reentrant find_by_name and find_by_uid lookups
* Added function specifications to include/pwd.yaml
* Registered entrypoints in config/linux/*/entrypoints.txt
* Added unit tests in libc/test/src/pwd/getpwnam_test.cpp and
libc/test/src/pwd/getpwuid_test.cpp
Assisted-by: Automated tooling, human reviewed.
Commit: a1ec06e04bc1f3303f46783fcc163c22ed201039
https://github.com/llvm/llvm-project/commit/a1ec06e04bc1f3303f46783fcc163c22ed201039
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 4c986c2 (#221242)
This fixes 4c986c23921d7b020eee08e622af8aac7e37d2d9 (#221001).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=4c986c23921d7b020eee08e622af8aac7e37d2d9
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 49f13a5a8014591c4431c4c85e217c62c2705c65
https://github.com/llvm/llvm-project/commit/49f13a5a8014591c4431c4c85e217c62c2705c65
Author: lntue <lntue at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/fcntl.yaml
M libc/include/llvm-libc-macros/linux/fcntl-macros.h
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/posix_fadvise.h
M libc/src/fcntl/CMakeLists.txt
M libc/src/fcntl/linux/CMakeLists.txt
A libc/src/fcntl/linux/posix_fadvise.cpp
A libc/src/fcntl/posix_fadvise.h
M libc/test/src/fcntl/CMakeLists.txt
A libc/test/src/fcntl/posix_fadvise_test.cpp
Log Message:
-----------
[libc][fcntl] Implement posix_fadvise function. (#220790)
Fixes https://github.com/llvm/llvm-project/issues/220765.
Assisted-by: Gemini
Commit: 4154b56ccc70220dca3fa1226fc8a24bafd90ac3
https://github.com/llvm/llvm-project/commit/4154b56ccc70220dca3fa1226fc8a24bafd90ac3
Author: Berkay Sahin <berkaysahindev at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang-tools-extra/clangd/XRefs.cpp
M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
Log Message:
-----------
[clangd][modules] Support go-to-definition on module imports (#219839)
Fixes https://github.com/clangd/clangd/issues/2310
Commit: 1268903b40387fc9e70b250662225fdd74074c22
https://github.com/llvm/llvm-project/commit/1268903b40387fc9e70b250662225fdd74074c22
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M lldb/source/Host/windows/PythonRuntimeLoaderWindows.cpp
Log Message:
-----------
[lldb][Windows] Fix unused function GetModulePath warning with certain Python options (#221173)
If LLDB_PYTHON_DLL_RELATIVE_PATH is OFF, or it is ON and
LLDB_PYTHON_RUNTIME_LIBRARY_FILENAME is OFF, then GetModulePath is
unused.
```
<...>/lldb/source/Host/windows/PythonRuntimeLoaderWindows.cpp(32,13): warning: unused function 'GetModulePath' [-Wunused-function]
32 | std::string GetModulePath(HMODULE module) {
| ^~~~~~~~~~~~~
```
Rearrange the macros to define GetModulePath only if both options are
enabled.
Commit: e33e88551902cadfd7162719f18189d63489796e
https://github.com/llvm/llvm-project/commit/e33e88551902cadfd7162719f18189d63489796e
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang-rt/include/flang-rt/runtime/file.h
Log Message:
-----------
[flang-rt][NFC] Initialize OpenFile::nextId_ (#221187)
`OpenFile::nextId_` had no initializer and is assigned only in
`Predefine()`, which runs for the three preconnected units. A unit
created by `OPEN` therefore leaves it indeterminate. Added missing
initializer.
Assisted-by: AI
Commit: 47fee85e3b5e4c749829a2ebac498dc89e6a5f2c
https://github.com/llvm/llvm-project/commit/47fee85e3b5e4c749829a2ebac498dc89e6a5f2c
Author: Susan Tan (ス-ザン タン) <zujunt at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
A flang/test/Transforms/FIRToMemRef/view-op-wraps-array-coor.mlir
Log Message:
-----------
[flang][FIRToMemRef] Look through zero-offset views to find fir.array_coor (#215402)
`getMemRefInfo` dispatched only on a FIR memref's immediate defining op,
so a fir.declare (or other zero-offset view) wrapping
`fir.array_coor`/indexing `fir.coordinate_of` was treated as an opaque
scalar reference, dropping bounds information and causing incorrect
runtime behavior (e.g. missing array dimensions) after inlining under an
OpenACC kernels loop.
This peeks through zero-offset FortranObjectViewOpInterface views
(fir.declare, ref/box fir.convert, fir.box_addr, fir.volatile_cast,
fir.create_box, unsliced fir.embox/fir.rebox) for a genuine
fir.array_coor/indexing fir.coordinate_of underneath and dispatches
bounds-aware lowering on it.
Commit: c599c4c8a61243795f9cb1922464d6bbc8f95686
https://github.com/llvm/llvm-project/commit/c599c4c8a61243795f9cb1922464d6bbc8f95686
Author: Aochang Liu <102237385+HelloWorldU at users.noreply.github.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/RegisterCoalescer.cpp
A llvm/test/CodeGen/X86/coalesce-commute-partial-def-implicit-read.mir
Log Message:
-----------
[RegisterCoalescer] Do not commute def when a partial def implicitly reads it (#220979)
## Problem
Since f44079db22036d0ade2cf3d2e5a24bde5d378efd, instruction selection
can produce partial register writes (e.g. MOV8rm into sub_8bit) that
implicitly read the rest of the 64-bit register. When
removeCopyByCommutingDef commutes the feeding OR to remove a COPY, it
rewrites only explicit operands and then erases the old definition from
the live interval.
The partial write still implicitly reads that value, so
`JoinVals::analyzeValue` asserts on `Instruction is reading nonexistent
value`.
## Fix
Extend the existing reader check from `use_nodbg_operands` to
`reg_nodbg_operands`, and use `readsReg()` to identify operands that
read `AValNo`. Reject the commute when such a reader is also a def, just
as for a tied use, because it cannot be rewritten independently.
This catches partial defs without introducing a separate scan over all
defs.
## Testing
- New MIR regression test crashes on main (RegisterCoalescer.cpp:2885
assertion) and passes with this change.
- No end-to-end .ll test is included: on the latest HEAD the pass
pipeline no longer takes the branch that triggered the original
assertion.
Resolves #220302
Commit: 6a46cee8e7dbed35560b1f1bf518f4c1c7391866
https://github.com/llvm/llvm-project/commit/6a46cee8e7dbed35560b1f1bf518f4c1c7391866
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoZvdot4a8i.td
M llvm/test/CodeGen/RISCV/rvv/zvdot4a8i-sdnode.ll
Log Message:
-----------
[RISCV] Add isel pattern for vdot4aus.vx (#221047)
The splat of i32 and bitcast is probably not realistic. I'm just trying
to cover the assymmetry in the patterns with this patch.
Assisted-by: Claude
Commit: 1346f98d0e116d989d7e8659154b54c9d47b3b7a
https://github.com/llvm/llvm-project/commit/1346f98d0e116d989d7e8659154b54c9d47b3b7a
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/AST/CommentSema.cpp
M clang/test/Sema/warn-documentation.cpp
M clang/test/Sema/warn-documentation.m
Log Message:
-----------
[Comment] Fix @method/@methodgroup/@callback false positives (#220787)
76af74004e8b (#181769) refactored the DiagSelect computation in
checkFunctionDeclVerbatimLine to use named enum constants instead of
magic numbers. The checks for whether the comment was attached to an
Objective-C method, a method group, or a pointer to a function
declaration were removed for the @method, @methodgroup, and @callback
cases, which caused warn_doc_function_method_decl_mismatch to be emitted
even when the comments were attached to matching declarations.
Restore the dropped checks.
rdar://184264978
Commit: a1b86bdaef6b0b0e0d6b4dbb3354fa024de2f1b2
https://github.com/llvm/llvm-project/commit/a1b86bdaef6b0b0e0d6b4dbb3354fa024de2f1b2
Author: Akash Banerjee <akash.banerjee at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/OpenMP/Utils.cpp
M flang/lib/Lower/OpenMP/Utils.h
A flang/test/Lower/OpenMP/target-update-derived-type-usm.f90
A flang/test/Lower/OpenMP/target-update-derived-type.f90
Log Message:
-----------
[Flang][OpenMP] Optimize target updates of derived-type scalars (#219488)
Pack AMDGPU derived-type scalar updates into a single transfer and
generated target region, avoiding one costly runtime transfer per
component. Preserve existing lowering for unsupported clauses, pointer
components, and non-AMDGPU targets.
Commit: 9cda50c8427fc17663f102392729bbf68cd8178e
https://github.com/llvm/llvm-project/commit/9cda50c8427fc17663f102392729bbf68cd8178e
Author: David Rivera <davidriverg at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRDialect.td
M clang/lib/CIR/CodeGen/CIRGenCall.cpp
M clang/test/CIR/CodeGenCUDA/kernel-call.cu
A clang/test/CIR/CodeGenCUDA/uniform-work-group-size.cu
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
M mlir/test/Dialect/LLVMIR/func.mlir
M mlir/test/Dialect/LLVMIR/roundtrip.mlir
M mlir/test/Target/LLVMIR/Import/function-attributes.ll
M mlir/test/Target/LLVMIR/Import/instructions.ll
M mlir/test/Target/LLVMIR/llvmir.mlir
Log Message:
-----------
[CIR] Implement "uniform_work_group_size" func attribute. (#214708)
Commit: 26d3c25b8184193e7952f14151245166fa010f62
https://github.com/llvm/llvm-project/commit/26d3c25b8184193e7952f14151245166fa010f62
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
A clang/test/CIR/CodeGen/destructor-vtable-reinit-strict.cpp
A clang/test/CIR/CodeGen/destructor-vtable-reinit.cpp
Log Message:
-----------
[CIR] Implement 'vtable initialization' lowering (#220946)
This showed up in a test suite, and is basically just ensuring that our
vtable pointers are properly cleaned up during destruction. The entirety
of the static functions (and the implementation) are near word-for-word
copies of what classic codegen does.
However, there ARE a few parts that are potentially untested(including
strict-vtable-pointers which aren't implemented yet), but the
implementation is put in place, as it is a mechanical copy/paste
implementation.
Note: Claude came up with additional test cases.
Commit: defde181bce666df9ceeb57cf8f8ad4cda6c6675
https://github.com/llvm/llvm-project/commit/defde181bce666df9ceeb57cf8f8ad4cda6c6675
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/include/flang/Optimizer/Dialect/FortranVariableInterface.td
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
Log Message:
-----------
[flang][NFC] Add FortranObjectLoadOpInterface for load provenance (#221088)
The definition walk in AliasAnalysis::getSourceImpl already keys the
address half of a descriptor access chain on
FortranObjectViewOpInterface (fir.box_addr, fir.create_box,
fir.convert), but the load step was hardcoded to fir::LoadOp. Any other
operation whose result is a value read from memory therefore terminated
the walk at SourceKind::Unknown, losing the AllocDeref/PointerDeref root
and coarsening alias results for everything reached through the loaded
descriptor.
Add FortranObjectLoadOpInterface as the value-producing dual of
FortranObjectViewOpInterface: a view op forwards an address, a load-like
op yields the value read from one. It declares a single getLoadSource
method reporting the memory reference a result was read from. fir.load
implements it as getMemref(), so this is NFC, and the box-load case in
getSourceImpl now keys on the interface instead of the concrete op.
The interface documents provenance only and makes no purity claim, so an
operation whose result depends on more than the contents of the memory
reference can participate as long as it models those extra dependences
through its memory effects. Consumers must not use the interface to
justify value-based transformations such as CSE or load forwarding.
Assisted-by: Cursor
Commit: 4b8839f67a8508a6ee0005c6757b287d645d202f
https://github.com/llvm/llvm-project/commit/4b8839f67a8508a6ee0005c6757b287d645d202f
Author: John Brawn <john.brawn at arm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/test/Transforms/LoopIdiom/memmove-ext.ll
Log Message:
-----------
[LoopIdiom] Adjust memmove-ext.ll test (#221251)
Some of the functions in this test have an iv value of 0 in the first
iteration which which is then used in a sub nuw which would result in
poison. Adjust these to use 1 in the first iteration.
Commit: c7ba46e37d78cb39c3940f255ec907930f85e577
https://github.com/llvm/llvm-project/commit/c7ba46e37d78cb39c3940f255ec907930f85e577
Author: andre <andsun9999 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Parse ObjC generics in block literal return types (#220995)
The unwrapped line parser handled a block literal's return type as a
single identifier or type keyword followed by optional stars. A return
type carrying ObjC generics or a protocol qualifier, such as
`^NSArray<NSString *> *(int x) { ... }` or `^id<Proto>(int x) { ... }`,
was therefore not recognized as a block, and its body was treated as a
function body instead. This collapsed the body like a short function
and, with `RemoveSemicolon: true`, dropped the semicolon terminating the
enclosing statement, producing code that no longer compiles.
Skip a balanced angle-bracket list after the return type before looking
for the parameter list and body.
Fixes #219713
Assisted-by: Claude Code
Commit: c8fbd8226a3717c1f9de8c0270b6f4d57f046f1e
https://github.com/llvm/llvm-project/commit/c8fbd8226a3717c1f9de8c0270b6f4d57f046f1e
Author: Venkatesh Srinivasan <156861430+venk-ks at users.noreply.github.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/include/clang/Basic/Builtins.td
M clang/lib/AST/Decl.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/test/Analysis/cstring-syntax.c
M clang/test/Sema/builtins.c
M clang/test/Sema/warn-fortify-source.c
Log Message:
-----------
[Clang][Sema] Add fortify warnings for strlcat (#220341)
Add `-Wfortify-source` diagnostics for `strlcat` and `__builtin_strlcat`
when the size argument exceeds the destination buffer size.
Also add `-Wno-fortify-source` to `clang/test/Analysis/cstring-syntax.c`
to prevent the new compiler diagnostic from interfering with static
analyzer checks on intentionally underflowing test expressions.
Part of #142230
Assisted-by: Gemini
Commit: 08d499665a145b4f9074324ed259015850809473
https://github.com/llvm/llvm-project/commit/08d499665a145b4f9074324ed259015850809473
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/test/CIR/CodeGen/agg-atomic-cast.c
Log Message:
-----------
[CIR] Support Aggregate cast from and to atomic type (#220689)
Support Aggregate cast from and to atomic type
Commit: cd316d257bda9d1232a8e6c4fb9cb75df571b83d
https://github.com/llvm/llvm-project/commit/cd316d257bda9d1232a8e6c4fb9cb75df571b83d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoZvdot4a8i.td
M llvm/test/CodeGen/RISCV/rvv/zvdot4a8i-sdnode.ll
Log Message:
-----------
[RISCV] Make RISCVISD::VDOT4A_VL/VDOT4AU_VL commutative. (#221051)
Assisted-by: Claude
Commit: f5afe7a2ecb261b46800d60328d5943b4f80978a
https://github.com/llvm/llvm-project/commit/f5afe7a2ecb261b46800d60328d5943b4f80978a
Author: Ambrose Leeb <aleeb at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/test/CodeGenCXX/microsoft-vector-deleting-dtors2.cpp
Log Message:
-----------
[NFC] [Clang] [CodeGen] Reduce code duplication when emitting trap calls (#221022)
There are a number of places in codegen where we do this:
```c++
llvm::CallInst *TrapCall = EmitTrapCall(llvm::Intrinsic::trap);
TrapCall->setDoesNotReturn();
TrapCall->setDoesNotThrow();
Builder.CreateUnreachable();
Builder.ClearInsertionPoint();
```
This patch adds a helper that does this and updates `EmitTrapCall()` to
no longer create a new block after emitting the trap call.
One test had to be updated because an unnecessary block was dropped.
Before, we were generating this:
```llvm
dtor.call_delete_after_array_destroy: ; preds = %dtor.vector.cont
call void @llvm.trap() #7
unreachable
6: ; No predecessors!
unreachable
```
The second block here is now no longer present, which caused some
instruction renumbering.
Commit: 79844094b2ddb18b3b1bcdac8d7ed758b3240f4d
https://github.com/llvm/llvm-project/commit/79844094b2ddb18b3b1bcdac8d7ed758b3240f4d
Author: Kunal Pathak <kupathak at meta.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/test/Transforms/SampleProfile/pseudo-probe-no-debug-info.ll
Log Message:
-----------
[PseudoProbe] Prevent invalid callsite identities in inline trees (#219079)
Prevent debugless calls in inlined `nodebug` functions from inheriting
the caller's packed pseudo-probe discriminator. Such inheritance aliases
distinct calls onto one probe index and makes the resulting callsite
profile stale. Add a regression test covering the emitted callsite
probe.
Consider:
```
A:
probe #2
call B
B: // nodebug
call C
```
After inlining B into A, LLVM gets:
```
A:
call C
```
Because B has no debug locations, the inliner gives call C the location
of A -> B. That is sensible for debugging: the instruction now appears
at the inlining location.
The problem is that this location also contains pseudo-probe `ID #2`.
That ID identifies the original A -> B callsite. It doesn't mean "code
executing inside A."
Without the fix, call C therefore looks like:
```
call C, debug-location = A's probe #2
```
Later, PseudoProbeInserter sees the packed discriminator and emits a
machine call probe using its encoded function GUID, probe index, and
type.
That creates a false identity:
```
probe (A, #2, DirectCall)
call C
```
But `(A, #2)` describes `A -> B`, not `B -> C`. Samples collected at C
can consequently be attributed to the wrong source callsite and later
appear stale.
The fix retains everything useful while clearing only the
identity-bearing discriminator.
Thus the result is conceptually:
```
call C, debug-location = A's source location,
inline context = preserved,
pseudo-probe identity = none
```
LLVM cannot recover a usable B -> C location here. Because B is nodebug,
it has no DISubprogram, source location, or scope on which to encode its
callsite probe. Synthesizing these would invent debug information and
conflict with nodebug semantics; carrying probe identity independently
would require a broader representation change.
The conservative fix preserves A’s source location, inline context, and
ordinary DWARF base discriminator, while removing the incorrectly
inherited A → B pseudo-probe identity. Having no encoded probe for B → C
is preferable to assigning it a different callsite’s identity.
Assisted-By: Claude
---------
Co-authored-by: Kunal Pathak <kupathak at fb.com>
Commit: e022499fdf1e2581a9ed5d97e1e50cc5775c9cb1
https://github.com/llvm/llvm-project/commit/e022499fdf1e2581a9ed5d97e1e50cc5775c9cb1
Author: Kunal Pathak <kupathak at meta.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/BranchFolding.cpp
A llvm/test/CodeGen/X86/pseudo-probe-tail-merging.mir
Log Message:
-----------
[CodeGen] Preserve pseudo-probe context when tail merging (#219502)
BranchFolder normally ignores debug locations when deciding whether
machine instructions are identical. That allowed it to merge
`PSEUDO_PROBE `instructions and calls carrying packed pseudo-probe
discriminators even when they came from different inline contexts.
Merging their debug locations then kept only the common outer ancestry,
which moved profile attribution to the wrong callsite.
Keep tail merging enabled, but stop matching at a probe-sensitive
instruction unless both instructions have the same source and inline
context. Call probes also require the same packed discriminator. Tails
from the same probe context remain eligible for merging.
Add MIR coverage for block probes and call probes, including checks that
same-context tails still merge, under both the legacy and new pass
managers.
Assisted by: Claude
Commit: f6a369fa4a57e2cc80cbe65cf6262df4b0c2dfc0
https://github.com/llvm/llvm-project/commit/f6a369fa4a57e2cc80cbe65cf6262df4b0c2dfc0
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.h
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/lib/CIR/CodeGen/TargetInfo.cpp
M clang/lib/CIR/CodeGen/TargetInfo.h
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGen/aapcs-volatile-bitfields.c
M clang/test/CIR/CodeGen/bitfield-union.c
M clang/test/CIR/CodeGen/bitfields.c
M clang/test/CIR/CodeGen/bitfields.cpp
M clang/test/CIR/CodeGen/bitfields_be.c
R clang/test/CIR/CodeGen/call-conv-lowering-x86_64-empty-bitfield-member-nyi.cpp
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-empty.cpp
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-packed.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-zero-width-bitfield.c
M clang/test/CIR/CodeGen/dumb-record.cpp
M clang/test/CIR/CodeGen/finegrain-bitfield-access.cpp
M clang/test/CIR/CodeGen/mms-bitfields.c
M clang/test/CIR/CodeGen/no-unique-address.cpp
M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
M clang/test/CIR/CodeGen/record-member-kinds.c
M clang/test/CIR/CodeGen/record-member-kinds.cpp
M clang/test/CIR/CodeGen/record-zero-init-padding.c
A clang/test/CIR/IR/invalid-bitfield-member.cir
M clang/test/CIR/IR/invalid-struct.cir
M clang/test/CIR/IR/struct.cir
M clang/test/CIR/Lowering/copy-skip-tail-padding.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-aggregate-nyi.cir
A clang/test/CIR/Transforms/abi-lowering/x86_64-bitfield.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-empty-class.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-padded.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-union.cir
M clang/unittests/CIR/RecordMemberKindTest.cpp
Log Message:
-----------
[CIR] Update bit-field representation (#221030)
This changes the way that bit-fields are represented in CIR. It adds a
new type to explicitly represent bit-field access units, with an
attribute on this type describing the individual bit-fields within the
access unit, including the declared type of each field.
Assisted-by: Cursor / claude-opus-5
Commit: 7b928cbe4cbd4001e5f124f6bda4949654ac636e
https://github.com/llvm/llvm-project/commit/7b928cbe4cbd4001e5f124f6bda4949654ac636e
Author: quic-k <kushpal at qti.qualcomm.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M .github/workflows/containers/libc/Dockerfile
Log Message:
-----------
[Github][libc] Download Hexagon qemu in the libc container (#219433)
This only makes the emulator available in the image. Enabling the
Hexagon libc tests in CI is a follow-up change.
Signed-off-by: Kushal Pal <kushpal at qti.qualcomm.com>
Commit: fbf159f8ce633ff83e77231a0da3c65ecf0a9a60
https://github.com/llvm/llvm-project/commit/fbf159f8ce633ff83e77231a0da3c65ecf0a9a60
Author: Chen Li <thechenli.dev at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M lldb/source/Expression/DWARFExpression.cpp
M lldb/unittests/Expression/DWARFExpressionTest.cpp
Log Message:
-----------
[lldb][AMDGPU] Support terminal DW_OP_LLVM_piece_end (#220774)
AMDGPU can emit a location expression whose pieces are followed by a
terminal DW_OP_LLVM_piece_end. LLDB already assembles the DW_OP_piece
operands into its single out-of-band composite, but currently rejects
the final LLVM user operation.
Recognize one terminal DW_OP_LLVM_piece_end as a no-op. A non-terminal
occurrence, including the first of multiple piece-end operations,
remains an error. This intentionally does not implement multiple
composite location descriptions.
Specification:
https://llvm.org/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.html
The regression test matches the two-register expression observed in a
GPU core file and covers the unsupported multiple-piece-end form.
Testing:
- Built tools/lldb/unittests/Expression/ExpressionTests in a Debug +
assertions build from current main
- ExpressionTests: 164/164 passed
Co-authored-by: Chen Li <chenlii at fb.com>
Commit: 49904955129c2e84957b94f4bd2f1aca7c64404c
https://github.com/llvm/llvm-project/commit/49904955129c2e84957b94f4bd2f1aca7c64404c
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/test/Lower/OpenMP/target-update-derived-type.f90
Log Message:
-----------
[flang][openmp] Add missing REQUIRES line for -triple amdgcn-amd-amdhsa (#221300)
This fails on build without amd target
```
error: unable to create target: 'No available targets are compatible with triple "amdgcn-amd-amdhsa"'
```
Commit: c5ff89eeae46f3c02a84326db8bad476d98f07e5
https://github.com/llvm/llvm-project/commit/c5ff89eeae46f3c02a84326db8bad476d98f07e5
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/logical-reduction-booleanized-leaves.ll
Log Message:
-----------
[SLP][NFC]Add a test with missed vectorization, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221310
Commit: e912c522d306b62b3f0fdcc7916711802a862799
https://github.com/llvm/llvm-project/commit/e912c522d306b62b3f0fdcc7916711802a862799
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Sema/SemaType.cpp
M clang/test/Sema/nullability.c
Log Message:
-----------
[Sema] Don't crash filling TypeLoc for a reused AttributedType (#220139)
TypeProcessingState::takeAttrForAttributedType assumed every
AttributedType encountered while filling a declarator's TypeLoc had an
(AttributedType*, Attr*) pair registered earlier in the same
TypeProcessingState's AttrsForTypes.
That assumption doesn't hold when the AttributedType is inherited from
another declarator, for example when __typeof__ reuses a type built for
a different declaration. In that case,
TypeProcessingState::getAttributedType, the function that registers the
pair, is never called.
Return a null Attr* instead of calling llvm_unreachable when no entry is
found. This is the Attr* that AttributedTypeLoc uses for the current
declarator's TypeLoc, and null is right here because the current
declarator never spelled the attribute itself.
Fixes #217489
rdar://184781693
Commit: d1d2f30a29515296870f925ea0c2d041851cd961
https://github.com/llvm/llvm-project/commit/d1d2f30a29515296870f925ea0c2d041851cd961
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape.cpp
Log Message:
-----------
Revert "[clang-tidy][NFC] Test all bugprone-exception-escape option modes" (#221306)
The test became flaky on downstream builders after this commit, so
reverting this now.
Reverts llvm/llvm-project#221164
Commit: 90ed5503f3365cdc6af3ef009638e14602223137
https://github.com/llvm/llvm-project/commit/90ed5503f3365cdc6af3ef009638e14602223137
Author: Michael Jones <michaelrj at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/stdlib.yaml
M libc/src/stdlib/CMakeLists.txt
A libc/src/stdlib/getloadavg.h
M libc/src/stdlib/linux/CMakeLists.txt
A libc/src/stdlib/linux/getloadavg.cpp
M libc/test/src/stdlib/CMakeLists.txt
A libc/test/src/stdlib/getloadavg_test.cpp
Log Message:
-----------
[libc] implement getloadavg (#221049)
Implement the `getloadavg` function which was originally added in BSD
but also adopted by linux.
Assisted-by: Automated tooling, human reviewed
Commit: 882cbb45e0c049b6eb1ec1a924acab15312f30a0
https://github.com/llvm/llvm-project/commit/882cbb45e0c049b6eb1ec1a924acab15312f30a0
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/include/flang/Optimizer/Support/InternalNames.h
M flang/lib/Optimizer/Support/InternalNames.cpp
M flang/unittests/Optimizer/InternalNamesTest.cpp
Log Message:
-----------
[flang] Add flag to exclude string literal in isCompilerGenerated (#221305)
Add a flag to exclude string literals read-array constant from
isCompilerGenerated. On by default.
Commit: 2449bae16b32b994282263be4cf1ece9441032f3
https://github.com/llvm/llvm-project/commit/2449bae16b32b994282263be4cf1ece9441032f3
Author: Michael Jones <michaelrj at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/limits.yaml
M libc/include/llvm-libc-macros/limits-macros.h
M libc/include/unistd.yaml
M libc/src/__support/OSUtil/linux/syscall_wrappers/getpriority.h
M libc/src/unistd/CMakeLists.txt
M libc/src/unistd/linux/CMakeLists.txt
A libc/src/unistd/linux/nice.cpp
A libc/src/unistd/nice.h
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/nice_test.cpp
Log Message:
-----------
[libc] implement nice (#221048)
Implement the `nice` function as defined in POSIX, as well as
approrpiate tests.
Assisted-by: Automated tooling, human reviewed.
Commit: d58de5d4825ab186213edc8ad4d190bea5f90d6f
https://github.com/llvm/llvm-project/commit/d58de5d4825ab186213edc8ad4d190bea5f90d6f
Author: Alexandre Ganea <aganea at havenstudios.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/utils/lit/lit/formats/googletest.py
M llvm/utils/lit/lit/main.py
A llvm/utils/lit/tests/googletest-filter-out.py
Log Message:
-----------
[lit] Apply --filter-out to GoogleTest shard results (#220410)
[lit] Apply --filter-out to tests expanded from GoogleTest shards
A GoogleTest shard is a single lit test at discovery time, so
`--filter-out` can only match the shard's name and has no way to
deselect individual gtest cases. The cases only get real names once
`post_process_shard_results` expands the shard's JSON output.
Apply the filter there instead: mark expanded subtests whose full name
matches `--filter-out` as EXCLUDED. Record `has_failure_in_shard` before
the filter is applied, so a shard whose only failing cases were filtered
out is still considered accounted for and is not additionally reported as
a failure of the parent shard.
Add a test which filters out the failing and unresolved cases of the
googletest-format inputs and checks that the run reports 2 excluded
and no failures.
Assisted-By: Claude Opus 5.
Commit: 330b49f03ff4bf8005c9dc95e6ffc37b341bbbd2
https://github.com/llvm/llvm-project/commit/330b49f03ff4bf8005c9dc95e6ffc37b341bbbd2
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/VPlan/memory-checks.ll
Log Message:
-----------
[LV] Add VPlan printing tests for memory runtime check generation (NFC) (#221232)
Add VPlan printing tests with runtime check blocks, as well as coverage
for checks where one of the bounds involves an AddRec.
Commit: c5ce4517a1492cb33a00b8d0bc4d896c45b7e7bb
https://github.com/llvm/llvm-project/commit/c5ce4517a1492cb33a00b8d0bc4d896c45b7e7bb
Author: Dave MacLachlan <dmaclach at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang-tools-extra/include-cleaner/lib/WalkAST.cpp
M clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp
Log Message:
-----------
[include-cleaner] Support Objective-C toll-free bridged casts (#216158)
Handle `CK_CPointerToObjCPointerCast` in `WalkAST` to report implicit
case when converting id/void to an Objective-C type (non-arc only). Also
adds unit tests for various bridged cast types (these were already
covered, but this verifies that they work).
Commit: 9377616866e43201bdc3c0a0b6c8008d83cff5de
https://github.com/llvm/llvm-project/commit/9377616866e43201bdc3c0a0b6c8008d83cff5de
Author: Vedran Miletić <vedran at miletic.net>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/cmake/modules/CrossCompile.cmake
Log Message:
-----------
[cmake] Fix ninja clean failure for cross-compilation native build dir (#200641)
Ninja clean treats every build OUTPUT as a path to remove(). When NATIVE
(the cross-compilation host sub-build directory) was registered directly
as the OUTPUT of the CREATE_<project>_<target> custom command, ninja
tried to remove() it as if it were a file and failed with "Directory not
empty".
Fixed by introducing a stamp file (NATIVE/created.stamp) as the sole
CMake OUTPUT of that custom command. The stamp file is what ninja cleans
(a single file removal), while make_directory remains idempotent on
subsequent builds.
Commit: d4aa8a934cc81a9ceab6cedfdc92eeefa936c0f1
https://github.com/llvm/llvm-project/commit/d4aa8a934cc81a9ceab6cedfdc92eeefa936c0f1
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M mlir/test/Target/LLVMIR/omptarget-debug-runtime-call-loc.mlir
Log Message:
-----------
[OMPIRBuilder] Keep the target construct's location for the deinit call (#221303)
#217407 gave __kmpc_target_init and __kmpc_target_deinit a debug
location by setting the outlined function's location once, before
generating the target body. The init call is emitted before the body and
keeps it, but the deinit call is emitted after, and by then the body may
have replaced it.
The body callback builds the body with its own IRBuilder, so nothing it
emits can disturb the one createOutlinedFunction() uses for the
epilogue. But a body holding another OpenMP construct, a nested parallel
say, calls OpenMPIRBuilder::createParallel, and that leaves the builder
pointing at the wrong debug location, or at none at all. The deinit call
then silently loses its !dbg again.
The test added with #217407 uses a target region whose body is a single
store. Such a body never calls back into OpenMPIRBuilder, the location
survives, and the gap was not visible.
Re-establish the outlined function's location after the body callback,
before emitting the epilogue. The epilogue belongs to the target
construct rather than to whatever the body emitted last, so this is the
location it should carry, and init and deinit go back to agreeing.
Extends the existing test with a nested parallel, which fails on the
deinit check without this change.
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: c3fa882edb340d4628e7b76d312adc267977fac9
https://github.com/llvm/llvm-project/commit/c3fa882edb340d4628e7b76d312adc267977fac9
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll
M llvm/test/CodeGen/NVPTX/fma-assoc.ll
M llvm/test/CodeGen/NVPTX/fma-relu-contract.ll
M llvm/test/CodeGen/NVPTX/fma.ll
M llvm/test/CodeGen/NVPTX/fp-contract-f32x2.ll
M llvm/test/CodeGen/NVPTX/fp-contract.ll
M llvm/test/CodeGen/NVPTX/fp-literals.ll
M llvm/test/CodeGen/NVPTX/scalarize-non-coalescable-v2f32.ll
Log Message:
-----------
NVPTX: Drop global AllowFPOpFusion read from allowFMA (#221313)
We're near the end of the decade long effort to eliminate the
fast math fields from TargetOptions. This is one of the few
remaining consumers, so remove it. Update incidentally
changed tests by adding contract flags.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 46b146da9c4a2af790a7b5125c7be50a981aef29
https://github.com/llvm/llvm-project/commit/46b146da9c4a2af790a7b5125c7be50a981aef29
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/test/CIR/CodeGen/agg-atomic-cast.c
M clang/test/CIR/CodeGen/delegating-ctor.cpp
M clang/test/CIR/CodeGen/implicit-value-init-expr.cpp
M clang/test/CIR/CodeGen/new.cpp
M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
Log Message:
-----------
[CIR] Emit Memset in emitNullInitialization for default inits case (#221029)
Emit the cir.libc.memset op in emitNullInitialization for the default
inits case, which ends up with emitted IR identical to the original
codegen and eliminates the need to create a private global instance of a
struct with zero init
Commit: 3a96f29e9279d54b47ab800a1d0e57042b85448c
https://github.com/llvm/llvm-project/commit/3a96f29e9279d54b47ab800a1d0e57042b85448c
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
A libc/utils/cmake_format.py
A libc/utils/cmake_format_test.py
Log Message:
-----------
[libc] Add CMake formatting utility (#213102)
Added libc/utils/cmake_format.py and libc/utils/cmake_format_test.py to
format LLVM and subproject CMake files according to LLVM-libc formatting
conventions.
The formatter operates in three passes:
* Lexer: Tokenises input using the cmake-language(7) EBNF specification
into typed Token objects with line and column position tracking.
* Dynamic Schema Scanner: Pre-scans repository CMake modules and
function blocks to learn option, single-value, and multi-value keyword
argument schemas from cmake_parse_arguments and set calls.
* Token-Stream Formatter: Applies 2-space control block nesting, keyword
casing, comment buffering, and multi-line list indentation in a single
pass.
The utility supports parallel multi-core execution (-j/--jobs) and
in-place file formatting (-i/--inplace). Added 44 unit tests covering
formatting rules, edge cases, schema scanning, and error diagnostics.
Assisted-by: Automated tooling, human reviewed.
Commit: 75c039164e55107151f1b1c72dc7aab4265934ff
https://github.com/llvm/llvm-project/commit/75c039164e55107151f1b1c72dc7aab4265934ff
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/fold-tail-low-trip-count.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-no-dotprod.ll
M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
M llvm/test/Transforms/LoopVectorize/reduction.ll
M llvm/test/Transforms/LoopVectorize/replace-first-order-recurrence-by-versioned-iv.ll
Log Message:
-----------
[VPlan] Preserve nneg when expanding SCEVZeroExtendExpr. (#221322)
Add nneg to ZExt when expanding a SCEV where SCEV can prove it is
non-negative, matching behavior of IR SCEVExpander::visitZeroExtendExpr.
Commit: a65128ed4da92fdd2088226a77b598f8294038eb
https://github.com/llvm/llvm-project/commit/a65128ed4da92fdd2088226a77b598f8294038eb
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Log Message:
-----------
[DAG] SplitVecRes_VECTOR_COMPRESS - rename MaskVT -> LoMaskVT. NFC. (#221285)
MaskVT refers to LoMask's type not the original Mask type.
Noticed in #215772 - avoids some potential Wshadow confusion.
Commit: f1e6b2e281809a3c69922fcaf9e18b14bb5052d2
https://github.com/llvm/llvm-project/commit/f1e6b2e281809a3c69922fcaf9e18b14bb5052d2
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/induction-cost.ll
Log Message:
-----------
[VPlan] Extend induction cost test coverage (NFC). (#221323)
Widen induction-cost.ll's filter to cover all induction recipes and the
canonical IV increment, run it for two VFs, and add the FP and pointer
induction shapes it was missing entirely: scalarized
FAdd/FSub/invariant-step inductions, a dead induction in the vector
loop, one with both wide and scalar users, one inside a replicate
region, a fully unrolled one, and FP-plus-pointer and pointer-only
loops.
Commit: d69cde185b87f6296bcde097354b2400d777491e
https://github.com/llvm/llvm-project/commit/d69cde185b87f6296bcde097354b2400d777491e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-icmp-mixed-extends.ll
Log Message:
-----------
[SLP][NFC]Add a test with incorrect comparison after vectorization, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221332
Commit: f94b3d1fd66dd262a149a98199c7d158ddd8f0bd
https://github.com/llvm/llvm-project/commit/f94b3d1fd66dd262a149a98199c7d158ddd8f0bd
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/pr48727.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-128.ll
M llvm/test/CodeGen/X86/vector-trunc-nowrap.ll
M llvm/test/CodeGen/X86/vector-trunc.ll
Log Message:
-----------
[X86] combineX86ShuffleChain - only fold to truncate(concat(v1,v2)) if the concat is free (#221280)
Ensure we don't increase the shuffle chain depth
Commit: b84b2d76abc28c5f5a03e3574302c5716b32569c
https://github.com/llvm/llvm-project/commit/b84b2d76abc28c5f5a03e3574302c5716b32569c
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-icmp-mixed-extends.ll
M llvm/test/Transforms/SLPVectorizer/X86/minbw-node-used-twice.ll
Log Message:
-----------
[SLP]Fix narrowing of icmp with mismatched operand extensions
Keep the narrow compare only if the predicate matches the operand
signedness; otherwise extend the operands back to the original
compared type.
Fixes #221240
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221336
Commit: 3b0bb49c3f56a0560e2d68dd3358f580feb88092
https://github.com/llvm/llvm-project/commit/3b0bb49c3f56a0560e2d68dd3358f580feb88092
Author: Stan Ulbrych <stan at python.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp
M compiler-rt/test/ubsan/TestCases/Integer/summary.cpp
Log Message:
-----------
[compiler-rt][ubsan] Fix trailing whitespace in SUMMARY line when function is unknown (#221335)
Fixes #30851. ReportErrorSummary always rendered "%L %F", but %F expands
to nothing when the function name is unknown, leaving a dangling space
at the end of the line. Instead, oly add the function name if it is
known.
Commit: a0348d93ff547a8c374273473f6f41e329fa5485
https://github.com/llvm/llvm-project/commit/a0348d93ff547a8c374273473f6f41e329fa5485
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Lower/CUDA/cuda-gpu-pinned2.f90
Log Message:
-----------
[flang][cuda] Make sure that CUDA is enabled when adding PINNED implicit attribute (#221334)
PINNED was not guarded like MANAGED. Just make a general guard for both.
Commit: 1315e04a5c0b8e4f0f789c99a87970314f547f30
https://github.com/llvm/llvm-project/commit/1315e04a5c0b8e4f0f789c99a87970314f547f30
Author: SharonXSharon <xiaoranxu.nju at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
A compiler-rt/test/sanitizer_common/TestCases/Posix/opendir_null.cpp
Log Message:
-----------
[memprof] check path in opendir interceptor (#221309)
The sanitizer `opendir` interceptor unconditionally calls
`internal_strlen(path)` before forwarding to the real function.
Passing `nullptr` therefore causes the sanitizer runtime itself to
dereference address zero.
Add a unit test using a `LD_PRELOAD` shim to verify that a null path
reaches the real implementation without crashing the interceptor.
---------
Co-authored-by: Sharon Xu <sharonxu at fb.com>
Commit: 6bfbb2ef1bf54cf1b0491226094a2a7bd5c6d6c5
https://github.com/llvm/llvm-project/commit/6bfbb2ef1bf54cf1b0491226094a2a7bd5c6d6c5
Author: Savvas Shiakas <savvas.shiakas at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/docs/ClangFormatStyleOptions.md
M clang/include/clang/Format/Format.h
M clang/lib/Format/Format.cpp
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/SortIncludesTest.cpp
Log Message:
-----------
[clang-format] Add FilesBeforeFolders option to SortIncludes (#208954)
Add a new `SortIncludes.FilesBeforeFolders` boolean option that, when
enabled, sorts includes so that files in a directory appear before
subdirectories at each level, recursively. Within a level, files and
subdirectories are each sorted alphabetically.
For example:
```
true: false (default):
#include "x.h" vs. #include "bar/alpha/e.h"
#include "y.h" #include "bar/alpha/f.h"
#include "z.h" #include "bar/beta/d.h"
#include "bar/g.h" #include "bar/g.h"
#include "bar/h.h" #include "bar/h.h"
#include "bar/i.h" #include "bar/i.h"
#include "bar/alpha/e.h" #include "foo/a.h"
#include "bar/alpha/f.h" #include "x.h"
#include "bar/beta/d.h" #include "y.h"
#include "foo/a.h" #include "z.h"
```
Assisted-by: Github Copilot CLI
Commit: 7ea47d18f6e16d83faee97572d86a3ff363f39eb
https://github.com/llvm/llvm-project/commit/7ea47d18f6e16d83faee97572d86a3ff363f39eb
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang-rt/lib/cuda/allocator.cpp
Log Message:
-----------
[flang][cuda] Unify locking regime for the allocation table (#221341)
The lock was acquired in insertAsyncDeviceAllocation but not in other
function. Move the lock outside of the function so the locking regime is
homogeneous.
Commit: b4ec8337f966a14c6cfb9eab424eba0c3df54763
https://github.com/llvm/llvm-project/commit/b4ec8337f966a14c6cfb9eab424eba0c3df54763
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fpow.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fpowi.mir
Log Message:
-----------
[AMDGPU] Carry the fpow expansion flags through its f32 round trip (#220681)
But do not carry ninf across the fpow round trip.
Commit: 9abbc9183d2231c2e44198100a6cd22ef66e2eb8
https://github.com/llvm/llvm-project/commit/9abbc9183d2231c2e44198100a6cd22ef66e2eb8
Author: SharonXSharon <xiaoranxu.nju at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/test/CodeGen/unique-internal-linkage-names.cpp
M clang/test/DebugInfo/Generic/unique-internal-linkage-names-dwarf.c
M clang/test/DebugInfo/Generic/unique-internal-linkage-names-dwarf.cpp
Log Message:
-----------
[clang] Revert "Disable Unique Internal Linkage Names for internal global vars." (#219261)
https://reviews.llvm.org/D98392 "Disable Unique Internal Linkage Names
for internal global vars" in 2021. Summary said "Demanglers do not
recognize clone suffixes for global variables, so disable unique linkage
suffixes until demanglers can be fixed."
Now LLVM's demangler handles suffixed data symbols today:
$ llvm-cxxfilt _ZL8glob_foo.__uniq.123
glob_foo (.__uniq.123)
So reverting the change.
The asm-label exclusion added is preserved and now applies to variables
too: a static variable with an asm label keeps its label verbatim.
---------
Co-authored-by: Sharon Xu <sharonxu at fb.com>
Commit: 183d180db76a10b099d68e3dc931a279d6e62314
https://github.com/llvm/llvm-project/commit/183d180db76a10b099d68e3dc931a279d6e62314
Author: robertvirany <robertvirany at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
A llvm/test/CodeGen/NVPTX/volatile-local.ll
Log Message:
-----------
[NVPTX] Support volatile local loads and stores in PTX 9.1 (#217764)
PTX ISA 9.1 adds support for the `.volatile` qualifier with the `.local`
state space on `ld` and `st` instructions.
Emit `ld.volatile.local` and `st.volatile.local` when targeting PTX 9.1
or later. Earlier PTX versions retain the existing plain local
load/store lowering.
Add code-generation coverage for both PTX 9.0 and PTX 9.1.
Commit: bcba495a500fc4bf57c28c91aee4757d8a01a774
https://github.com/llvm/llvm-project/commit/bcba495a500fc4bf57c28c91aee4757d8a01a774
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
Log Message:
-----------
Wasm: Remove unnecessary cast and error (#221179)
Commit: 7669fda940f3350eae2d50c09ec4c9939e930bda
https://github.com/llvm/llvm-project/commit/7669fda940f3350eae2d50c09ec4c9939e930bda
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/test/TableGen/GlobalISelEmitter/CustomPredicate.td
M llvm/test/TableGen/GlobalISelEmitter/GlobalISelEmitter.td
Log Message:
-----------
[NFC][SelectionDAG] Give the contract PatFrags a GlobalISel predicate (#219725)
The contract PatFrags carried only a PredicateCode, so GlobalISelEmitter skipped every pattern built on them.
Assisted-By: Claude Code 5
Commit: 657af0e310347a44afad9bfd4e9189da0a638b73
https://github.com/llvm/llvm-project/commit/657af0e310347a44afad9bfd4e9189da0a638b73
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/docs/DebuggingLLVM.md
Log Message:
-----------
[Docs] Document IR printing options (#221260)
Document the pass-by-pass IR printing options in DebuggingLLVM.md.
This covers:
- selecting passes by name or invocation number;
- change-only printing and output scope;
- filtering by pass, function, and source location;
- source-location filter syntax, matching behavior, and an example;
- persistent metadata IDs in repeated debug dumps.
This is a follow-up to #203393 and the documentation request in
https://github.com/llvm/llvm-project/pull/203393#pullrequestreview-5103117577.
Commit: 5478e3e2515aebd50d1c8782b4ebee4ba12724c9
https://github.com/llvm/llvm-project/commit/5478e3e2515aebd50d1c8782b4ebee4ba12724c9
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaLookup.cpp
M llvm/include/llvm/ADT/FoldingSet.h
Log Message:
-----------
[clang][Sema] Use DenseMap for SpecialMemberCache (NFC) (#221304)
This patch replaces llvm::FoldingSet with llvm::DenseMap for
SpecialMemberCache in Sema.
SpecialMemberCache is fundamentally a key-value cache that maps a class
and qualification flags to a SpecialMemberOverloadResult. The current
implementation is heavy because each entry in FoldingSet requires a
160-byte SpecialMemberOverloadResultEntry on the bump allocator arena.
LookupSpecialMember returns SpecialMemberOverloadResult by value. As
such, there is no need to use the bump allocator for pointer stability.
This patch also removes FastFoldingSetNode as we are removing the last
use.
Assisted-by: Antigravity
Commit: 2bce2d4f85937368dbdf91e40733a07309624ed5
https://github.com/llvm/llvm-project/commit/2bce2d4f85937368dbdf91e40733a07309624ed5
Author: Derek Schuff <dschuff at chromium.org>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/SemaWasm.h
M clang/lib/CodeGen/Targets/WebAssembly.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaWasm.cpp
A clang/test/CodeGen/WebAssembly/wasm-global-export.c
A clang/test/CodeGen/WebAssembly/wasm-global-import.c
A clang/test/CodeGen/WebAssembly/wasm-import-error.c
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
M clang/test/Sema/attr-wasm.c
M llvm/lib/MC/WasmObjectWriter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
M llvm/test/CodeGen/WebAssembly/export-name.ll
A llvm/test/CodeGen/WebAssembly/import-error.ll
M llvm/test/CodeGen/WebAssembly/import-module.ll
Log Message:
-----------
[WebAssembly] Add support for import and export name attributes on global vars (#201966)
Currently these attributes are only supported on functions.
This change adds support for import_name, export_module and export_name
to global variables.
For addrspace(1) global variables, which lower to wasm globals, they are
directly appended to the
wasm export. For addrspace 0 globals, the address is exported.
It also fixes the behavior of the existing export_name attribute on
functions, implementing correct
merging behavior to handle cases of duplicate or conflicting
declarations.
Assisted-by: Antigravity
Commit: d83d37cde33d3d8408c6177b0cbac38b4f7d4214
https://github.com/llvm/llvm-project/commit/d83d37cde33d3d8408c6177b0cbac38b4f7d4214
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CodeGen/ABIInfo.cpp
M clang/lib/CodeGen/ABIInfo.h
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/CodeGen/Targets/X86.cpp
A clang/test/CodeGenCXX/windows-x86_64-varargs.cpp
Log Message:
-----------
[clang][win] Extend scoped enum varargs for the Windows x64 ABI (#221356)
Fixes #220712
Scoped enum values don't undergo default integer promotions, so they
don't naturally get extended to 32-bit integers. However, MSVC appears
to extend scoped enum values, *specifically* when they appear as
variadic arguments, but *not* when the are passed as fixed arguments:
https://godbolt.org/z/oGozjMnEn
I think we should do the same. I think the main upshot here is that
users will be able to `printf("%d\n", my_u8_enum);` without casting to
`int` explicitly. Even if the `va_arg(ap, int)` on the printf side is
*technically* UB, this seems like a sharp corner we really ought to sand
off.
I dug up some references for how we handle this on the SysV side, and it
seems that we do extend there: a71cc1536167f44f542da2857685f01aa29c0e55
Codex decided it was worth plumbing the `IsNamedArg` boolean through the
ARM64EC classification side channel for good measure.
Assisted-by: Codex
Commit: b6abc5ec3b4cf77853d534d67c61de0363c5e35e
https://github.com/llvm/llvm-project/commit/b6abc5ec3b4cf77853d534d67c61de0363c5e35e
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/Transforms/ACCRoutineToGPUFunc.cpp
Log Message:
-----------
[mlir][openacc] Avoid per-routine module walks in ACCRoutineToGPUFunc (#221345)
ACCRoutineLowering uniquifies the specialized device copy (foo -> foo_0)
while acc.specialized_routine still names the original host function.
Moving those copies into gpu.func then called replaceAllSymbolUses on
the whole module once per routine, which is quadratic in the number of
specialized routines.
Collect the src->dest renames and rewrite symbol uses in a single walk
of the module body (still skipping nested symbol tables). Insert the
gpu.func ops under the final names afterward.
On a large TU this speeds up this pass by 3.5x
Commit: bbf0680e6bc2e887e12138ab037ba90bcd12298e
https://github.com/llvm/llvm-project/commit/bbf0680e6bc2e887e12138ab037ba90bcd12298e
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/LowerTypeTests.h
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
M llvm/unittests/Transforms/IPO/LowerTypeTests.cpp
Log Message:
-----------
[NFC][LowerTypeTests] Support ordering in GlobalLayoutBuilder with Less comparator (#221044)
Allow callers to guide fragment placement in GlobalLayoutBuilder using
an optional comparator.
This is a prerequisite for
https://github.com/llvm/llvm-project/pull/221046,
which reorders CFI jump table entries according to profile and ThinLTO
call edge hotness. Passing an ordering comparator allows
GlobalLayoutBuilder
to sort elements within strict types and place the globally hottest
fragment at the end of the jump table, while preserving 100% contiguity
(single range checks without holes) for all type subsets.
PR Stack:
* https://github.com/llvm/llvm-project/pull/220776
* https://github.com/llvm/llvm-project/pull/221043
* ➤ https://github.com/llvm/llvm-project/pull/221044
* https://github.com/llvm/llvm-project/pull/221045
* https://github.com/llvm/llvm-project/pull/221046
Assisted-by: Gemini
Commit: 2cbdbc9ad7ff40457023c8f353161069df8eb57f
https://github.com/llvm/llvm-project/commit/2cbdbc9ad7ff40457023c8f353161069df8eb57f
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/docs/CMakeLists.txt
M clang/include/clang/Options/ClangOptionDocs.td
M clang/include/clang/Options/Options.td
M clang/utils/TableGen/ClangOptionDocEmitter.cpp
Log Message:
-----------
[clang][docs] Generate command line reference as Markdown (#220385)
Update the Clang option documentation emitter to generate MyST Markdown
for the generated command-line reference page. I discovered and
preserved a complicated existing Sphinx program-name workaround for
option IDs that collide after punctuation normalization.
The only markup on Options.td is in the DocBrief fields, and those use
very little markup, so those were all migrated by the agent, not
rst2myst. I unindented the multi-line DocBrief bodies, because
indentation has semantics in both markdown (list indentation) and reST.
Tracking issue: #201242
0.1288% pixels differ in the rendered HTML page.
Assisted-by: Codex
Commit: 9faf317eff5ef76aff7addfbd0360f380e803026
https://github.com/llvm/llvm-project/commit/9faf317eff5ef76aff7addfbd0360f380e803026
Author: Chris Apple <cja-private at pm.me>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
M clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
M clang-tools-extra/docs/ReleaseNotes.md
M clang-tools-extra/test/clang-tidy/infrastructure/clang-tidy-diff.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h
Log Message:
-----------
[clang-tidy] Normalize windows line filter paths (#217038)
`git | clang-tidy-diff.py` emits line-filter paths with forward slashes,
while Windows compilation databases use a mix of forwards and backwards
slashes. These paths are then silently rejected (and no report is
emitted).
Reproduce on windows via:
```
git.exe diff -U0 main -- . | python clang-tidy-diff.py -p1 -path .\build"
```
Git will produce a path like:
```
my/source/file.cpp
```
The compilation database has files with entries like this:
```
"file": "C:\\dev\\repo\\my\\source\\file.cpp",
"output": "my\\source\\CMakeFiles\\source.dir\\file.cpp.obj"
```
Clang tidy tries to match these paths, but fails on the slash
comparison.
Do a few things to fix this:
* Normalize filter paths with `llvm::sys::path::convert_to_slash()`
before matching the compilation database. This is a no-op on posix, but
converts windows forward slashes to backwards.
* Normalize `Filter.Name` paths when parsed
* Write a couple more unit tests for windows specific paths that expose
this behavior
* Enable another UNSUPPORTED test for windows clang-tidy-diff (and make
it run in a nested directory to exercise the issue
Fixes https://github.com/llvm/llvm-project/issues/112038.
Commit: 158e0f34bafdd4fd39e1fb4129e64244eea6904d
https://github.com/llvm/llvm-project/commit/158e0f34bafdd4fd39e1fb4129e64244eea6904d
Author: David Rivera <davidriverg at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/test/CIR/CodeGenCUDA/builtins-nvvm-atomic.cu
Log Message:
-----------
[CIR][NVPTX] Lower __nvvm_atom_cas_gen_* builtins (#221261)
Commit: b5fe885e5d2d96c353887671184560d12c90cb03
https://github.com/llvm/llvm-project/commit/b5fe885e5d2d96c353887671184560d12c90cb03
Author: David Rivera <davidriverg at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
M clang/test/CIR/CodeGenBuiltins/NVPTX/builtins-nvptx-sync.cu
Log Message:
-----------
[CIR][NVPTX] Lower __nvvm_bar0_{and,or,popc} builtins (#221255)
Commit: b9d19fe4f3b6ecd691451eedaecf90445a869460
https://github.com/llvm/llvm-project/commit/b9d19fe4f3b6ecd691451eedaecf90445a869460
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M .ci/metrics/Dockerfile
Log Message:
-----------
[CI] Require hashes for pip install in metrics container (#221373)
We generate the requirements lock file with hashes, but did not actually
require them before now, which is best practice.
Commit: 977f609431050144483c92dc8a3dd170c38167f6
https://github.com/llvm/llvm-project/commit/977f609431050144483c92dc8a3dd170c38167f6
Author: Andres-Salamanca <andrealebarbaritos at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/test/CIR/CodeGenCoroutines/coro-builtins.cpp
Log Message:
-----------
[CIR] Add cir.coro.intrinsic.promise Op (#221124)
This PR adds `cir.coro.intrinsic.promise`, representing
`llvm.coro.promise`, to the set of coroutine intrinsic ops. It also adds
the corresponding lowering to `llvm.coro.promise`.
Commit: d0617ffd4bc12236c4adfacfd4ca600297150d08
https://github.com/llvm/llvm-project/commit/d0617ffd4bc12236c4adfacfd4ca600297150d08
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M .ci/utils.sh
Log Message:
-----------
[CI] Require hashes for premerge python dep installation (#221376)
This is best practice and the requirements file is already a lockfile
with hashes.
Commit: 3efd20d463e1b1210d2ff07cd79b68d6fa215f24
https://github.com/llvm/llvm-project/commit/3efd20d463e1b1210d2ff07cd79b68d6fa215f24
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Log Message:
-----------
[RISCV] Remove unused tablegen classes. NFC (#221286)
This removes VPatBinaryFPSDNode_R_VF and VPatBinaryFPVL_R_VF. The have
_RM version that are used instead.
Commit: 2fd31faf6ec53ad7fc0c92355856367b9c5f3ad8
https://github.com/llvm/llvm-project/commit/2fd31faf6ec53ad7fc0c92355856367b9c5f3ad8
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/RegAllocFast.cpp
Log Message:
-----------
[RegAllocFast] Assert that isTiedToNotUndef() takes a def. NFC (#221120)
Improve a comment after #219482. And tidy MBB.liveins()
Commit: a638ce4ea02fe59d0ffba4a81408ddb86cfa0ecc
https://github.com/llvm/llvm-project/commit/a638ce4ea02fe59d0ffba4a81408ddb86cfa0ecc
Author: Qiongsi Wu <qiongsiwu at gmail.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M clang/include/clang/Basic/AtomicLineLogger.h
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/DependencyScanning/DependencyScanningWorker.h
M clang/include/clang/Options/Options.td
M clang/lib/Basic/AtomicLineLogger.cpp
M clang/lib/Driver/ModulesDriver.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
A clang/test/ClangScanDeps/depscan-log-path.c
A clang/test/ClangScanDeps/logging-driver-flag.c
M clang/test/ClangScanDeps/logging-simple-by-name.c
M clang/test/ClangScanDeps/logging-simple.c
A clang/test/Driver/modules-driver-depscan-log.cpp
M clang/unittests/Basic/AtomicLineLoggerTest.cpp
Log Message:
-----------
[clang][DependencyScanning] Add a Clang Driver Option to Enable Dependency Scanning Logging (#211966)
This PR adds a clang driver option to enable dependency scanning
logging. The important implementation detail is that the
`DependencyScanningService` holds a single instance of the logger, and
we need to route the option to the logger per scan. An `enable` method
is added to the logger's API to enable it with thread safety. A second
detail worth calling out is that the option is a driver option, so if a
`cc1` command is passed directly to the scanner, the option will not be
processed.
Commit: 8c536a50e6f06e06031500e8933a34226cca1ec4
https://github.com/llvm/llvm-project/commit/8c536a50e6f06e06031500e8933a34226cca1ec4
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M .github/workflows/containers/github-action-ci-windows/Dockerfile
Log Message:
-----------
[CI] Remove psutil from Windows container (#221377)
Commit: ef7bfdcfd4e3b75db55b5d335e1cfca334d811ca
https://github.com/llvm/llvm-project/commit/ef7bfdcfd4e3b75db55b5d335e1cfca334d811ca
Author: yebinchon <yebin.chon at princeton.edu>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M flang/lib/Lower/Allocatable.cpp
A flang/test/Lower/OpenACC/acc-declare-host-associated-allocatable.f90
Log Message:
-----------
[flang][OpenACC] Resolve associations before testing declare flags (#221346)
The OpenACC declare flags are set by semantics on a single symbol: the
one resolved in the scope containing the !$acc declare directive. Any
other scope naming the same entity reaches it through an association
symbol, and those symbols carry their own, empty flag sets.
The allocate and deallocate action helpers tested the symbol taken
straight from the ALLOCATE or DEALLOCATE statement. For an allocatable
declared in a host scope and allocated in an internal subprogram the
AccDeclare test
therefore failed, no acc.declare_action attribute was attached, and
ACCDeclareActionConversion had nothing to convert. The emitted recipes
were never called, so the device copy was neither created on allocation
nor deleted on deallocation.
Resolve to the ultimate symbol and pass it on. Forwarding the resolved
symbol is required because the deallocation attach helpers independently
re-test the data clause flags.
This matches the rest of the OpenACC lowering, which already resolves
before reading these flags. Recipe names are unaffected because
mangleName resolves associations itself before mangling.
---------
Co-authored-by: Yebin Chon <ychon at nvidia.com>
Commit: fdc3afc4b6431038217136a04314e7fd90b24938
https://github.com/llvm/llvm-project/commit/fdc3afc4b6431038217136a04314e7fd90b24938
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M .github/workflows/containers/github-action-ci-windows/Dockerfile
M .github/workflows/containers/github-action-ci/Dockerfile
Log Message:
-----------
[CI][Github] Bump premerge CI containers to LLVM 23 (#218818)
To ensure we're using the latest release version of clang and friends
for things like warnings.
Commit: c510577ad11d4c965076935b8fabf1dfe8c5703b
https://github.com/llvm/llvm-project/commit/c510577ad11d4c965076935b8fabf1dfe8c5703b
Author: David Rivera <davidriverg at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
M clang/test/CIR/CodeGenCUDA/builtins-nvvm-atomic.cu
Log Message:
-----------
[CIR][NVPTX] Lower unscoped __nvvm_atom_add_gen_{f,d} (#221262)
Commit: 0f893a574f99837ab961348126f7a3cb5b7e4553
https://github.com/llvm/llvm-project/commit/0f893a574f99837ab961348126f7a3cb5b7e4553
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
R llvm/test/CodeGen/Generic/bswap.ll
M llvm/test/Integer/2007-01-19-TruncSext.ll
M llvm/test/Transforms/LICM/2003-12-11-SinkingToPHI.ll
Log Message:
-----------
[LLVM] Remove run lines that use the lli interpreter
We eventually want to get rid of the lli interpreter, and it doesn't
seem to be doing anything useful in any of these tests.
1. 2007-01-19-TruncSext.ll - Seems to only be testing the interpreter.
2. 2003-12-11-SinkingToPHI.ll - Should be asserting output like all the
other Transforms tests.
3. bswap.ll - Doesn't even test what it purports to and the coverage is
redundant with target-specific bswap lowering tests.
Reviewers: arsenm, nikic
Pull Request: https://github.com/llvm/llvm-project/pull/220083
Commit: 5445a88935120d016d28d79bab58e612da5c8c5d
https://github.com/llvm/llvm-project/commit/5445a88935120d016d28d79bab58e612da5c8c5d
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/Mips/MipsInstrInfo.td
M llvm/lib/Target/Mips/MipsMSAInstrInfo.td
M llvm/lib/Target/Mips/MipsSEISelLowering.cpp
M llvm/test/CodeGen/Mips/fp-contract.ll
Log Message:
-----------
Mips: Drop use of AllowFPOpFusion (#221324)
Commit: 6bc35bba316a61c71b8b0adf817d7458d060d5e0
https://github.com/llvm/llvm-project/commit/6bc35bba316a61c71b8b0adf817d7458d060d5e0
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M orc-rt/test/unit/bedrock/SessionTest.cpp
Log Message:
-----------
[orc-rt] Fix -Wctad-maybe-unsupported warning in unit test. (#221399)
Avoid the warning by naming the mutex type on scoped_lock.
'std::scoped_lock' may not intend to support class template argument
deduction
Commit: d756ec0590cbc6ab39abcb492df1a340e226972b
https://github.com/llvm/llvm-project/commit/d756ec0590cbc6ab39abcb492df1a340e226972b
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M orc-rt/test/unit/support/ErrorExceptionInteropTest.cpp
Log Message:
-----------
[orc-rt] Check HandlerRan flag in unit test. (#221406)
Verifies that the expected catch handler ran, and eliminates an unused
variable warning.
Commit: bb625414d6ff12d8dba713b17562fa984de7e85c
https://github.com/llvm/llvm-project/commit/bb625414d6ff12d8dba713b17562fa984de7e85c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/fmuladd.f16.ll
M llvm/test/CodeGen/AMDGPU/fmuladd.f32.ll
M llvm/test/CodeGen/AMDGPU/fmuladd.f64.ll
M llvm/test/CodeGen/AMDGPU/fmuladd.v2f16.ll
Log Message:
-----------
AMDGPU: Drop AllowFPOpFusion from FMA formation (#221409)
Exclusively use the flags so AllowFPOpFusion can be removed.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 6a74483027ad46b641ba2b472e5c4429d2db56f4
https://github.com/llvm/llvm-project/commit/6a74483027ad46b641ba2b472e5c4429d2db56f4
Author: Hardik Kumar <hardikxk at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang/lib/Basic/Targets/AMDGPU.cpp
Log Message:
-----------
[clang][amdgpu] resolve type mismatch warning in conditional comparison (#220526)
The following warning is generated because of a mismatch in the object
types.
```bash
/home/xane/Documents/shallowllvm/llvm-project/clang/lib/Basic/Targets/AMDGPU.cpp: In constructor ‘clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(const llvm::Triple&, const clang::TargetOptions&)’:
/home/xane/Documents/shallowllvm/llvm-project/clang/lib/Basic/Targets/AMDGPU.cpp:200:37: warning: enumerated mismatch in conditional expression: ‘llvm::AMDGPU::ArchFeatureKind’ vs ‘llvm::AMDGPU::R600FeatureKind’ [-Wenum-compare]
200 | GPUFeatures(Triple.isAMDGCN() ? llvm::AMDGPU::FEATURE_NONE
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
201 | : llvm::AMDGPU::getArchAttrR600(GPUKind)) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[1/166] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/obj.clangCodeGen.dir/CodeGenPGO.cpp.o^C
```
The type of `GpuFeatures` and return value of `getArchAttrR600()` is
ultimately an `unsigned` int value. Static cast the return value of the
method to `unsigned` to resolve the warning without any functional or
breaking changes.
Signed-off-by: Hardik Kumar <hardikxk at gmail.com>
Commit: 8117819e5593ec3d69a5af3f2197e1eab55e20c1
https://github.com/llvm/llvm-project/commit/8117819e5593ec3d69a5af3f2197e1eab55e20c1
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/test/CIR/IR/enum-attrs.cir
Log Message:
-----------
[CIR] Migrate MemOrder and SyncScopeKind off IntegerAttr (#220884)
MemOrder and SyncScopeKind, the enums the atomic operations share,
generated
IntegerAttr subclasses with no dialect spelling of their own.
Both now set genSpecializedAttr = 0 and gain CIR_EnumAttr wrappers,
spelling
`#cir.mem_order<seq_cst>` and `#cir.sync_scope<system>`, and the atomic
operations wrap their arguments in `enum()` to keep the bare keyword.
Commit: 60b5f9a06722dfc2c2e0661f0dedf52d60bcaddf
https://github.com/llvm/llvm-project/commit/60b5f9a06722dfc2c2e0661f0dedf52d60bcaddf
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/include/llvm/Support/GenericLoopInfo.h
M llvm/include/llvm/Support/GenericLoopInfoImpl.h
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/test/Transforms/LoopUnroll/unloop.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch2.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch3.ll
M llvm/test/Transforms/SimpleLoopUnswitch/endless-unswitch.ll
M llvm/test/Transforms/SimpleLoopUnswitch/guards.ll
M llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-select.ll
M llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch.ll
M llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch-loop-and-block-dispositions.ll
M llvm/test/Transforms/SimpleLoopUnswitch/update-scev-3.ll
M llvm/unittests/Analysis/LoopInfoTest.cpp
Log Message:
-----------
[LoopInfo] Add recompute() and use it in SimpleLoopUnswitch (#213514)
recomputeLoopBlockSet and rebuildLoopAfterUnswitch reconstruct by hand
with significant complexity, but analyze() cannot replace them: it
allocates a fresh Loop for every header, while ScalarEvolution stores
the loop pointer in every AddRec, the loop analysis manager keys its
cache on it, and the pass manager hands the running pass a `Loop &`.
Add LoopInfoBase::recompute, which reruns the analysis over the current
CFG but refills the loop each header already had.
Block lists now come out in the analysis's canonical order rather than
the original order filtered, renumbering cloned blocks in eight
SimpleLoopUnswitch tests.
Aided by Claude Opus 5
Commit: 88280062751dd6f21edd223cdf59448a9b972d66
https://github.com/llvm/llvm-project/commit/88280062751dd6f21edd223cdf59448a9b972d66
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Log Message:
-----------
DAGCombiner: Drop AllowFPOpFusion from isContractableFMUL (#221410)
This is a step toward removing the AllowFPOpFusion field from
TargetOptions.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 8d8535e9846d2ff035aae345eda3a30aa24fe36e
https://github.com/llvm/llvm-project/commit/8d8535e9846d2ff035aae345eda3a30aa24fe36e
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang-tools-extra/clang-tidy/.clang-tidy
Log Message:
-----------
[clang-tidy][NFC] Disable misc-include-cleaner check (#221417)
This checks seem to give too many FP, disabling it for now.
E.g. it wants to always remove `SmallString.h` even if the header is
actually needed.
Commit: 314fef96ab5940ec3a261237f81e00c3136fcf3e
https://github.com/llvm/llvm-project/commit/314fef96ab5940ec3a261237f81e00c3136fcf3e
Author: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
M mlir/test/Dialect/Linalg/vectorization/insert-slice.mlir
Log Message:
-----------
[mlir][linalg] Support non-trailing dropped dims when vectorizing rank-reducing `InsertSliceOp` (#219192)
`vectorizeAsInsertSliceOp` inferred a dynamic source dim's vector size
from `resultType.getDimSize(rankDiff + i)`, which only covers the case
where the rank-reducing dims dropped from `resultType` are the leading
ones and `source` maps to the trailing result dims.
Generalize this to the general case, where a dropped unit dim can be
anywhere, by using `sliceOp.getDroppedDims()` to map each source dim to
its actual corresponding (non-dropped) result dim.
Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Commit: 2d9e9a3268663f36c0e4037eb6ae5e4312d3e2e0
https://github.com/llvm/llvm-project/commit/2d9e9a3268663f36c0e4037eb6ae5e4312d3e2e0
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/test/CIR/IR/enum-attrs.cir
Log Message:
-----------
[CIR] Migrate AssumeBundleKind, AtomicFetchKind and AsmFlavor off IntegerAttr (#220885)
AssumeBundleKind, AtomicFetchKind and AsmFlavor generated IntegerAttr
subclasses with no dialect spelling of their own. Each now sets
genSpecializedAttr = 0 and gains a CIR_EnumAttr wrapper.
Unlike the other CIR operation enums, these three are reached through
hand-written parsers and printers, so they needed checking individually.
cir.atomic.fetch references $binop declaratively and gains an `enum()`
wrapper. The other two need no change, since printAssumeBundle is
already
typed on cir::AssumeBundleKindAttr and InlineAsmOp::print streams the
enum
rather than the attribute.
Operation syntax is unchanged.
Commit: 71d23be772c5db28ad768884c8c92c9df54c8233
https://github.com/llvm/llvm-project/commit/71d23be772c5db28ad768884c8c92c9df54c8233
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
M clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseToUnderlyingCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] Fix some clang-tidy violations after bump to 23 version (#221420)
Commit: 4977a0c815c39fd90bb67c270174f2356ee9b5a7
https://github.com/llvm/llvm-project/commit/4977a0c815c39fd90bb67c270174f2356ee9b5a7
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/test/CodeGen/AArch64/arm64-neon-2velem.ll
Log Message:
-----------
AArch64: Drop AllowFPOpFusion from the MachineCombiner FMA conditions (#221404)
Only use the flags, and add missing tests for a missing flag on only
one of the participating instructions. This is a step toward removing
the AllowFPOpFusion field from TargetOptions.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: ca7909df49541193c7e680554865082071252d35
https://github.com/llvm/llvm-project/commit/ca7909df49541193c7e680554865082071252d35
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/test/CIR/IR/enum-attrs.cir
Log Message:
-----------
[CIR] Migrate GlobalLinkageKind, CallingConv and SideEffect off IntegerAttr (#220887)
GlobalLinkageKind, CallingConv and SideEffect generated IntegerAttr
subclasses with no dialect spelling of their own. Each now sets
genSpecializedAttr = 0 and gains a CIR_EnumAttr wrapper, and cir.global
wraps
$linkage in `enum()`. GlobalLinkageKind spells `#cir.linkage<internal>`,
dropping both the `global_` prefix and the `_kind` suffix.
cir.func and cir.call print all three by hand, but they stream
stringifyGlobalLinkageKind(getLinkage()) and friends, which take the
enum
rather than the attribute, so those sites are unchanged.
Operation syntax is unchanged.
Commit: 49a9f5094b5c1d655072f03b337a137e4a1aad4e
https://github.com/llvm/llvm-project/commit/49a9f5094b5c1d655072f03b337a137e4a1aad4e
Author: ZERICO2005 <zerico2005 at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/fp-const-fold.ll
M llvm/test/CodeGen/AArch64/literal_pools_float_apple.ll
M llvm/test/CodeGen/AArch64/stack-hazard.ll
M llvm/test/CodeGen/AArch64/sve-vector-splat.ll
M llvm/test/CodeGen/AMDGPU/blender-no-live-segment-at-def-implicit-def.ll
M llvm/test/CodeGen/AMDGPU/clamp.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll
M llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp-e5m3fnu.ll
M llvm/test/CodeGen/AMDGPU/fmaxnum.ll
M llvm/test/CodeGen/AMDGPU/fmaxnum.r600.ll
M llvm/test/CodeGen/AMDGPU/fminnum.ll
M llvm/test/CodeGen/AMDGPU/fminnum.r600.ll
M llvm/test/CodeGen/AMDGPU/fneg-combines.f16.ll
M llvm/test/CodeGen/AMDGPU/fneg-combines.ll
M llvm/test/CodeGen/AMDGPU/fneg-combines.new.ll
M llvm/test/CodeGen/AMDGPU/fract-match.ll
M llvm/test/CodeGen/AMDGPU/frexp-constant-fold.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.f32.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.r600.ll
M llvm/test/CodeGen/AMDGPU/issue92561-restore-undef-scc-verifier-error.ll
M llvm/test/CodeGen/AMDGPU/jump-address.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-store-infinite-loop.ll
M llvm/test/CodeGen/AMDGPU/modf-constant-fold.ll
M llvm/test/CodeGen/AMDGPU/nested-loop-conditions.ll
M llvm/test/CodeGen/AMDGPU/regalloc-spill-wmma-scale.ll
M llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll
M llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr.ll
M llvm/test/CodeGen/AMDGPU/select-cmp-shared-constant-fp.ll
M llvm/test/CodeGen/AMDGPU/si-spill-cf.ll
M llvm/test/CodeGen/AMDGPU/undefined-subreg-liverange.ll
M llvm/test/CodeGen/AMDGPU/unstructured-cfg-def-use-issue.ll
M llvm/test/CodeGen/AMDGPU/vector-legalizer-divergence.ll
M llvm/test/CodeGen/ARM/2012-04-24-SplitEHCriticalEdge.ll
M llvm/test/CodeGen/DirectX/ContainerData/RootSignature-StaticSamplers-Invalid-MaxLod.ll
M llvm/test/CodeGen/DirectX/ContainerData/RootSignature-StaticSamplers-Invalid-MinLod.ll
M llvm/test/CodeGen/Hexagon/pull-no-comp-code.ll
M llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
M llvm/test/CodeGen/RISCV/double-zfa.ll
M llvm/test/CodeGen/RISCV/float-zfa.ll
M llvm/test/CodeGen/SPIRV/debug-info/no-misplaced-opextinst.ll
M llvm/test/CodeGen/SPIRV/literals.ll
M llvm/test/CodeGen/VE/Scalar/fsqrt.ll
M llvm/test/CodeGen/WebAssembly/immediates.ll
M llvm/test/CodeGen/X86/coff-fp-section-name.ll
M llvm/test/CodeGen/X86/extract-vselect-setcc.ll
M llvm/test/CodeGen/X86/fp-undef.ll
M llvm/test/CodeGen/X86/pr50374.ll
M llvm/test/CodeGen/X86/setcc.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining-sse41.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining.ll
M llvm/test/Transforms/Attributor/nofpclass-canonicalize.ll
M llvm/test/Transforms/Attributor/nofpclass-fmul.ll
M llvm/test/Transforms/Attributor/nofpclass-implied-by-fcmp.ll
M llvm/test/Transforms/Attributor/nofpclass-select.ll
M llvm/test/Transforms/Attributor/nofpclass.ll
M llvm/test/Transforms/CodeGenPrepare/AMDGPU/no-sink-addrspacecast.ll
M llvm/test/Transforms/EarlyCSE/atan.ll
M llvm/test/Transforms/FunctionAttrs/nofpclass.ll
M llvm/test/Transforms/FunctionAttrs/noundef.ll
M llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float-specials.ll
M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
M llvm/test/Transforms/InstCombine/AMDGPU/fmed3.ll
M llvm/test/Transforms/InstCombine/X86/x86-fp-minmax-negzero.ll
M llvm/test/Transforms/InstCombine/X86/x86-scalar-max-min.ll
M llvm/test/Transforms/InstCombine/constant-fold-nextafter.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-fp128.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-ppc-fp128.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-x86-fp80.ll
M llvm/test/Transforms/InstCombine/erf.ll
M llvm/test/Transforms/InstCombine/fcmp-range-check-idiom.ll
M llvm/test/Transforms/InstCombine/fdim.ll
M llvm/test/Transforms/InstCombine/fma.ll
M llvm/test/Transforms/InstCombine/fmod.ll
M llvm/test/Transforms/InstCombine/fneg.ll
M llvm/test/Transforms/InstCombine/fold-fcmp-trunc.ll
M llvm/test/Transforms/InstCombine/fold-select-fmul-if-zero.ll
M llvm/test/Transforms/InstCombine/frexp.ll
M llvm/test/Transforms/InstCombine/ilogb.ll
M llvm/test/Transforms/InstCombine/intrinsic-select.ll
M llvm/test/Transforms/InstCombine/is_fpclass.ll
M llvm/test/Transforms/InstCombine/log1p.ll
M llvm/test/Transforms/InstCombine/logb.ll
M llvm/test/Transforms/InstCombine/maximum.ll
M llvm/test/Transforms/InstCombine/maxnum.ll
M llvm/test/Transforms/InstCombine/minimum.ll
M llvm/test/Transforms/InstCombine/minnum.ll
M llvm/test/Transforms/InstCombine/nanless-canonicalize-combine.ll
M llvm/test/Transforms/InstCombine/pow-exp.ll
M llvm/test/Transforms/InstCombine/remquo.ll
M llvm/test/Transforms/InstCombine/select-fcmp-fmul-zero-absorbing-value.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-aggregates.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-exp.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/cos.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fract.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/sin.ll
M llvm/test/Transforms/InstSimplify/ConstProp/WebAssembly/trunc.ll
M llvm/test/Transforms/InstSimplify/ConstProp/atan-intrinsic.ll
M llvm/test/Transforms/InstSimplify/ConstProp/basictest.ll
M llvm/test/Transforms/InstSimplify/ConstProp/fma.ll
M llvm/test/Transforms/InstSimplify/ConstProp/fp-undef.ll
M llvm/test/Transforms/InstSimplify/ConstProp/min-max.ll
M llvm/test/Transforms/InstSimplify/ConstProp/sinh-cosh-intrinsics.ll
M llvm/test/Transforms/InstSimplify/X86/fp-nan-strictfp.ll
M llvm/test/Transforms/InstSimplify/call.ll
M llvm/test/Transforms/InstSimplify/canonicalize.ll
M llvm/test/Transforms/InstSimplify/const-fold-nvvm-f2i-d2i.ll
M llvm/test/Transforms/InstSimplify/const-fold-nvvm-f2ll-d2ll.ll
M llvm/test/Transforms/InstSimplify/const-fold-nvvm-fma.ll
M llvm/test/Transforms/InstSimplify/constfold-constrained.ll
M llvm/test/Transforms/InstSimplify/exp10.ll
M llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll
M llvm/test/Transforms/InstSimplify/floating-point-compare.ll
M llvm/test/Transforms/InstSimplify/fp-nan.ll
M llvm/test/Transforms/InstSimplify/fp-undef-poison.ll
M llvm/test/Transforms/InstSimplify/fptoi-sat.ll
M llvm/test/Transforms/InstSimplify/pr122582.ll
M llvm/test/Transforms/InstSimplify/sincos.ll
M llvm/test/Transforms/InstSimplify/strictfp-fadd.ll
M llvm/test/Transforms/LoopVectorize/select-last-index-fp.ll
M llvm/test/Transforms/SCCP/float-nan-simplification.ll
M llvm/test/Transforms/SLPVectorizer/X86/deleted-inst-reduction-attempt.ll
M llvm/test/Transforms/SLPVectorizer/X86/entry-no-bundle-but-extra-use-on-vec.ll
M llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll
M llvm/test/Transforms/SimplifyCFG/speculate-math.ll
M llvm/test/Transforms/Util/libcalls-shrinkwrap-strictfp.ll
M llvm/test/tools/llubi/fp_cast.ll
M llvm/test/tools/llubi/fp_nan_quieting.ll
M llvm/test/tools/llubi/fp_nan_target_specific_sparc.ll
M llvm/test/tools/llubi/fp_nan_target_specific_wasm32.ll
M llvm/test/tools/llubi/fp_nan_unchanged.ll
M llvm/test/tools/llubi/intr_fp_vector_reduce.ll
M llvm/test/tools/llvm-reduce/reduce-operands-fp.ll
M llvm/unittests/Analysis/ValueTrackingTest.cpp
Log Message:
-----------
[llvm][NFC] canonicalize qnan hexadecimal literals to +-qnan (#221379)
Follow up to https://github.com/llvm/llvm-project/pull/221019 and
https://github.com/llvm/llvm-project/pull/221056
Replaces the literal for `qNaN` `0x7FF8000000000000` with the canonical
form of `+qnan` and etc.
Ignored files
```
llvm/docs/LangRef.md
llvm/lib/Target/AMDGPU/SIISelLowering.cpp
llvm/test/CodeGen/AArch64/GlobalISel/combine-fminimum-fmaximum.mir
llvm/test/CodeGen/AArch64/GlobalISel/combine-fminnum-fmaxnum.mir
llvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir
llvm/test/CodeGen/MIR/NVPTX/floating-point-immediate-operands.mir
llvm/test/CodeGen/AMDGPU/fcanonicalize.ll
llvm/test/CodeGen/X86/canonicalize-vars.ll
llvm/test/CodeGen/X86/is_fpclass.ll
llvm/test/tools/llubi/fp_nan_preferred.ll
llvm/test/tools/llubi/fp_nan_target_specific_x86_64_linux.ll
llvm/test/Transforms/ExpandIRInsts/AMDGPU/frem-inf.ll
```
Commands
```sh
rg -l -0 ' 0x7FF8000000000000\b' llvm \
| xargs -0 perl -pi -e 's/ 0x7FF8000000000000\b/ +qnan/g'
rg -l -0 ' 0x7ff8000000000000\b' llvm \
| xargs -0 perl -pi -e 's/ 0x7ff8000000000000\b/ +qnan/g'
rg -l -0 ' 0xFFF8000000000000\b' llvm \
| xargs -0 perl -pi -e 's/ 0xFFF8000000000000\b/ -qnan/g'
rg -l -0 ' 0xfff8000000000000\b' llvm \
| xargs -0 perl -pi -e 's/ 0xfff8000000000000\b/ -qnan/g'
```
Commit: d03e9438467affde7ba69ac2f61ff4885b4055b0
https://github.com/llvm/llvm-project/commit/d03e9438467affde7ba69ac2f61ff4885b4055b0
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/extract-with-poison-index.ll
Log Message:
-----------
[SLP]Fix crash on extractelement with undef/poison index in getEntryCost
canReuseExtract treats undef/poison-index extracts as holes, so such
extracts can end up in a vectorized ExtractElement entry. The cost
model dereferenced getExtractIndex() unconditionally, causing a crash.
Fixes #221414
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221437
Commit: 06c952dbbcdab5cbc16e7a0251ba3b4266dd21f1
https://github.com/llvm/llvm-project/commit/06c952dbbcdab5cbc16e7a0251ba3b4266dd21f1
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/loop-accumulator-reduction.ll
Log Message:
-----------
[SLP][NFC]Add a test with loop-carried reductions, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221438
Commit: 229aa7df428338dcbbae03514aaae74c916f485f
https://github.com/llvm/llvm-project/commit/229aa7df428338dcbbae03514aaae74c916f485f
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachineFunction.h
M llvm/include/llvm/Target/TargetOptions.h
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/CodeGen/TargetOptionsImpl.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/ARC/ARCFrameLowering.cpp
M llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
M llvm/lib/Target/ARM/ARMFrameLowering.cpp
M llvm/lib/Target/ARM/ARMSubtarget.cpp
M llvm/lib/Target/CSKY/CSKYFrameLowering.cpp
M llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
M llvm/lib/Target/M68k/M68kFrameLowering.cpp
M llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
M llvm/lib/Target/Mips/MipsFrameLowering.cpp
M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVMachineFunctionInfo.cpp
M llvm/lib/Target/Sparc/SparcFrameLowering.cpp
M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
M llvm/lib/Target/VE/VEFrameLowering.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86RegisterInfo.cpp
M llvm/lib/Target/XCore/XCoreFrameLowering.cpp
M llvm/lib/Target/Xtensa/XtensaFrameLowering.cpp
Log Message:
-----------
CodeGen: Move frame-pointer queries out of TargetOptions (#221416)
These used to depend on a TargetOptions field, which was removed
at some point. These are now only depend on MachineFunction,
so move the attribute check there.
Co-authored-by: Claude (Claude-Opus-4.8)
Commit: 5cba2fc3ee234ccf5e6e55c2007ddbfb6b73ff54
https://github.com/llvm/llvm-project/commit/5cba2fc3ee234ccf5e6e55c2007ddbfb6b73ff54
Author: Tadeusz <tadeuszjt at protonmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Sema/SemaAvailability.cpp
M clang/test/SemaCXX/attr-availability.cpp
Log Message:
-----------
[Clang] Fix Crash in Sema::DiagnoseUnguardedAvailability On 'if' With No Condition (#220004)
**Problem**
C++ 23 introduced consteval expressions which allows `if` statements to
have no condition:
```
if consteval {
}
```
`DiagnoseUnguardedAvailability::TraverseIfStmt` Assumed `If->getCond()`
would never return a `nullptr`, causing a `nullptr` dereference.
Fixes #219948
Commit: 24a7afb3dd66dc618afc8aaa0b7ac28cd878656d
https://github.com/llvm/llvm-project/commit/24a7afb3dd66dc618afc8aaa0b7ac28cd878656d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/clmul-vector-256.ll
M llvm/test/CodeGen/X86/clmul-vector-512.ll
M llvm/test/CodeGen/X86/clmul-vector.ll
M llvm/test/CodeGen/X86/pdep-vector-128.ll
M llvm/test/CodeGen/X86/pdep-vector-256.ll
M llvm/test/CodeGen/X86/pdep-vector-512.ll
M llvm/test/CodeGen/X86/pext-vector-128.ll
M llvm/test/CodeGen/X86/pext-vector-256.ll
M llvm/test/CodeGen/X86/pext-vector-512.ll
M llvm/test/CodeGen/X86/znver-pdep.ll
M llvm/test/CodeGen/X86/znver-pext.ll
Log Message:
-----------
[X86] LowerCLMUL - improve vXi32 codegen (#221289)
Shuffle combining is struggling to handle the mixture of vector
unrolling, truncations and optimal use of PCLMULQDQ swizzles, this patch
gives us more optimal lowering direct instead of relying on fixup.
Use the PCLMULQDQ lo/hi control immediate to handle anyext i64 element
evaluation - along with shifting the upper elements down to the lowest
bits of the i64 in parallel
Use UNPACK build vector pattern to avoid FPR<->GPR traffic
CLMULH needs to be handled in a future patch, and vXi16 /might/ be worth
handling as well.
Commit: 6d139a63345e1f761707f45a3086e1846c58cc06
https://github.com/llvm/llvm-project/commit/6d139a63345e1f761707f45a3086e1846c58cc06
Author: Yongqiang Tian <41743566+yqtian-se at users.noreply.github.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchMergeBaseOffset.cpp
M llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
A llvm/test/CodeGen/LoongArch/merge-base-offset-debug-only.mir
A llvm/test/CodeGen/LoongArch/merge-base-offset-debug-use.ll
A llvm/test/CodeGen/RISCV/merge-base-offset-debug-only.mir
A llvm/test/CodeGen/RISCV/merge-base-offset-debug-use.ll
Log Message:
-----------
[LoongArch][RISCV] Ignore debug uses when merging base offsets (#221117)
## Summary
Debug instructions are currently enumerated as ordinary users by the RISC-V
and LoongArch merge-base-offset passes. A `DBG_VALUE` can therefore veto an
otherwise valid fold and make `-g` add an ordinary address-calculation
instruction.
Use the non-debug instruction iterator for validation and rewriting, and make
affected debug values unavailable before changing the address represented by
the destination register. Also handle the case where the register has no
ordinary users, which becomes possible after debug uses are excluded.
The same change is applied to both targets because their implementations and
failure mode are equivalent.
## Testing
- `ninja check-llvm-codegen-riscv` (2662 tests passed)
- `ninja check-llvm-codegen-loongarch` (949 tests passed)
Fixes #221109
AI disclosure: This patch was developed with OpenAI Codex 5.6 Sol and
co-reviewed by Claude and Yongqiang Tian.
Commit: 0c94a978df783bd67535350eac84088fc482716a
https://github.com/llvm/llvm-project/commit/0c94a978df783bd67535350eac84088fc482716a
Author: A. Jiang <de34 at live.cn>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M libcxx/include/__concepts/common_with.h
Log Message:
-----------
[libc++][NFC] Avoid empty namespace in `<__concepts/common_with.h>` (#221407)
...in pre-C++20 modes. This fixes complaining from clang-tidy checks in
CI.
Commit: 29fda2c4ecca4520526656893c36d738fbc78348
https://github.com/llvm/llvm-project/commit/29fda2c4ecca4520526656893c36d738fbc78348
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMInstrInfo.td
M llvm/lib/Target/ARM/ARMInstrNEON.td
M llvm/lib/Target/ARM/ARMInstrVFP.td
M llvm/lib/Target/ARM/ARMPredicates.td
M llvm/test/CodeGen/ARM/cortex-a57-misched-vfma.ll
M llvm/test/CodeGen/ARM/fp16-fusedMAC.ll
M llvm/test/CodeGen/ARM/fusedMAC.ll
Log Message:
-----------
ARM: Form fused VFMA/VFMS from the contract flag (#221340)
Select the fused VFMA/VFMS/VFNMA/VFNMS from the per-node contract
fast-math flag instead of the global AllowFPOpFusion == Fast. This is one of the
few remaining consumers of the TargetOption field.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 0664fb13c0dd34fd3d041a5d2610650945518e02
https://github.com/llvm/llvm-project/commit/0664fb13c0dd34fd3d041a5d2610650945518e02
Author: Nikhil Kotikalapudi <nak00001 at outlook.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/RegAllocPBQP.cpp
M llvm/lib/Target/AMDGPU/AMDGPURewriteAGPRCopyMFMA.cpp
M llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
Log Message:
-----------
[CodeGen] Use RegisterClassInfo for remaining allocation-order users (#216510)
Greedy already uses RegisterClassInfo for the function-specific
allocation order (reserved registers filtered, CSRs deferred). Remaining
users still walked TRI's raw order or rebuilt RCI themselves.
Uses RCI.getOrder() everywhere that list is needed (PBQP, Hexagon
spill-slot search*, ARM load/store opt, AMDGPU AGPR-copy MFMA rewrite).
Takes the shared analysis when the pass can preserve it; otherwise keep
a
local RCI after freezeReservedRegs().
Hexagon findPhysReg no longer considers reserved registers.
**Note:** Initially had register scavenger use RCI.getOrder() for
function specific scratch reg allocation, but due to test failures and
the extra loops needed as fallbacks to fix this, this change ends up
likely being outside the scope of this PR so I removed it.
**Another note:** \*Hexagon changes removed from this PR, split into
#216752
Commit: 698428e5a786b5cb792a0f3f39a3de587c5e00dc
https://github.com/llvm/llvm-project/commit/698428e5a786b5cb792a0f3f39a3de587c5e00dc
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
Log Message:
-----------
[Analysis] Remove dead WriteDOTGraphToFile (NFC) (#221413)
The last callers were migrated to DOTGraphTraitsPrinter on May 16, 2022
in commit 7dce9eb6e507d48d0b79bfb408592936d378cc28.
Assisted-by: Antigravity
Commit: e1474e57522c4188d3a5a06921c1199210f1c3e1
https://github.com/llvm/llvm-project/commit/e1474e57522c4188d3a5a06921c1199210f1c3e1
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang-tools-extra/clangd/unittests/CallHierarchyTests.cpp
M clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp
M clang-tools-extra/clangd/unittests/ParsedASTTests.cpp
M clang-tools-extra/clangd/unittests/PreambleTests.cpp
M clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp
M clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp
M clang-tools-extra/clangd/unittests/XRefsTests.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp
Log Message:
-----------
[clang-tools-extra][NFC] Fix -Wunused-template violations (#221427)
These cause build errors in
https://github.com/llvm/llvm-project/actions/runs/33952646467/job/101270176288.
Commit: 1b14859d3cd691be104aec3f6c9a51bd658f58a7
https://github.com/llvm/llvm-project/commit/1b14859d3cd691be104aec3f6c9a51bd658f58a7
Author: Andres-Salamanca <andrealebarbaritos at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
Log Message:
-----------
[CIR][NFC] Use declarative llvmOp lowering for coroutine intrinsics (#221343)
This PR switches the coroutine intrinsic ops (`cir.coro.intrinsic.id`,
`.alloc`, `.begin`, `.end`, `.free`, `.size`) to use the declarative
`llvmOp` field instead of hand-written lowering patterns.
Commit: 5eef528a2d59cda218b99b7bfcf70b625488e5aa
https://github.com/llvm/llvm-project/commit/5eef528a2d59cda218b99b7bfcf70b625488e5aa
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
A llvm/test/CodeGen/AMDGPU/codegen-no-subarch-warn.ll
Log Message:
-----------
AMDGPU: Warn if trying to codegen without a subarch (#220245)
Warn if using the legacy amdgcn name, or amdgpu without a
specified subarch. This is to push all the non-clang frontends
to update to the new system, but this should turn into an error
in the next release.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
Commit: 9306a82aafb3ba11ec14cdcde1dbb4618d4256ba
https://github.com/llvm/llvm-project/commit/9306a82aafb3ba11ec14cdcde1dbb4618d4256ba
Author: Farzon Lotfi <farzonlotfi at microsoft.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILLegalizePass.cpp
M llvm/lib/Transforms/Scalar/Scalarizer.cpp
M llvm/test/CodeGen/DirectX/countbits.ll
R llvm/test/CodeGen/DirectX/legalize-i64-high-low-vec-split.ll
A llvm/test/Transforms/Scalarizer/bitcast-scalar-to-vector.ll
A llvm/test/Transforms/Scalarizer/bitcast-vector-to-scalar.ll
Log Message:
-----------
[Scalarizer][DirectX] Teach the Scalarizer to handle integer bitcasts between scalars and vectors. (#221033)
Fixes #219327
For vector-to-scalar bitcasts, combine the scalarized vector elements
using
extensions, shifts, and ORs. This avoids reconstructing an illegal
vector before
bitcasting it to a scalar. In particular, this fixes the `<2 x i16> ->
i32`
bitcast generated while lowering 16-bit vector `countbits`.
Also move the existing `i64 -> <2 x i32>` legalization from the DirectX
legalizer into the generic Scalarizer. The Scalarizer now splits these
values
using shifts and truncations while respecting target endianness.
With both bitcast directions handled by the Scalarizer, remove
`legalizeGetHighLowi64Bytes` from the DirectX legalizer and move
`downcastI64toI32InsertExtractElements` back into the first legalization
stage.
Add generic Scalarizer coverage for both little- and big-endian targets,
and
DirectX regression coverage for the 16-bit `countbits` case.
Commit: 338e0c94943a6fb917c276bbbd9ff4b6cd6dd71e
https://github.com/llvm/llvm-project/commit/338e0c94943a6fb917c276bbbd9ff4b6cd6dd71e
Author: Farzon Lotfi <farzonlotfi at microsoft.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILPrettyPrinter.cpp
M llvm/lib/Target/DirectX/DXILWriter/CMakeLists.txt
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.h
A llvm/lib/Target/DirectX/DXILWriter/DXILDebugInfoMap.cpp
A llvm/lib/Target/DirectX/DXILWriter/DXILDebugInfoMap.h
M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
M llvm/lib/Target/DirectX/DirectX.h
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.h
M llvm/lib/Target/DirectX/DirectXPassRegistry.def
M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
M llvm/test/CodeGen/DirectX/DebugInfo/dbg-assign.ll
M llvm/test/CodeGen/DirectX/DebugInfo/dbg-declare-undef.ll
M llvm/test/CodeGen/DirectX/DebugInfo/dbg-value-arglist.ll
M llvm/test/CodeGen/DirectX/DebugInfo/dbg-value.ll
M llvm/test/CodeGen/DirectX/DebugInfo/debug-info.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-commonblock.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-compile-unit-versioned-language.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-compile-unit.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-globalvariable.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-label.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-subprogram.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-subrangetype.ll
M llvm/test/CodeGen/DirectX/llc-pipeline.ll
Log Message:
-----------
[DirectX] Refactor DXILDebugInfo into a pass (#220989)
resolves #220323
DXILDebugInfo was structured as a namespace
with its pass chained to run as part of either
the DXILBitcodeWriter or DXILPrettyPrinter passes.
This is wrong and led to us failing expensive checks because
DXILDebugInfo changes IR but the writers are not expected to do so.
The fix was two fold, move the DXILDebugInfo into a pass. Second,
Refactor all the module debug info reader\writer code out of
DXILDebugInfo and into DXILDebugInfoMap which is used by both the
PrettyPrinter and the BitCodeWriter and move that code into the
DXILWriter compilation module since it is only used by the writers.
Commit: fd399c1924d7ae281f3ae676827891dcbec13ef8
https://github.com/llvm/llvm-project/commit/fd399c1924d7ae281f3ae676827891dcbec13ef8
Author: robertvirany <robertvirany at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/strict_fma.f32.ll
A llvm/test/CodeGen/AMDGPU/copy_phys_vgpr.mir
R llvm/test/CodeGen/AMDGPU/copy_phys_vgpr64.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scale.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.dim.gfx90a.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i32.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics.ll
Log Message:
-----------
[AMDGPU] Extend wide VGPR copy expansion to 96-bit copies (#214561)
Extend physical VGPR copy expansion to handle 96-bit copies using one
64-bit move and one 32-bit move when `V_MOV_B64_e32` is available.
The move order accounts for overlapping source and destination
registers. SGPR-to-VGPR copies are also supported, matching the existing
support for copies whose sizes are multiples of 64 bits.
The first commit precommits regression coverage for non-overlapping,
forward-overlapping, and backward-overlapping copies.
Commit: ccf1638181ea84dcda977b02907a9b020c8d5c2c
https://github.com/llvm/llvm-project/commit/ccf1638181ea84dcda977b02907a9b020c8d5c2c
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGenTypes/LowLevelType.h
M llvm/lib/CodeGenTypes/LowLevelType.cpp
Log Message:
-----------
[CodeGenTypes] Make LLT::ExtendedLLT atomic (#219546)
Commit: 8aec646ab0878b80b2d5b62ecaeeece7bfb54fbf
https://github.com/llvm/llvm-project/commit/8aec646ab0878b80b2d5b62ecaeeece7bfb54fbf
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/RegAllocFast.cpp
Log Message:
-----------
[RegAllocFast] Document the allocation algorithm. NFC (#219835)
Add a file-level overview: block-local allocation, a stack slot for
every value crossing a block boundary, no liveness analysis or coalescing,
and a backward walk where uses acquire registers and defs release them.
Correct two stale claims: RegUnitStates is indexed by register unit, not
by physical register, and allocateInstruction() runs eight phases rather
than the two its comment described.
Drop a redundant local in reloadAtBegin(), and assert the def operand
that isTiedToNotUndef() documents.
Aided by Opus 5
Commit: 2fb12bca76c52d8e0bbb838017820ee58a395293
https://github.com/llvm/llvm-project/commit/2fb12bca76c52d8e0bbb838017820ee58a395293
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M mlir/tools/mlir-tblgen/DialectGen.cpp
Log Message:
-----------
[mlir][tblgen] Prune unused filterForDialect template [-Wunused-template] (#221422)
`filterForDialect` lost its last caller in 4957518ef57f (May 2022) and
has been dead since. It is a static file-scope function template, so
`-Wunused-template` flags it and `-Werror` builds fail. Removing it also
orphans the `DialectFilterIterator` alias and the `llvm::Record`
using-declaration, which nothing else references, so this drops all
three.
Co-authored-by: Henrich Lauko <hlauko at nvidia.com>
Commit: b30b65a17fe7187d0ace75a9fe5a03f08f6eeeba
https://github.com/llvm/llvm-project/commit/b30b65a17fe7187d0ace75a9fe5a03f08f6eeeba
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M .github/workflows/premerge.yaml
Log Message:
-----------
[CI][Github] Hash-pin AArch64 CI image (#221475)
Otherwise we end up picking up the latest version of the image that uses
clang 23 which causes issues. This also is security best practice as
described in our security best practices doc.
Fixes #221470.
Commit: 3cc64232bf12057ee0564ea019d67ee6b02d92eb
https://github.com/llvm/llvm-project/commit/3cc64232bf12057ee0564ea019d67ee6b02d92eb
Author: Pablo Reble <pablo.reble at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/AMDGPU/inst-count-heuristic.ll
Log Message:
-----------
[SLP][AMDGPU][NFC] Remove unreachable GFX940/GFX941 checks (#220745)
`inst-count-heuristic.ll` only runs
`-check-prefix=GFX950/GFX942/GFX906;` the `GFX941/GFX940 CHECK` blocks
had no matching `RUN` line and were never executed.
Commit: 8f270bce39c674432d5dd06de82b87c70b1eb2b8
https://github.com/llvm/llvm-project/commit/8f270bce39c674432d5dd06de82b87c70b1eb2b8
Author: ZERICO2005 <zerico2005 at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/test/Transforms/Attributor/nofpclass-bitcast-int-to-fp.ll
Log Message:
-----------
[KnownFPClass] Add regression tests for #174869 (#220279)
This PR just adds regression tests for
https://github.com/llvm/llvm-project/issues/174869
Otherwise, the original issue was fixed by
https://github.com/llvm/llvm-project/pull/215708 for
`APFloat::isIEEELikeFP` types (bfloat16, and ieee16/32/64/128).
Commit: 3daf50547d3866f8ddaf1de91d4670fd4372698b
https://github.com/llvm/llvm-project/commit/3daf50547d3866f8ddaf1de91d4670fd4372698b
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/docs/MemProf.md
Log Message:
-----------
[MemProf][Docs] Add more information on static data partitioning (#220446)
Clarify some sentences that I found hard to parse. Also update the docs
now that a linker script is no longer required.
Commit: f98cf8e0255eb497b7e4a5852a2e36f6b42c1a53
https://github.com/llvm/llvm-project/commit/f98cf8e0255eb497b7e4a5852a2e36f6b42c1a53
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-select.mir
M llvm/test/CodeGen/AMDGPU/div_i128.ll
M llvm/test/CodeGen/AMDGPU/select-undef.ll
Log Message:
-----------
[AMDGPU] Freeze select condition before splitting into two halves (#219942)
Commit: 2e4ad2ff2ff636c7c8fc8637e4696d9517019d52
https://github.com/llvm/llvm-project/commit/2e4ad2ff2ff636c7c8fc8637e4696d9517019d52
Author: Stan Ulbrych <stan at python.org>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/docs/CodeReview.rst
Log Message:
-----------
[docs] Fix a broken link in the 'Non-Experts Should Review Code' section (#221461)
Commit: b04639f6e15f08cd4ef255dac763786cdad555b8
https://github.com/llvm/llvm-project/commit/b04639f6e15f08cd4ef255dac763786cdad555b8
Author: Yao Qi <yao_qi at apple.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M lldb/tools/lldb-fuzzer/lldb-target-fuzzer/CMakeLists.txt
A lldb/tools/lldb-fuzzer/lldb-target-fuzzer/target.dict
Log Message:
-----------
[lldb] Add a fuzzing dictionary for lldb-target-fuzzer (#221348)
target.dict gives the mutator the magic bytes and required keys for
every object file format. Without a seed dictionary, blind mutation
essentially never lands the exact multi-byte magic these formats gate
on.
Assisted-by: claude
Commit: 03de3d1299bffd3a2829da92b28875142d8ad944
https://github.com/llvm/llvm-project/commit/03de3d1299bffd3a2829da92b28875142d8ad944
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/include/llvm/Support/LSP/Transport.h
M llvm/unittests/Support/LSP/Transport.cpp
Log Message:
-----------
[Support] Fix -Wunused-template from debugString
This is not used in the header (outside of a non-instantiated template),
so triggers -Wunused-template. Move it into the class definition to
prevent this without adding any namespace pollution.
Reviewers: MaskRay, kazutakahirata
Pull Request: https://github.com/llvm/llvm-project/pull/221478
Commit: 45b1e622ab5a917fcdb339c3f97dd64718b51341
https://github.com/llvm/llvm-project/commit/45b1e622ab5a917fcdb339c3f97dd64718b51341
Author: Vito Kortbeek <vito.kortbeek at globalfoundries.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/TypePromotion.cpp
M llvm/test/Transforms/TypePromotion/ARM/casts.ll
Log Message:
-----------
[TypePromotion] Support trunc-to-i1 conditions (#216311)
InstCombine may rewrite `icmp ne (X & 1), 0` to `trunc X to i1`
(#178977). Start TypePromotion searches from operands of scalar
trunc-to-i1 instructions, treating the trunc as a boolean boundary
without promoting its result or traversing its users.
Assisted-by: AI
Commit: f42c87ba2c70219b1f4ad1f031a5b6a1ea6603fb
https://github.com/llvm/llvm-project/commit/f42c87ba2c70219b1f4ad1f031a5b6a1ea6603fb
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.h
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
M llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-foldable-fneg.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmax_legacy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmin_legacy.ll
M llvm/test/CodeGen/AMDGPU/fmax_legacy.ll
M llvm/test/CodeGen/AMDGPU/fmed3.ll
M llvm/test/CodeGen/AMDGPU/fmin_legacy.ll
M llvm/test/CodeGen/AMDGPU/pv.ll
M llvm/test/CodeGen/AMDGPU/select-flags-to-fmin-fmax.ll
Log Message:
-----------
[AMDGPU] Fix legacy fmin/fmax combines to preserve NaN and zero ties (#220519)
Commit: 94cb123a68a133ddcc1f7492a6a760f50c4d771e
https://github.com/llvm/llvm-project/commit/94cb123a68a133ddcc1f7492a6a760f50c4d771e
Author: Dave MacLachlan <dmaclach at gmail.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M clang-tools-extra/include-cleaner/lib/WalkAST.cpp
M clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp
Log Message:
-----------
[include-cleaner] Support Objective-C literals and boxed expressions in WalkAST (#216201)
This change adds AST visitors for ObjCBoxedExpr, ObjCArrayLiteral,
ObjCDictionaryLiteral, and ObjCStringLiteral. This ensures that the
underlying class interfaces (such as NSNumber, NSArray, NSDictionary,
and NSString) and any associated categories used for these literals are
correctly reported as referenced. Unit tests are included to verify the
new behavior.
Commit: 5115f32500a8977da758a268fc818872c6d4ee02
https://github.com/llvm/llvm-project/commit/5115f32500a8977da758a268fc818872c6d4ee02
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
A llvm/test/Transforms/LoopVectorize/VPlan/execution-frequencies-match-bfi.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-branch-weights.ll
M llvm/test/Transforms/LoopVectorize/replicate-region-branch-weights.ll
Log Message:
-----------
[VPlan] Preserve branch weights from VPlan0 through to codegen. (#213143)
This patch adds support for carrying through branch weights from the
original scalar loop through VPlan.
The flow is as follows:
1. On the scalar VPlan, we import the branch weights from the existing
IR branches and add them as !prof metadata to VPInstruction terminators
2. The predicator dissolves the control flow and each block will get
executed unconditionally. What remains are predicated recipes, with
their lanes executing with probability relative to the header. Compute
the executing probabilities as sum of probabilities of all incoming
edges.
3. Each masked recipe gets the execution probability attached as custom
!vplan.execution.frequency metadata
4. When creating replicate regions, a predicated recipe is replaced by
explicit control fold. The execution frequency from the recipe is
converted to profile metadata and added to the newly introduced
conditional branch as !prof.
5. During ::execute, !vplan.execution.frequency is ignored
One thing to note is that step 2 duplicates some logic from IR-based
branch probability info, but doing it natively VPlan allows this to work
with CFG introduced by VPlan itself.
This is an alternative to
https://github.com/llvm/llvm-project/pull/209309, which carried to
branch weights on VPBasicBlocks. This worked somewhat by accident for
replicate recipes: the predicator updates the CFG so all blocks execute
unconditionally, but preserved the execution probability. This is
incorrect at the VPlan level: the blocks execute unconditionally after
predication. It worked for the current use cases because replicate
regions are created before blocks are merged into their predecessors,
but is fragile and inaccurate. Carrying it explicitly across the
conditionally executed entities seems more accurate.
The new approach should work well with also carrying estimated BFI
in the same way, we just need to distinguish between real branch weigths
(which we carry through to codegen, and estimated weights, which don't
carry through to codegen).
And using the info for scalar cost computations on VPlan.
Commit: 419c22c908c97dac45d161ce56fa01b99ec7debf
https://github.com/llvm/llvm-project/commit/419c22c908c97dac45d161ce56fa01b99ec7debf
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/TableGen/Record.h
M llvm/lib/TableGen/Record.cpp
Log Message:
-----------
[TableGen] Unique the remaining Init pools in a UniquingSet. NFC (#221394)
Follow-up to #219630. Every one of these keys is a handful of scalars,
pointers and trailing-object arrays already stored in the node, so a
typed key removes the FoldingSetNodeID serialization on every get() and
the profile rebuild on every hit.
llvm-tblgen instructions retired, minimum of five interleaved runs:
```
RISCV -gen-asm-matcher -3.492%
RISCV -gen-register-info -4.027%
X86 -gen-dag-isel -1.573%
AMDGPU -gen-subtarget -1.140%
```
Aided by Opus 5
Commit: 62e6fe8bbab320f2517c004e6087be489f3ecb88
https://github.com/llvm/llvm-project/commit/62e6fe8bbab320f2517c004e6087be489f3ecb88
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/include/llvm/SandboxIR/Context.h
M llvm/lib/SandboxIR/Context.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
Reapply "[SandboxIR] Callback registration now allows specifying order" (#221099)
This reverts commit f111407c0502851409a887c8e5dea4a3ec190d4e.
Should fix the sanitizer issue.
Commit: 012428c5e864d5e976638eb9e19ea207cd2cb829
https://github.com/llvm/llvm-project/commit/012428c5e864d5e976638eb9e19ea207cd2cb829
Author: Adam Scott <adamscott200322 at gmail.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/divrem-by-select.ll
M llvm/test/CodeGen/X86/masked-sdiv.ll
M llvm/test/CodeGen/X86/masked-srem.ll
M llvm/test/CodeGen/X86/masked-udiv.ll
M llvm/test/CodeGen/X86/masked-urem.ll
M llvm/test/CodeGen/X86/min-legal-vector-width.ll
A llvm/test/CodeGen/X86/vector-idiv-i64.ll
M llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
M llvm/test/CodeGen/X86/vector-idiv-strictfp.ll
M llvm/test/CodeGen/X86/vector-idiv-udiv-512.ll
Log Message:
-----------
[X86] Lower i64 vector division and remainder through float division (#215043)
Follow up to #205263 which handled i8/i16/i32.
i64 needs a different algorithm because f64 cannot hold a 64 bit
quotient exactly. Instead of one divide the quotient is built from a
reciprocal and two rounded down multiplies plus a correction for the off
by one (https://sneller.ai/blog/avx512-int-div/). That needs the
directed rounding forms which only exist as 512 bit AVX512DQ
instructions, so the whole i64 path is gated on DQ and 512 bit types
being legal.
Operands that are provably narrow enough to fit the f64 mantissa skip
the chain entirely and take the same convert divide convert path as the
<=i32 case.
strictfp i64 uses the SAE forms the same way the <=i32 path does.
combineIntDivRem is now a small dispatcher over two helpers since the
two algorithms share only the setup. combineIntDivRemViaExactFPDiv is
the existing convert divide convert path and
combineIntDivRemViaFPReciprocal is the new chain.
Closes #214939
Commit: ad9259c18b15f1d2c35e2f8748afc7fd13c2e976
https://github.com/llvm/llvm-project/commit/ad9259c18b15f1d2c35e2f8748afc7fd13c2e976
Author: Dave MacLachlan <dmaclach at gmail.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp
Log Message:
-----------
[include-cleaner] Add WalkAST unit tests for Objective-C constructs (#220763)
Adds test coverage for walking AST nodes related to:
- Objective-C interface inheritance (`@interface Derived : Base`)
- Forward class and protocol declarations (`@class` and `@protocol`)
- Objective-C interface types used as function arguments
This is just to make sure that current code is covered. No new features.
Commit: bf085fa43725f4177f44b347aebeb69c96cb3800
https://github.com/llvm/llvm-project/commit/bf085fa43725f4177f44b347aebeb69c96cb3800
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/Record.h
Log Message:
-----------
[clang][bytecode] Cache Is(Unnamed)BitFields bools in `Record::Field` (#221392)
We need to query those a lot and we can save them in the padding bytes
of `Record::Field`.
Commit: 72417eb739e5d66fd345c3cc9e2265b8a7949fe1
https://github.com/llvm/llvm-project/commit/72417eb739e5d66fd345c3cc9e2265b8a7949fe1
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/Xtensa/CMakeLists.txt
Log Message:
-----------
[Xtensa] Depend on CodeGenTypes to fix BUILD_SHARED_LIBS=on build (#221511)
Commit: 03ff69fd5f82a7607113b83e45bd3828842669e3
https://github.com/llvm/llvm-project/commit/03ff69fd5f82a7607113b83e45bd3828842669e3
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
Log Message:
-----------
[clang][bytecode] Do pointer-to-bool convesions without classify() (#221516)
Commit: e16901ce359a3162aa1c1d071a73392077e22744
https://github.com/llvm/llvm-project/commit/e16901ce359a3162aa1c1d071a73392077e22744
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
Log Message:
-----------
[clang][bytecode] Use IsNonNull opcode in CXXNewExpr (#221515)
Instead of emitting a null pointer and checking that for equality.
Commit: 8e7fa6f756211dae0cc91221326faf1077e495b7
https://github.com/llvm/llvm-project/commit/8e7fa6f756211dae0cc91221326faf1077e495b7
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/test/MC/RISCV/xqciio-invalid.s
M llvm/test/MC/RISCV/xqcilo-pseudos-invalid.s
M llvm/test/MC/RISCV/xqcilsm-invalid.s
Log Message:
-----------
[RISC-V] Use an optional offset for Xqc* instructions
Following up on the previous commits to remove unnecessary InstAlias.
This commit was prepared with the help of AI.
Reviewed By: lenary
Pull Request: https://github.com/llvm/llvm-project/pull/215002
Commit: 89b97e94043b3a0d6e83d3607c00c14a089470c9
https://github.com/llvm/llvm-project/commit/89b97e94043b3a0d6e83d3607c00c14a089470c9
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXwch.td
M llvm/test/MC/RISCV/xwchc-valid.s
Log Message:
-----------
[RISC-V] Use an optional offset for Xwch instructions
Following up on the previous commits to remove unnecessary InstAlias.
This commit was prepared with the help of AI.
Reviewed By: lenary, ArcaneNibble
Pull Request: https://github.com/llvm/llvm-project/pull/215005
Commit: 116c6b570347e601bd0769b9354fca9f94f3a5fe
https://github.com/llvm/llvm-project/commit/116c6b570347e601bd0769b9354fca9f94f3a5fe
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/initializer_list.cpp
Log Message:
-----------
[clang][bytecode] Add missing condition scope to CXXForRangeStmt (#221520)
Fixes https://github.com/llvm/llvm-project/issues/221401
Commit: 509dc3826d40e931806f054725ed7bc0f3ba96af
https://github.com/llvm/llvm-project/commit/509dc3826d40e931806f054725ed7bc0f3ba96af
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M llvm/include/llvm/MC/MCTargetOptions.h
M llvm/include/llvm/Target/TargetMachine.h
M llvm/include/llvm/Target/TargetOptions.h
M llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp
M llvm/lib/MC/MCAsmInfo.cpp
M llvm/lib/MC/MCTargetOptions.cpp
M llvm/lib/Target/TargetMachine.cpp
M llvm/tools/llc/llc.cpp
Log Message:
-----------
MC: Move BinutilsVersion from TargetOptions to MCTargetOptions (#221435)
Commit: a65eb8723eab7c35798a5349e8d739d2bb2c5ef8
https://github.com/llvm/llvm-project/commit/a65eb8723eab7c35798a5349e8d739d2bb2c5ef8
Author: Samarth Narang <70980689+snarang181 at users.noreply.github.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M mlir/lib/Dialect/SCF/IR/SCF.cpp
M mlir/test/Dialect/SCF/canonicalize.mlir
Log Message:
-----------
[mlir][scf] Fix WhileMoveIfDown with duplicated scf.condition operands (#219458)
Commit: cb25e7ca7cef9e84db077fe36f3d27b269394c65
https://github.com/llvm/llvm-project/commit/cb25e7ca7cef9e84db077fe36f3d27b269394c65
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-09-05 (Sat, 05 Sep 2026)
Changed paths:
M mlir/cmake/modules/AddMLIRPython.cmake
Log Message:
-----------
[MLIR][Python] Pass -Wno-unused-template to nanobind build
As with a lot of other warnings, the nanobind build is also not clean
under -Wunused-template. This was enabled by default for clang 23
(although reverted for 23.1.1). Disable it in case it gets enabled again
and also in case anyone enables it manually.
Reviewers: joker-eph, makslevental, dcaballe
Pull Request: https://github.com/llvm/llvm-project/pull/221479
Commit: 25348f55f2c7befc9a8c262ae0a319cde32aa2e7
https://github.com/llvm/llvm-project/commit/25348f55f2c7befc9a8c262ae0a319cde32aa2e7
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/docs/CommandGuide/llc.md
M llvm/include/llvm/CodeGen/CommandFlags.h
M llvm/include/llvm/Target/TargetOptions.h
M llvm/lib/CodeGen/CommandFlags.cpp
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/test/CodeGen/ARM/build-attributes.ll
A llvm/test/CodeGen/ARM/eabi-attribute-no-trapping-math.ll
Log Message:
-----------
CodeGen: Remove TargetOptions::NoTrappingFPMath (#221429)
This was replaced by the no-trapping-math attribute.
The one ARMAsmPrinter use already accounts for it.
no-trapping-math should probably replaced by !strictfp, but that's
another problem.
Commit: 10d3708a0bb8c1c0946f87d0b3ff87bf8a88d5fc
https://github.com/llvm/llvm-project/commit/10d3708a0bb8c1c0946f87d0b3ff87bf8a88d5fc
Author: Anonmiraj <ezzibrahimx at gmail.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Log Message:
-----------
[IndVarSimplify] Batch forgetValue calls in sinkUnusedInvariants (#219025)
It looks like every `forgetValue` clears the cached SCEV for an
instruction and everything downstream of it, by walking its def-use
children in `visitAndClearUsers` / `PushDefUseChildren` with a fresh
`Visited` each call. Since `sinkUnusedInvariants` calls `forgetValue`
once per sunk instruction, the overlapping users get re-walked over and
over, so it ends up $O(n^2)$.
```cpp
void ScalarEvolution::forgetValue(Value *V) {
SmallPtrSet<Instruction *, 8> Visited;
visitAndClearUsers(Worklist, Visited, ToForget);
...
}
// visitAndClearUsers
while (!Worklist.empty()) {
Instruction *I = Worklist.pop_back_val();
...
ValueExprMap ... erase ...
PushDefUseChildren(I, Worklist, Visited);
}
// PushDefUseChildren
for (User *U : I->users()) {
auto *UserInsn = cast<Instruction>(U);
if (Visited.insert(UserInsn).second)
Worklist.push_back(UserInsn);
}
```
Collecting the sunk instructions and clearing them in one batched call
fixes the issue.
Before / after on the reproducer from the issue
| | before | after |
|---|---|---|
| `IndVarSimplifyPass` | 226.70s | 0.087s |
| total compile (wall) | 3:45.7 | 3.9s |
fixes #194308
Commit: eefb335b0b955ed1b52416096daf66d7b1617452
https://github.com/llvm/llvm-project/commit/eefb335b0b955ed1b52416096daf66d7b1617452
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/Support/GenericLoopInfo.h
M llvm/include/llvm/Support/GenericLoopInfoImpl.h
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/lib/Transforms/Utils/LoopSimplify.cpp
Log Message:
-----------
[LoopInfo] Merge changeTopLevelLoop and replaceChildLoopWith. NFC (#221503)
Both replace a loop among its siblings with a new one.
Commit: da9625ca5a1517ec21224e3467be3ff250887061
https://github.com/llvm/llvm-project/commit/da9625ca5a1517ec21224e3467be3ff250887061
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
Log Message:
-----------
[SCEV] Strip unnecessary conversions around SCEVUse (NFC) (#219921)
Commit: 3afdb99e56063b7506b3b519f096afab71b2b75a
https://github.com/llvm/llvm-project/commit/3afdb99e56063b7506b3b519f096afab71b2b75a
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/Hashing.h
M llvm/include/llvm/IR/Attributes.h
M llvm/lib/IR/AttributeImpl.h
M llvm/lib/IR/Attributes.cpp
M llvm/lib/IR/LLVMContextImpl.h
M llvm/unittests/ADT/HashingTest.cpp
Log Message:
-----------
[IR] Unique attribute sets and lists in a UniquingSet. NFC (#221525)
Switch to UniquingSet to remove FoldingSetNodeID serialization overhead
on every AttributeSet::get and AttributeList::get.
Attribute and AttributeSet are single-pointer wrappers whose operator==
is pointer equality. Specializing `is_hashable_data` selects the fast
`hash_combine_range_impl` overload that calls `combine_bytes` directly,
skipping copying element by element.
`hash_combine_range` deduces its element type as `const T`, so
`is_hashable_data<const T>` now follows `is_hashable_data<T>` and a type
need only specialize the unqualified form.
Aided by Opus 5
Commit: b4cc124029c86213e5ebb7eec392d6a173eb243a
https://github.com/llvm/llvm-project/commit/b4cc124029c86213e5ebb7eec392d6a173eb243a
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] Add getUnpack wrapper to select between getUnpackl/h shuffles. NFC. (#221543)
Prep work for improving CLMULH vXi32 lowering.
Commit: 8d10d1f9e653f2ac5e72ed3e1dba73a4af30b351
https://github.com/llvm/llvm-project/commit/8d10d1f9e653f2ac5e72ed3e1dba73a4af30b351
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/IR/FMF.h
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
Log Message:
-----------
[AMDGPU] Add FastMathFlags::intersectValue helper for rsq ninf/nsz fix (#217724)
Commit: 44888f035b0f6049d6fae38addb02adf7d53c803
https://github.com/llvm/llvm-project/commit/44888f035b0f6049d6fae38addb02adf7d53c803
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/test/CodeGenCUDA/fp-contract.cu
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AArch64/arm64-fma-combine-with-fpfusion.ll
M llvm/test/CodeGen/AArch64/fp-dp3.ll
M llvm/test/CodeGen/AArch64/neon-fma.ll
M llvm/test/CodeGen/AMDGPU/madak.ll
M llvm/test/CodeGen/Hexagon/float-amode.ll
M llvm/test/CodeGen/Hexagon/fmadd.ll
M llvm/test/CodeGen/Hexagon/fp_latency.ll
M llvm/test/CodeGen/LoongArch/double-fma.ll
M llvm/test/CodeGen/LoongArch/float-fma.ll
M llvm/test/CodeGen/LoongArch/lasx/fma-v4f64.ll
M llvm/test/CodeGen/LoongArch/lasx/fma-v8f32.ll
M llvm/test/CodeGen/LoongArch/lsx/fma-v2f64.ll
M llvm/test/CodeGen/LoongArch/lsx/fma-v4f32.ll
M llvm/test/CodeGen/PowerPC/a2-fp-basic.ll
M llvm/test/CodeGen/PowerPC/fma-assoc.ll
M llvm/test/CodeGen/PowerPC/fma-ext.ll
M llvm/test/CodeGen/PowerPC/fma.ll
M llvm/test/CodeGen/PowerPC/ppc440-fp-basic.ll
M llvm/test/CodeGen/PowerPC/vsx-fma-mutate-trivial-copy.ll
M llvm/test/CodeGen/SPARC/float-ua2007.ll
M llvm/test/CodeGen/Thumb2/mve-fmas.ll
Log Message:
-----------
DAGCombiner: Drop AllowFPOpFusion from visitFADDForFMACombine (#221436)
Rewrites fp-dp3.ll to use flags on individual patterns. It weirdly
used different triples for the fp-contract on and off cases, seemingly
an artifact of the ARM64 and AArch64 merge.
fp-contract.cu is essentially a bugfix, the local fp contract(on) pragma
wins over the global flag now.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 8d573f50cfa28cb7e236e804ad950e37edadb2fc
https://github.com/llvm/llvm-project/commit/8d573f50cfa28cb7e236e804ad950e37edadb2fc
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
R orc-rt/include/orc-rt-internal/bedrock/Environment.h
A orc-rt/include/orc-rt-internal/bedrock/sys/DynamicLibrary.h
A orc-rt/include/orc-rt-internal/bedrock/sys/Memory.h
A orc-rt/include/orc-rt-internal/support/Environment.h
M orc-rt/include/orc-rt-internal/support/sys/CacheControl.h
R orc-rt/include/orc-rt-internal/support/sys/DynamicLibrary.h
M orc-rt/include/orc-rt-internal/support/sys/Errno.h
R orc-rt/include/orc-rt-internal/support/sys/Memory.h
R orc-rt/include/orc-rt-internal/support/sys/darwin/CacheControl.h
M orc-rt/lib/CMakeLists.txt
M orc-rt/lib/bedrock/CMakeLists.txt
R orc-rt/lib/bedrock/Environment.cpp
R orc-rt/lib/bedrock/Error.cpp
R orc-rt/lib/bedrock/Logging.cpp
R orc-rt/lib/bedrock/Logging_oslog.cpp
R orc-rt/lib/bedrock/Logging_printf.cpp
M orc-rt/lib/bedrock/NativeDylibManager.cpp
R orc-rt/lib/bedrock/RTTI.cpp
M orc-rt/lib/bedrock/SimpleNativeMemoryMap.cpp
M orc-rt/lib/bedrock/sys/posix/DynamicLibrary.cpp
R orc-rt/lib/bedrock/sys/posix/Errno.cpp
M orc-rt/lib/bedrock/sys/posix/Memory.cpp
A orc-rt/lib/support/CMakeLists.txt
A orc-rt/lib/support/Error.cpp
A orc-rt/lib/support/Logging.cpp
A orc-rt/lib/support/Logging_oslog.cpp
A orc-rt/lib/support/Logging_printf.cpp
A orc-rt/lib/support/RTTI.cpp
Log Message:
-----------
[orc-rt] Split support sources into their own object library (#221442)
This allows support to be used by both bedrock and the upcoming SPIRE
library. Note that support is a CMake object library only, not an
archive or dylib. Clients will always target either Bedrock or SPIRE.
Moves some sources (Error, RTTI, Logging, Environment and the whole sys/
tree), and some headers (Environment.h, and the orc-rt/bedrock/sys
headers) to the support library.
The per-system source composition moves to lib/support/CMakeLists.txt.
An upcomming commit will update the unit tests to reflect this split.
Commit: 502e51aa4df687807fbe51fa0b419baf65e9615f
https://github.com/llvm/llvm-project/commit/502e51aa4df687807fbe51fa0b419baf65e9615f
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/test/CodeGenCUDA/fp-contract.cu
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AArch64/arm64-fma-combine-with-fpfusion.ll
M llvm/test/CodeGen/AArch64/fp-dp3.ll
M llvm/test/CodeGen/AArch64/neon-fma.ll
M llvm/test/CodeGen/AMDGPU/madak.ll
M llvm/test/CodeGen/Hexagon/float-amode.ll
M llvm/test/CodeGen/Hexagon/fmadd.ll
M llvm/test/CodeGen/Hexagon/fp_latency.ll
M llvm/test/CodeGen/LoongArch/double-fma.ll
M llvm/test/CodeGen/LoongArch/float-fma.ll
M llvm/test/CodeGen/LoongArch/lasx/fma-v4f64.ll
M llvm/test/CodeGen/LoongArch/lasx/fma-v8f32.ll
M llvm/test/CodeGen/LoongArch/lsx/fma-v2f64.ll
M llvm/test/CodeGen/LoongArch/lsx/fma-v4f32.ll
M llvm/test/CodeGen/PowerPC/a2-fp-basic.ll
M llvm/test/CodeGen/PowerPC/fma-assoc.ll
M llvm/test/CodeGen/PowerPC/fma-ext.ll
M llvm/test/CodeGen/PowerPC/fma.ll
M llvm/test/CodeGen/PowerPC/ppc440-fp-basic.ll
M llvm/test/CodeGen/PowerPC/vsx-fma-mutate-trivial-copy.ll
M llvm/test/CodeGen/SPARC/float-ua2007.ll
M llvm/test/CodeGen/Thumb2/mve-fmas.ll
Log Message:
-----------
Revert "DAGCombiner: Drop AllowFPOpFusion from visitFADDForFMACombine" (#221561)
Reverts llvm/llvm-project#221436
Bots failing
Commit: 75861cf76db57cdb4a92134ebdaf847e4a70de81
https://github.com/llvm/llvm-project/commit/75861cf76db57cdb4a92134ebdaf847e4a70de81
Author: Hadong Lee <hdchris765 at snu.ac.kr>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
A llvm/test/Transforms/InstCombine/scalbn-to-ldexp.ll
Log Message:
-----------
[InstCombine] Fold scalbn libcalls to llvm.ldexp (#216573)
This canonicalizes `scalbn`, `scalbnf`, and `scalbnl` libcalls to the
`llvm.ldexp` intrinsic when the call does not access memory.
LLVM floating-point types use radix 2, so `scalbn(x, n)` and `ldexp(x,
n)` produce the same numeric result.
Calls that may access memory are left unchanged because the libcall may
set `errno`, while `llvm.ldexp` does not access memory.
Fixes #216467
Commit: de3dd2dc277f4bab62dc840c26e794544f69393b
https://github.com/llvm/llvm-project/commit/de3dd2dc277f4bab62dc840c26e794544f69393b
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/test/CodeGenCUDA/fp-contract.cu
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AArch64/arm64-fma-combine-with-fpfusion.ll
M llvm/test/CodeGen/AArch64/fp-dp3.ll
M llvm/test/CodeGen/AArch64/neon-fma.ll
M llvm/test/CodeGen/AMDGPU/madak.ll
M llvm/test/CodeGen/ARM/fp16-instructions.ll
M llvm/test/CodeGen/Hexagon/float-amode.ll
M llvm/test/CodeGen/Hexagon/fmadd.ll
M llvm/test/CodeGen/Hexagon/fp_latency.ll
M llvm/test/CodeGen/LoongArch/double-fma.ll
M llvm/test/CodeGen/LoongArch/float-fma.ll
M llvm/test/CodeGen/LoongArch/lasx/fma-v4f64.ll
M llvm/test/CodeGen/LoongArch/lasx/fma-v8f32.ll
M llvm/test/CodeGen/LoongArch/lsx/fma-v2f64.ll
M llvm/test/CodeGen/LoongArch/lsx/fma-v4f32.ll
M llvm/test/CodeGen/PowerPC/a2-fp-basic.ll
M llvm/test/CodeGen/PowerPC/fma-assoc.ll
M llvm/test/CodeGen/PowerPC/fma-ext.ll
M llvm/test/CodeGen/PowerPC/fma.ll
M llvm/test/CodeGen/PowerPC/ppc440-fp-basic.ll
M llvm/test/CodeGen/PowerPC/vsx-fma-mutate-trivial-copy.ll
M llvm/test/CodeGen/SPARC/float-ua2007.ll
M llvm/test/CodeGen/Thumb2/mve-fmas.ll
Log Message:
-----------
Reapply "DAGCombiner: Drop AllowFPOpFusion from visitFADDForFMACombine" (#221561) (#221567)
This reverts commit 502e51aa4df687807fbe51fa0b419baf65e9615f.
Commit: 7f04c2bac295f340cbf88a294e8ff4eeb89e97d7
https://github.com/llvm/llvm-project/commit/7f04c2bac295f340cbf88a294e8ff4eeb89e97d7
Author: Teresa Johnson <tejohnson at google.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/ADT/SetOperations.h
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
M llvm/unittests/ADT/SetOperationsTest.cpp
Log Message:
-----------
[ADT][MemProf] Optimize set_subtract with removed-set output and use in MemProf (#221372)
Add a 3-argument set_subtract(A, B, Removed) that computes A := A - B
and records elements of B removed from A (A ^ B) in Removed. When
A.size() < B.size(), B supports contains(), and A supports remove_if(),
we iterate over A via remove_if() instead of iterating over B, improving
efficiency.
Remove the legacy 4-argument set_subtract(A, B, Removed, Remaining),
which was only used by MemProfContextDisambiguation.cpp and is now
redundant since Remaining can be updated via a separate 2-argument
set_subtract.
Update MemProfContextDisambiguation to use the 3-argument set_subtract,
and update SetOperations unit tests.
Commit: 64171f09367ae70475eebe9184353ca5948681fb
https://github.com/llvm/llvm-project/commit/64171f09367ae70475eebe9184353ca5948681fb
Author: Bhavesh M <85327930+beamandala at users.noreply.github.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/Affine/IR/AffineOps.h
M mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
M mlir/lib/Dialect/Affine/IR/CMakeLists.txt
A mlir/lib/Dialect/Affine/IR/MemorySlot.cpp
A mlir/test/Dialect/Affine/mem2reg.mlir
Log Message:
-----------
[mlir][affine] Implement PromotableRegionOpInterface for AffineForOp (#221123)
The `mem2reg` pass couldn't promote memory slots accessed within an
`affine.for` because `AffineForOp` did not implement
`PromotableRegionOpInterface`, leading to the stack allocation and its
accesses to not be eliminated.
This change implements `PromotableRegionOpInterface` for `AffineForOp`,
allowing `mem2reg` to promote memory slots through affine loops.
Commit: ebb7e0cc79c17b6a7db53e128dd3f9afb4f26b4e
https://github.com/llvm/llvm-project/commit/ebb7e0cc79c17b6a7db53e128dd3f9afb4f26b4e
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M libc/src/__support/GPU/allocator.cpp
Log Message:
-----------
[libc] Fix chunk calculation in GPU allocator (#221583)
Summary:
This would pesismistically round up 48 to 64 and the previous s0 case
was unused.
Commit: 5840db809d3ff2dc194ccc43bd0be2f36c629185
https://github.com/llvm/llvm-project/commit/5840db809d3ff2dc194ccc43bd0be2f36c629185
Author: Kazu Hirata <kazu at google.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Log Message:
-----------
[SelectionDAG] Remove dead functions (NFC) (#221541)
SelectionDAG::getBitcastedSExtOrTrunc,
SelectionDAG::getBitcastedZExtOrTrunc: Added on August 11, 2023 in
commit d26a06728da84a7302875a99ea86e887f6bc425a without any callers.
Assisted-by: Antigravity
Commit: 279669940711bea1a54d063110d26e5447f67604
https://github.com/llvm/llvm-project/commit/279669940711bea1a54d063110d26e5447f67604
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/loop-accumulator-reduction.ll
Log Message:
-----------
[SLP][NFC]Add more tests for loop accumulator reductions, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221591
Commit: 5735d17306b8c8aca559ef6c35136c44a12221d7
https://github.com/llvm/llvm-project/commit/5735d17306b8c8aca559ef6c35136c44a12221d7
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M flang/lib/Frontend/CompilerInstance.cpp
M llvm/include/llvm/CodeGen/CommandFlags.h
M llvm/include/llvm/MC/MCTargetOptions.h
M llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
M llvm/include/llvm/Target/TargetOptions.h
M llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp
M llvm/lib/CodeGen/CommandFlags.cpp
M llvm/lib/LTO/LTOCodeGenerator.cpp
M llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
Log Message:
-----------
MC: Move DisableIntegratedAS from TargetOptions to MCTargetOptions (#221547)
The integrated assembler is only meaningful in MC, so this field belongs
in MCTargetOptions alongside the other assembler options rather than in
the codegen-level TargetOptions.
Co-authored-by: Claude (Claude-Opus-4.8)
Commit: 42012a90b98a62359547f0b72e8215a4037cc711
https://github.com/llvm/llvm-project/commit/42012a90b98a62359547f0b72e8215a4037cc711
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang-tools-extra/clangd/CompileCommands.cpp
M clang/lib/Options/DriverOptions.cpp
M llvm/include/llvm/Option/OptTable.h
M llvm/include/llvm/Option/Option.h
M llvm/lib/Option/OptTable.cpp
M llvm/lib/Option/Option.cpp
M llvm/unittests/Option/OptionParsingTest.cpp
M llvm/unittests/Option/Opts.td
M llvm/utils/TableGen/OptionParserEmitter.cpp
Log Message:
-----------
[OptTable] Store Info strings in the string table (#218845)
Change HelpText, MetaVar, AliasArgs, and Values from `const char *` to
StringTable::offset, making the fields smaller, and removing dynamic
relocations in .data.rel.ro in PIC links.
Store them as StringTable::Offset, like the option names already are,
and return StringRef from getOptionHelpText() and getOptionMetaVar().
The 53 tables in the tree lose all 616 KB of .data.rel.ro, and sizeof(Info)
drops from 88 to 60; clang's table becomes 232 KB of .rodata.
An unset field and one explicitly set to the empty string, such as a
HelpText<"">, have to stay distinguishable, so the latter gets an empty
string of its own rather than offset zero.
Values declared with ValuesCode are only known to the generated code,
which supplies getOptionValuesCode() for OptTable to call; only clang has any.
Aided by Opus 5
Commit: 1e4858aa1d7bc70da4af88428be54d3207e03858
https://github.com/llvm/llvm-project/commit/1e4858aa1d7bc70da4af88428be54d3207e03858
Author: Matt Turner <mattst88 at gmail.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
A compiler-rt/test/asan/TestCases/complete_stack_trace.c
Log Message:
-----------
[asan][test] Check that stack traces are not truncated (#221518)
Add a test that the access, free and malloc traces each name the whole
call
chain down to `main`, in order, and that each names its own call site in
`main`. A trace that stops early -- as every trace but the access one
does when
the fast unwinder runs on a target that chains no frames -- fails it.
`deep_stack_uaf.cpp` already covers trace depth, but it looks for three
individual frames anywhere in the trace, so it passes on a trace with
holes in
it, and it needs C++ name demangling to do that.
Split out of #220231 at reviewer request.
Assisted-by: Claude Code
Commit: ec37fb6d53400e631f1bf7600fb48651816d7092
https://github.com/llvm/llvm-project/commit/ec37fb6d53400e631f1bf7600fb48651816d7092
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Fix formatting, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221596
Commit: bb3fe4afe7ed81ae6bebc06a1849ca79de236fbe
https://github.com/llvm/llvm-project/commit/bb3fe4afe7ed81ae6bebc06a1849ca79de236fbe
Author: Šárka Holendová <72979252+mlir-maiden at users.noreply.github.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M flang/include/flang/Evaluate/intrinsics.h
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Semantics/simple-intrinsics.f90
Log Message:
-----------
[flang] Reclassify MVBITS, SPLIT, and TOKENIZE as SIMPLE (#205024)
F2023 makes MVBITS a simple elemental subroutine and SPLIT/TOKENIZE
simple subroutines.
This change:
- adds `simpleSubroutine` and `simpleElementalSubroutine` to
`IntrinsicClass`,
- reclassifies the MVBITS, SPLIT, and TOKENIZE intrinsic table entries,
- propagates `SIMPLE` through intrinsic resolution and procedure
characteristics.
MOVE_ALLOC is not included in this change.
Commit: 3da98991742d9880c31550f0bc13cab95f9a08a1
https://github.com/llvm/llvm-project/commit/3da98991742d9880c31550f0bc13cab95f9a08a1
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M flang-rt/include/flang-rt/runtime/connection.h
M flang-rt/include/flang-rt/runtime/file.h
M flang/include/flang/Common/optional.h
Log Message:
-----------
[flang-rt] Initialize I/O unit storage read by short-circuit predicates (#221126)
ConnectionState and OpenFile hold common::optional members read through
predicates of the form `opt && x < *opt`, which never use an indeterminate
value in the abstract machine. Compilers do, however, routinely if-convert
the short-circuit && into a branchless compare and select, which speculates
the payload load; because these objects are placement-new'd into malloc'd
storage by UnitMap::Create(), a memory checker then reports a conditional
branch that depends on uninitialized memory. On AArch64 this fires for
every Fortran program that writes a record, giving two reports in
ExternalFileUnit::AdvanceRecord() from IsAfterEndfile() and IsAtEOF(),
while x86-64 is unaffected and libgfortran is clean on the same program and
host. The reports are false positives -- the engaged flag is 0, so both arms
of the select are 0 -- but they are unavoidable noise for anyone running
Valgrind on Fortran code.
Add common::ResetWithDefinedPayload(), which leaves an optional disengaged
while writing its payload storage, and call it at construction for the
optionals in ConnectionAttributes, ConnectionState and OpenFile. Also
initialize OpenFile::pathLength_, which is read through the same
if-convertible shape by the unit-lookup-by-path scans in external-unit.cpp
and unit-map.cpp. No observable behavior changes.
No test is added: the difference is in shadow-memory definedness, which
neither a LIT test nor a flang-rt unit test can observe, and there is no MSan
or Valgrind CI for flang-rt. Verified by compiling the patched headers into a
standalone probe on AArch64, where the unpatched headers give two reports
and the patched headers give none with identical program output, and by
check-flang-rt.
Co-authored-by: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Fixes #220633
Assisted-by: AI
Commit: 6c978c67dfdd3514f8d1ddbcaba8814cacc17bf7
https://github.com/llvm/llvm-project/commit/6c978c67dfdd3514f8d1ddbcaba8814cacc17bf7
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/AArch64/loop-accumulator-reduction.ll
Log Message:
-----------
[SLP][NFC]Add some more tests for loop accumulated reductions, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221597
Commit: 7fd679a3fdb585f2fd75d950e396c11901bfd62c
https://github.com/llvm/llvm-project/commit/7fd679a3fdb585f2fd75d950e396c11901bfd62c
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 64171f0 (#221585)
This fixes 64171f09367ae70475eebe9184353ca5948681fb (#221123).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=64171f09367ae70475eebe9184353ca5948681fb
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: cc4b3c91c6d3b557d175622c2c326e98ced61fbe
https://github.com/llvm/llvm-project/commit/cc4b3c91c6d3b557d175622c2c326e98ced61fbe
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/Hexagon/sffms.ll
Log Message:
-----------
DAGCombiner: Drop AllowFPOpFusion from visitFSUBForFMACombine (#221439)
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: c2dd24dc601f9e7f66ec813ab33baab34585d506
https://github.com/llvm/llvm-project/commit/c2dd24dc601f9e7f66ec813ab33baab34585d506
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/test/Transforms/InstCombine/overflow-mul.ll
M llvm/test/Transforms/InstCombine/saturating-add-sub.ll
M llvm/test/Transforms/InstCombine/uadd-with-overflow.ll
Log Message:
-----------
[InstCombine] Canonicalize zext+overflow check to overflow check if zext's only purpose is to check overflow (#220658)
Change processUMulZExtIdiom to also support adds, since the idiom is the
same, except with add instead of mul.
Alive2: https://alive2.llvm.org/ce/z/SsB4AK
Commit: 08fb771d71de39421d1e9e200c8b8a0b06d74220
https://github.com/llvm/llvm-project/commit/08fb771d71de39421d1e9e200c8b8a0b06d74220
Author: Avi Kivity <avi at scylladb.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/test/DebugInfo/CXX/limited-ctor.cpp
Log Message:
-----------
Revert "[DebugInfo] Ignore undefined constexpr constructors in constructor homing." (#221566)
This reverts commit
https://github.com/llvm/llvm-project/commit/6ba0802b406e0963720a698702b9136578dde149
(https://github.com/llvm/llvm-project/pull/218165).
canUseCtorHoming() used to bail out on
hasConstexprNonCopyMoveConstructor().
That commit narrowed the exemption to *defined* constexpr constructors,
on the
assumption that a constructor which is not defined here will be defined
- and
will therefore emit the type's debug info - in whichever translation
unit
constructs the object.
That assumption does not hold when the constructor is never invoked at
all. A
constructor of a class template specialization is only instantiated, and
hence
only defined, where it is used. If nothing ever constructs the
specialization,
its constructors are defined in no translation unit, and so nothing
anywhere
homes the type - even though the type still has to be complete in order
to read
a member.
(The reverted commit's stated rationale, that "declared constexpr
constructors
are not callable in a TU that doesn't see their definition", does not
hold
either: such a constructor can be called outside a constant expression,
with
the definition supplied by another translation unit, and clang emits an
ordinary external call for it. But that is not what breaks here.)
Unions of layout-compatible types are where this bites. The common
initial
sequence rule ([class.mem.general]p26, 9.2/19 in C++11) lets a program
write
through one union member and read through another where the two share a
common
initial sequence, and absl::container_internal::map_slot_type is built
on it:
it aliases std::pair<const K, V> and std::pair<K, V> so that
flat_hash_map<K, V> can hand out pair<const K, V> references while still
moving
keys efficiently. Slots are created and destroyed through the mutable
pair and
only read through the const-key one, so a std::pair<const K, V> is never
constructed, none of its constructors is ever instantiated, and its type
is
emitted nowhere.
Reduced, and linkable - the following compiles, links and returns 0:
template <class A, class B> struct mypair {
A first;
B second;
constexpr mypair() : first(), second() {}
constexpr mypair(const A& a, const B& b) : first(a), second(b) {}
};
template <class K, class V>
union map_slot_type {
map_slot_type() {}
~map_slot_type() {}
using value_type = mypair<const K, V>; // read, never constructed
using mutable_value_type = mypair<K, V>; // constructed
value_type value;
mutable_value_type mutable_value;
K key;
};
map_slot_type<unsigned long, void*> slot;
int marker;
int main() {
slot.mutable_value = mypair<unsigned long, void*>(42, &marker);
return (slot.value.first == 42 && slot.value.second == &marker) ? 0 : 1;
}
mypair<unsigned long, void*> is constructed and keeps its debug info.
mypair<const unsigned long, void*> is only read, and is emitted as a
declaration in every translation unit, so a debugger cannot show first
and
second:
clang 22.1.8 DW_AT_byte_size (0x10)
clang 24.0.0git DW_AT_declaration (true)
This is how it was found - gdb reporting "<incomplete type>" for
std::pair<const size_t, ...> in ScyllaDB, which broke the flat_hash_map
readers
in its gdb scripts.
Keep the test coverage the reverted commit added for the cases whose
expected
output is unchanged, restore the DeclaredConstexpr expectation to full
debug
info, and add the aliased-pair case above.
Fixes https://github.com/llvm/llvm-project/issues/221560
Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Commit: 68f48bd751e4def54642707b2e44bbcab4f8d948
https://github.com/llvm/llvm-project/commit/68f48bd751e4def54642707b2e44bbcab4f8d948
Author: benscharl <benscharl42 at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstCombine/icmp-power2-and-icmp-shifted-mask.ll
M llvm/test/Transforms/InstCombine/nested-select.ll
M llvm/unittests/Analysis/ValueTrackingTest.cpp
Log Message:
-----------
[ValueTracking] Infer implied conditions through masked bit tests (#219626)
Fixes #214397
`isImpliedCondICmps` failed when one compare constrains X and the other
tests a value derived from X. For example:
`X u<13` implies `(X & 16) == 0`
This adds an additional check. When both compares have constant RHS
operands and the second compare's LHS is `and (L0, C)`, following
strategy is applied: L0's range is derived from the first compare and
the mask is applied. If the resulting range satisfies the second
predicate for all values, the implication is correct. If the inverse
predicate is satisfied for all values, the implication is false.
Otherwise the result is unknown.
Alive2: https://alive2.llvm.org/ce/z/aa62Yy
Commit: e384c0d60bf44f432a9e9d56c81c2f372452fb02
https://github.com/llvm/llvm-project/commit/e384c0d60bf44f432a9e9d56c81c2f372452fb02
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/test/Analysis/LoopAccessAnalysis/all-ones-null-pointer.ll
M llvm/test/Analysis/LoopAccessAnalysis/evaluate-at-symbolic-max-backedge-taken-count-may-wrap.ll
M llvm/test/Analysis/LoopAccessAnalysis/negative-step-deref-off-by-eltsize.ll
M llvm/test/Analysis/LoopAccessAnalysis/retry-runtime-checks-after-dependence-analysis-forked-pointers.ll
M llvm/test/Analysis/LoopAccessAnalysis/symbolic-stride.ll
Log Message:
-----------
[LAA] Fix inverted bounds for negative-step AddRecs with unknown end. (#218388)
Currently we use an conservative upper bound (-1) for runtime checks
when evaluating the AddRec may wrap.
This does not properly account for negative steps. In that case, we need
to use null as conservative lower bound.
One complication is that the null pointer may not be zero, so we need to
check for that, and bail out completely if that's the case. We then must
clean up any pointers partially added.
PR: https://github.com/llvm/llvm-project/pull/218388
Commit: be3c61a954c5f80f179991df6eefa3d4e3570bba
https://github.com/llvm/llvm-project/commit/be3c61a954c5f80f179991df6eefa3d4e3570bba
Author: Yongqiang Tian <yqtian668 at gmail.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachineOutliner.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/lib/CodeGen/MachineOutliner.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
A llvm/test/CodeGen/AArch64/machine-outliner-debug-admission.mir
M llvm/test/CodeGen/AArch64/machine-outliner-macho-compact-unwind-frame.mir
M llvm/test/CodeGen/AArch64/machine-outliner-mapper-stats.mir
M llvm/test/CodeGen/AArch64/machine-outliner-mapping-stats.mir
A llvm/test/CodeGen/AArch64/machine-outliner-range-debug.mir
A llvm/test/CodeGen/RISCV/machine-outliner-debug-codegen.mir
A llvm/test/CodeGen/RISCV/machine-outliner-mapper-debug-state.mir
Log Message:
-----------
[MachineOutliner] Properly handle Debug MachineInstrs (#219326)
Fixes #219176.
Debug instructions could affect `MachineOutliner` output in two ways:
- The minimum basic-block size check used `MachineBasicBlock::size()`,
which includes debug instructions. A block containing one ordinary
instruction and one debug instruction could therefore enter the mapper
even though it was too small to outline.
- Mapping an invisible debug instruction cleared `AddedIllegalLastTime`.
This changed the separator state and could affect persistent token
numbering, outlined-function ordering, and ultimately the generated
object code.
This patch makes debug instructions transparent to both decisions:
- Use the non-debug instruction count for the minimum block-size check.
- Preserve the mapper's separator state for debug instructions while
retaining the existing behavior for other invisible pseudos.
The patch adds MIR coverage for both cases and updates the existing
mapper statistics test to reflect blocks that are now skipped.
Testing:
- The original reproducer produces identical ordinary MIR before and
after the outliner for `-g0` and `-g`.
- The normalized machine-code fingerprints for the original reproducer
are identical with and without debug information.
- The complete AArch64 and RISC-V CodeGen test directories pass: 6852
passed, 5 expectedly failed, 0 failed.
AI assistance disclosure: OpenAI Codex 5.6 Sol assisted with the
implementation and testing. The changes were co-reviewed by Claude and
Yongqiang Tian.
Commit: adbd9456bdc3cf6287f3cee6fb15424f6f5001cc
https://github.com/llvm/llvm-project/commit/adbd9456bdc3cf6287f3cee6fb15424f6f5001cc
Author: David Tellenbach <dtellenbach at apple.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
A llvm/test/CodeGen/AArch64/cmpbr-ccmp.ll
A llvm/test/CodeGen/AArch64/cmpbr-ccmp.mir
Log Message:
-----------
[AArch64] Allow forming CCMPs for CB branches (#221111)
AArch64ConditionalCompares currently doesn't consider FEAT_CMPBR CB
instructions when trying to form CCMPs. This leads to a lot more
branches which is usually hurtful for performance.
The patchs adds handling CB instructions, just like we do for other
fused conditional branches such as CBZ or CBNZ.
Commit: 067b6d90b64e8f43c9a2388530b7f98911d77421
https://github.com/llvm/llvm-project/commit/067b6d90b64e8f43c9a2388530b7f98911d77421
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
A orc-rt/test/unit/BedrockTestUtils.h
M orc-rt/test/unit/CMakeLists.txt
M orc-rt/test/unit/CommonTestUtils.h
M orc-rt/test/unit/bedrock/BootstrapInfoTest.cpp
M orc-rt/test/unit/bedrock/InProcessControllerAccessTest.cpp
M orc-rt/test/unit/bedrock/NativeDylibManagerTest.cpp
M orc-rt/test/unit/bedrock/SessionTest.cpp
M orc-rt/test/unit/bedrock/SimpleNativeMemoryMapTest.cpp
M orc-rt/test/unit/bedrock/sps/NativeDylibManagerSPSCITest.cpp
M orc-rt/test/unit/bedrock/sps/SimpleNativeMemoryMapSPSCITest.cpp
M orc-rt/test/unit/bedrock/sps/SimpleRemoteCATest.cpp
M orc-rt/test/unit/support/ProxyTest.cpp
Log Message:
-----------
[orc-rt] Split unit tests into SupportTests and BedrockTests (#221562)
Replace CoreTests with one test binary per layer. SupportTests links the
Support object library and nothing else, so a new support-to-bedrock
dependency fails to link rather than going unnoticed.
Making that work required splitting CommonTestUtils.h: its
Bedrock-dependent helpers move to a new BedrockTestUtils.h, so that no
SupportTests translation unit includes a Bedrock header. That in turn
lets ProxyTest join SupportTests -- Proxy.h only forward-declares
Session, so the test can define its own instead of constructing a real
one.
Commit: b1f20dd48e11439d5a592662b407e07d8213ffee
https://github.com/llvm/llvm-project/commit/b1f20dd48e11439d5a592662b407e07d8213ffee
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M llvm/lib/TableGen/StringToOffsetTable.cpp
Log Message:
-----------
[TableGen] Escape single quotes when emitting a string table as char literals (#221612)
Fix a latent bug in StringToOffsetTable, which led to breakage after
#218845
```
C:\_work\llvm-project\llvm-project\build\tools\clang\include\clang/Options/Options.inc(135,18): error: expected expression
C:\_work\llvm-project\llvm-project\build\tools\clang\include\clang/Options/Options.inc(135,24): warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
135 | 'D', 'o', 'n', ''', 't', ' ', 'e', 'm', 'i', 't', ' ', 'e', 'r', 'r', 'o', 'r', 's', ' ', 'o', 'n', ' ', 'i', 'n', 'v', 'a', 'l', 'i', 'd', ' ', 'a', 'n', 'a', 'l', 'y', 'z', 'e', 'r', '-', 'c', 'o', 'n', 'f', 'i', 'g', ' ', 'i', 'n', 'p', 'u', 't', 's', '\0',
| ^
```
Commit: 91d3532e2261e168e85ebcf5c5112419b47ef530
https://github.com/llvm/llvm-project/commit/91d3532e2261e168e85ebcf5c5112419b47ef530
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/include/clang/Basic/ABIVersions.def
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/Targets/X86.cpp
A clang/test/CodeGen/X86/x86_64-unnamed-bitfield-abi-compat.c
M llvm/include/llvm/ABI/TargetInfo.h
M llvm/lib/ABI/Targets/X86.cpp
Log Message:
-----------
[Clang][X86] Add Clang23Compat for __int128 bit-field ABI change (#220788)
Follow up of #216777.
Assisted-by: Claude Opus 4.8
Commit: c6fd19f0fe4eb4f9ddd978eb9a6dbc8039acc3dd
https://github.com/llvm/llvm-project/commit/c6fd19f0fe4eb4f9ddd978eb9a6dbc8039acc3dd
Author: Luke Lau <luke at igalia.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
Log Message:
-----------
[VPlan] Make m_False and m_True matchers stateless. NFC (#221581)
is_zero_int and is_one avoid storage unlike is_specific_int, and allow
the match function to be an inlined isZero/isOne call instead of
APInt::isSameValue.
Improves compile time:
https://llvm-compile-time-tracker.com/compare.php?from=8f7d3ba08f14c3d54b8b407d1758dbd1da01bb38&to=c766163e82ec7a377efc7a26ef1e6db38e0dec1d&stat=instructions:u
Commit: 2fb183588d6a5067f9a782b822968ddd0f6b4472
https://github.com/llvm/llvm-project/commit/2fb183588d6a5067f9a782b822968ddd0f6b4472
Author: Luke Lau <luke at igalia.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M lld/ELF/EhFrame.cpp
M lld/ELF/EhFrame.h
M lld/ELF/SyntheticSections.cpp
M lld/test/ELF/eh-frame-fde-encoding.s
R lld/test/ELF/eh-frame-hdr-zero-range.s
M lld/test/ELF/eh-frame-negative-pcrel-sdata2.s
M lld/test/ELF/eh-frame-negative-pcrel-sdata4.s
Log Message:
-----------
Revert "[ELF] Omit zero-range FDEs from .eh_frame_hdr" (#221624)
Reverts llvm/llvm-project#220492
This causes the RISC-V buildbots to fail in the exception handling
tests, see https://lab.llvm.org/buildbot/#/builders/210/builds/12623 for
the gauntlet build logs
Apologies this revert is coming in so late, there is a proposed fix at
https://github.com/llvm/llvm-project/pull/221342 but it looks like it
might require additional rounds of review so reverting to get the
buildbots back to green for now
cc @MaskRay @Prabhuk
Commit: 98baf03a3ca629fa2d690286fb751a05c9fd6965
https://github.com/llvm/llvm-project/commit/98baf03a3ca629fa2d690286fb751a05c9fd6965
Author: Dan Shan <3shandan at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M libcxx/docs/Status/Cxx26Issues.csv
M libcxx/include/__optional/comparison.h
M libcxx/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp
Log Message:
-----------
[libc++] Implement LWG4072: std::optional comparisons: constrain harder (#209968)
Resolves #118345.
Previously, the heterogeneous comparison operators (`==`, `!=`, `<`,
`<=`, `>`, `>=`) for arguments `T` and `U` don't check that `T` or `U`
are not a `std::optional` themselves. This allowed the operators to
cause ambiguous overload resolution instead of falling back to
`optional`'s own operators, which possibly caused hard error when there
should not be a matched overload.
This patch implements the resolution by adding
`!__is_std_optional_v<_Up>` (and the `_Tp` equivalent for the reversed)
to the constraints in all twelve involved operators.
As required by the LLVM Project's AI use policy:
- The fix and test processes were revised and verified with AI
assistance.
Commit: 4edfeaddedd4a1b337a1c17af571127c63f2bbd6
https://github.com/llvm/llvm-project/commit/4edfeaddedd4a1b337a1c17af571127c63f2bbd6
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
A llvm/test/CodeGen/AArch64/interleaved-load-combine-many-candidates.ll
Log Message:
-----------
[InterleavedLoadCombine] Index candidates to avoid quadratic matching (#213053)
Matching scanned every candidate against every other candidate, which
got very slow on functions with many interleaved loads. Index by address
offset and look up neighbors instead.
llc's Compile-time drops from 212s to ~2s on a Grace machine for the
test case in the issue.
[ Compile-time remains flat
](https://llvm-compile-time-tracker.com/?config=Overview&stat=instructions%3Au&remote=madhur13490)
Fixes #162299.
Assisted by Cursor.
Commit: 210e20a4967c19199ab3fe6eae7e9a2a52845459
https://github.com/llvm/llvm-project/commit/210e20a4967c19199ab3fe6eae7e9a2a52845459
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.h
Log Message:
-----------
[SLP][modularisation][NFC] Move getNumberOfParts, isAllowedNonPowerOf2VF (#220827)
Move the following BoUpSLP-independent type/width helpers out of
SLPVectorizer.cpp into SLPVectorizer/SLPTypeUtils.{h,cpp}:
getNumberOfParts
isAllowedNonPowerOf2VF
Both read a file-local cl::opt (SLPReVec and VectorizeNonPowerOf2
respectively). The options stay static in SLPVectorizer.cpp; the moved
helpers take their values as explicit bool parameters. Behavior is
unchanged.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
Commit: 18a91e03873c3f8c189e84f446040d7abd2abd66
https://github.com/llvm/llvm-project/commit/18a91e03873c3f8c189e84f446040d7abd2abd66
Author: Jim Lin <jim at andestech.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVProcessors.td
M llvm/test/CodeGen/RISCV/memcpy.ll
Log Message:
-----------
[RISCV] Andes: model fast unaligned accesses for the 45-series (#221166)
The 45-series cores support unaligned scalar accesses. Add
FeatureUnalignedScalarMem to each 45-series processor (andes-n45,
andes-nx45, andes-a45, andes-ax45 and andes-ax45mpv), so that it is
selected by -mcpu rather than -mtune. Other processors declare it this
way too. The feature is somewhat architectural: -mtune is only supposed
to affect performance, but reaching it through tune features lets -mtune
introduce unaligned accesses that crash on a CPU which does not support
them.
Cover this in memcpy.ll using -mcpu=andes-a45/-mcpu=andes-ax45. The new
RUN lines pass -mtune=rocket so that the 45-series scheduling model does
not reorder the output, letting them reuse the existing check lines.
Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Commit: 1f74b1a7093113a10d6e8762bad779be2cddfe8f
https://github.com/llvm/llvm-project/commit/1f74b1a7093113a10d6e8762bad779be2cddfe8f
Author: Vikram Hegde <Vikram.Hegde at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
M llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/amdgpu-prelegalizer-combiner-crash.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-add-nullptr.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fabs-fneg.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-redundant-and.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-rot.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-zext-trunc.mir
Log Message:
-----------
[AMDGPU][GIsel][NPM] Port "AMDGPUPreLegalizerCombiner" to NPM (#217222)
same as https://github.com/llvm/llvm-project/pull/215759
Commit: 2362eeb5f75560740146975e9eabe84c6bd25a0d
https://github.com/llvm/llvm-project/commit/2362eeb5f75560740146975e9eabe84c6bd25a0d
Author: Oliver Hunt <oliver at apple.com>
Date: 2026-09-06 (Sun, 06 Sep 2026)
Changed paths:
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
A clang/test/SemaCUDA/attr-instantiation-duplication-amdgpu.cu
A clang/test/SemaCUDA/attr-instantiation-duplication-spirv.cu
Log Message:
-----------
[clang][Sema][CUDA,SPIRV] Instantiating function templates duplicates GPU attrs (#218582)
A number of GPU related attributes were incorrectly falling back to the
generic attribute instatiation logic which resulted in duplicating the
attributes. The duplicates were also not correctly instantiated.
This also exposed a failure to prevent duplicate addition in
handleGlobalAttr as well.
Commit: b0aa16f2613e45acdaa5cb82db40bfb6359e6fda
https://github.com/llvm/llvm-project/commit/b0aa16f2613e45acdaa5cb82db40bfb6359e6fda
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
Log Message:
-----------
[SLP][modularisation][NFC] Move isFixedVectorShuffle to SLPUtils (#221639)
Move the BoUpSLP-independent shuffle helper out of SLPVectorizer.cpp
into SLPVectorizer/SLPUtils.{h,cpp}:
isFixedVectorShuffle
It sits with the existing shuffle/mask helpers. Behavior is unchanged.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
Commit: bfdc7668ae617a228d7d96604580fffc99d239ff
https://github.com/llvm/llvm-project/commit/bfdc7668ae617a228d7d96604580fffc99d239ff
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M orc-rt/lib/bedrock/CMakeLists.txt
M orc-rt/lib/support/CMakeLists.txt
M orc-rt/test/unit/CMakeLists.txt
Log Message:
-----------
[orc-rt] Compose Bedrock from object libraries (#221650)
Add orc-rt-bedrock-objects, and rename orc-rt-support to
orc-rt-support-objects, leaving orc-rt-bedrock as a shipped library with
no sources of its own that is composed from both. The -objects suffix
marks targets that produce no artifact.
The unit tests now link the object libraries directly rather than the
shipped library. This will allow them to continue working when Bedrock
becomes buildable as a dylib with no C++ API exported.
Commit: 8878fda06d6885971a4b2fc18d76546583b6dd0d
https://github.com/llvm/llvm-project/commit/8878fda06d6885971a4b2fc18d76546583b6dd0d
Author: Akimasa Watanuki <mencotton0410 at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
A clang/test/CIR/CodeGen/spirv-target-lowering-as.cpp
M clang/test/CIR/CodeGenOpenCL/address-space-conversions.cl
M clang/test/CIR/CodeGenOpenCL/address-spaces.cl
M clang/test/CIR/Lowering/address-space.cir
Log Message:
-----------
[CIR][OpenCL][NFC] Add language address-space lowering coverage (#219900)
Expand coverage for lowering OpenCL language address spaces through
target-specific CIR and LLVM IR, including comparison with classic
CodeGen.
Assisted-by: Codex / GPT-5.6 Sol
Commit: e81ab5ffd45b8d870fad4c8a0e14aea7d47f62cf
https://github.com/llvm/llvm-project/commit/e81ab5ffd45b8d870fad4c8a0e14aea7d47f62cf
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/include/llvm/CodeGen/CallingConvLower.h
Log Message:
-----------
[CodeGen] Increase CCState::UsedRegs inline capacity (NFC) (#221259)
CCState::UsedRegs holds one bit per target register. Its inline capacity
of 16 x 32-bit words only covers 512 registers, causing heap allocations
for AArch64 (895), RISCV (645), and PowerPC (612). Increase it to 32,
covering up to 1024 registers and keeping the storage inline for these
targets.
Assisted-by: codex
Commit: a9e273890dc99a3c2662fb14f244fa0acdb1155b
https://github.com/llvm/llvm-project/commit/a9e273890dc99a3c2662fb14f244fa0acdb1155b
Author: Steffen Larsen <sholstla at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
A clang/test/CIR/CodeGenHIP/builtin-bool-result.hip
Log Message:
-----------
[CIR] Convert i1 intrinsic results for bool-returning builtins (#220576)
A target builtin with no special case is emitted through the generic
intrinsic path, which returns the intrinsic's own result type. For a
builtin declared to return bool that type is i1, which CIR models as
!cir.int<u, 1> rather than !cir.bool. cir.if accepts only !cir.bool, so
CIR builtin handling needs to convert i1 results to !cir.bool when used
in this context.
This is verified using __builtin_amdgcn_is_shared.
---------
Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
Commit: 8ca2e679a9b3cc149e766e6a04645d7efc50f4f1
https://github.com/llvm/llvm-project/commit/8ca2e679a9b3cc149e766e6a04645d7efc50f4f1
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/MachineInstr.cpp
Log Message:
-----------
[CodeGen] Avoid temporary SmallVector for single memops (NFC) (#221254)
Assisted-by: codex
Commit: d93b10ea300fa0e86a736b3f0aac8605b23caeb9
https://github.com/llvm/llvm-project/commit/d93b10ea300fa0e86a736b3f0aac8605b23caeb9
Author: Rong "Mantle" Bao <rong.bao at csmantle.top>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M bolt/unittests/Core/BinaryContext.cpp
M bolt/unittests/Core/MCPlusBuilder.cpp
M bolt/unittests/Core/MemoryMaps.cpp
M bolt/unittests/Profile/PerfScripts.cpp
Log Message:
-----------
[BOLT][test] Allow uninstantiated tests when no matching targets are enabled (#217604)
When neither X86 nor AArch64 is enabled, e.g. when only enabling the
RISCV target, `check-bolt-unit` triggers GTest's uninstantiated suite
errors on the following cases:
```plain-text
BOLT-Unit :: Core/./CoreTests/GoogleTestVerification/UninstantiatedParameterizedTestSuite<BinaryContextTester>
BOLT-Unit :: Core/./CoreTests/GoogleTestVerification/UninstantiatedParameterizedTestSuite<MCPlusBuilderTester>
BOLT-Unit :: Core/./CoreTests/GoogleTestVerification/UninstantiatedParameterizedTestSuite<MemoryMapsTester>
BOLT-Unit :: Profile/./ProfileTests/GoogleTestVerification/UninstantiatedParameterizedTestSuite<PerfScriptTestHelper>
```
... which looks like the following:
```plain-text
******************** 20:28 [95/2055]
FAIL: BOLT-Unit :: Core/./CoreTests/6/9 (7 of 12)
******************** TEST 'BOLT-Unit :: Core/./CoreTests/6/9' FAILED ********************
Script(shard):
--
GTEST_OUTPUT=json:/home/csmantle/workspace/llvm-project/build/tools/bolt/unittests/Core/./CoreTests-BOLT-Unit-718646-6-9.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=9 GTEST_SHARD_INDE
X=6 /home/csmantle/workspace/llvm-project/build/tools/bolt/unittests/Core/./CoreTests
--
Script:
--
/home/csmantle/workspace/llvm-project/build/tools/bolt/unittests/Core/./CoreTests --gtest_filter=GoogleTestVerification.UninstantiatedParameterizedTestSuite<BinaryContextTester>
--
/home/csmantle/workspace/llvm-project/bolt/unittests/Core/BinaryContext.cpp:211: Failure
Parameterized test suite BinaryContextTester is defined via TEST_P, but never instantiated. None of the test cases will run. Either no INSTANTIATE_TEST_SUITE_P is provided or the
only ones provided expand to nothing.
Ideally, TEST_P definitions should only ever be included as part of binaries that intend to use them. (As opposed to, for example, being placed in a library that may be linked in
to get other utilities.)
To suppress this error for this test suite, insert the following line (in a non-header) in the namespace it is defined in:
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BinaryContextTester);
/home/csmantle/workspace/llvm-project/bolt/unittests/Core/BinaryContext.cpp:211
Parameterized test suite BinaryContextTester is defined via TEST_P, but never instantiated. None of the test cases will run. Either no INSTANTIATE_TEST_SUITE_P is provided or the
only ones provided expand to nothing.
Ideally, TEST_P definitions should only ever be included as part of binaries that intend to use them. (As opposed to, for example, being placed in a library that may be linked in
to get other utilities.)
To suppress this error for this test suite, insert the following line (in a non-header) in the namespace it is defined in:
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BinaryContextTester);
```
Add gated `GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST` to suppress
such warnings until appropriate tests have been implemented.
Commit: 2cb4f837f087d7ed38aad292b5037cabcb2fcd4c
https://github.com/llvm/llvm-project/commit/2cb4f837f087d7ed38aad292b5037cabcb2fcd4c
Author: Mariusz Sikora <mariusz.sikora at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/test/MC/AMDGPU/gfx13_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1_dpp16.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1_dpp8.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1_dpp16.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1_dpp8.s
Log Message:
-----------
[AMDGPU][NFC] Add gfx13 MC tests for v_mov_b16 and v_swap_b16 (#220863)
Both instructions were already supported on gfx13 but had limited MC
tests coverage.
Commit: b966c71b74e498c3a9570c790a71a5a1a2fe0e2f
https://github.com/llvm/llvm-project/commit/b966c71b74e498c3a9570c790a71a5a1a2fe0e2f
Author: Barbara Mitic <Barbara.Mitic at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/global-load-xcnt.ll
M llvm/test/CodeGen/AMDGPU/pack-half-to-lshl-or.ll
Log Message:
-----------
[AMDGPU] Fix true16 high-half packing when the low operand is not a VGPR (#220843)
The true16 (hi << 16) | z pattern used v_or_b16 and EXTRACT_SUBREG hi16
on z. That is only valid when z is a VGPR. When z is an immediate (e.g.
0x3c00), EXTRACT_SUBREG hi16 does not isolate the high 16 bits, so the
whole constant is ORed into hi: we get (hi | 0x3c00) << 16 instead of hi
<< 16.
Select v_lshl_or_b32 instead, with z as VSrc_b32, matching the fake16
path.
Commit: 5950bbf1e12fa2445c9de948c3f602f03ba12d62
https://github.com/llvm/llvm-project/commit/5950bbf1e12fa2445c9de948c3f602f03ba12d62
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/replicate-region-branch-weights.ll
Log Message:
-----------
[VPlan] Fix merged replicate region frequency when only one is known. (#221607)
When merging two replicate regions guarded by the same mask, the merged
region's entry frequency should be the higher of the two original
frequencies, since it now fires whenever either original region did.
The existing check only updated the frequency when both were known,
leaving the second region's own (possibly much lower) frequency in place
whenever the first was unknown. This means we might set a misleadingly
low frequency. Conservatively set to unknown instead.
Commit: d1a653eadd3a0b314388965edcbd26fd6890f744
https://github.com/llvm/llvm-project/commit/d1a653eadd3a0b314388965edcbd26fd6890f744
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Target/Sparc/DelaySlotFiller.cpp
M llvm/lib/Target/Sparc/SparcInstrInfo.cpp
M llvm/lib/Target/Sparc/SparcInstrInfo.h
Log Message:
-----------
[Sparc] Fix instruction size for delay slot with UNIMP (#220955)
Sparc currently reports all instructions with delay slots as having
twice the size. However, there is a special case for struct returns,
where there is an extra UNIMP instruction. Move needsUnimp() into
SparcInstrInfo, and account for it in the instruction size calculation.
Part of enabling instruction size verification by default.
Commit: 90bc5b106b5f36fd6c6fffd7eb914946ce75b4a3
https://github.com/llvm/llvm-project/commit/90bc5b106b5f36fd6c6fffd7eb914946ce75b4a3
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
A llvm/test/tools/gold/X86/Inputs/multiple-data-section-ordering.txt
M llvm/test/tools/gold/X86/multiple-data.s
M llvm/test/tools/gold/X86/multiple-sections.ll
M llvm/test/tools/gold/lit.local.cfg
Log Message:
-----------
[gold] Switch section-ordering-file tests to use ld.bfd (#219150)
ld.bfd supports `--section-ordering-file` since 2.43. Use it if the
binutils version is sufficiently recent.
The implementation in ld.bfd is significantly different, with the
section ordering file looking more like an incomplete linker script,
rather than a plain section listing.
The addresses of the sections are also slightly different than with
ld.gold. Use hex matches + arithmetic to just check the correct
order/offsets instead of hardcoding the exact choice of address.
ld.bfd also supports --start-lib/--end-lib since 2.47, but it seems like
those don't actually work with linker plugins, so I'm not migrating them
(https://sourceware.org/bugzilla/show_bug.cgi?id=34572).
Followup to https://github.com/llvm/llvm-project/pull/130981.
Commit: 7a67a1ab6f3f6d716462872114a5e12f28cdb42a
https://github.com/llvm/llvm-project/commit/7a67a1ab6f3f6d716462872114a5e12f28cdb42a
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstCombine/ptr-int-cast.ll
M llvm/test/Transforms/InstSimplify/ptrtoint.ll
Log Message:
-----------
[InstSimplify] Don't fold ptrtoint of ptradd of sub (#221188)
Don't fold `ptrtoint (ptradd (Ptr, X - ptrtoint(Ptr))) -> X`. While
valid by itself, the fact that LLVM currently does not properly model
the ptrtoint side effect means that we lose the provenance exposure of
Ptr. This results in end-to-end miscompiles that led to the revert of
#210729.
We can still perform the optimization for ptrtoaddr, which does not
expose provenance.
Commit: 9707960f6f229118dc4500e5c3f1be239fd7efb2
https://github.com/llvm/llvm-project/commit/9707960f6f229118dc4500e5c3f1be239fd7efb2
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/test/Transforms/ConstraintElimination/and-implied-by-operands.ll
A llvm/test/Transforms/ConstraintElimination/induction-exit-condition-or-and.ll
Log Message:
-----------
[ConstraintElim] Handle single And/Or as exit condition in loop. (#221228)
In some cases, exits conditions in the loop are And/Or of and IV-based
condition and another condition. If the loop continues only if all
conditions are true (AND + true successor is the header, OR + false
successor is the header), we can still use the IV based condition to
bound the IV.
For now, just peels a single AND/OR.
This enables folds in a few additional cases:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1193.
PR: https://github.com/llvm/llvm-project/pull/221228
Commit: ccfc54aa053e1e0614660cc5f3ff0122eff02ab9
https://github.com/llvm/llvm-project/commit/ccfc54aa053e1e0614660cc5f3ff0122eff02ab9
Author: Fangrui Song <i at maskray.me>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/include/llvm/IR/Attributes.h
M llvm/lib/IR/AttributeImpl.h
M llvm/lib/IR/Attributes.cpp
M llvm/lib/IR/LLVMContextImpl.h
Log Message:
-----------
[IR] Split the attribute pool by kind. NFC (#221620)
Change Attribute::get overloads to use fine-grained hash-consing pools
(Enum/Int/String/Type), avoiding FoldingSetNodeID serialization
overhead. Use a flat array for Enum attributes, which carry no value.
The two ConstantRange kinds keep using FoldingSet: they are not used
often, and UniquingSet cannot be used with custom UniquingSetInfo
(`APInt::operator==` asserts identical BitWidth).
Aided by Opus 5
Commit: c5a85b9c6996b2459c169ef6a410c501980c9ea0
https://github.com/llvm/llvm-project/commit/c5a85b9c6996b2459c169ef6a410c501980c9ea0
Author: Mariya Podchishchaeva <Mariya.Podchishchaeva at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/TargetInfo.h
M clang/lib/CIR/CodeGen/Targets/SPIRV.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.cpp
M clang/test/CIR/CodeGenOpenCL/address-space-local-var.clcpp
M clang/test/CIR/CodeGenOpenCL/address-spaces.cl
Log Message:
-----------
[CIR] Fix address space issues related to SPIR/SPIR-V targets (#220982)
This adds support for address space lowering for spir/spir64 (not v)
which are still widely used in OpenCL testing despite spirv32/spirv64
targets existence. This also corrects alloca address space for all
mentioned targets from default to private which is semantically correct
for them and avoids emission of spurious address space casts.
Assisted-by: claude in test cases updating
Commit: fc3ad3f8c655e0f74bb763a2d320e2792a96f0b5
https://github.com/llvm/llvm-project/commit/fc3ad3f8c655e0f74bb763a2d320e2792a96f0b5
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/test/CIR/CodeGenBuiltins/builtin-fpclassify.c
M clang/test/CIR/CodeGenBuiltins/builtin-isfpclass.c
M clang/test/CIR/CodeGenBuiltins/builtin-isinf-sign.c
M clang/test/CIR/IR/enum-attrs.cir
Log Message:
-----------
[CIR] Migrate the FPClassTest bit enum and unquote its flags (#220888)
cir.is_fp_class printed its flags inconsistently. Single-bit values came
out
bare, as in `fcSNan`, while group values and combinations came out
quoted, as
in `"fcInf"` and `"fcSNan|fcNegInf"`. That comes from I32BitEnumAttr
setting
printBitEnumQuoted, which EnumAttr.td keeps only for backwards
compatibility.
Clearing the bit and using the `enum` directive selects the
separator-aware
parser and printer, so every value now spells unquoted:
cir.is_fp_class %x, fcSNan|fcNegInf : (!cir.float) -> !cir.bool
The enum also drops its specialized IntegerAttr for a CIR_EnumAttr
wrapper,
giving it the standalone spelling `#cir.fp_class<fcSNan|fcNegInf>`.
Commit: ae814d03d870475d03446ad9195c305912f062ea
https://github.com/llvm/llvm-project/commit/ae814d03d870475d03446ad9195c305912f062ea
Author: Vimal Patel <vimal.patel at arm.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/call.ll
Log Message:
-----------
[InstSimplify] Improve coverage for zero-shift-guard folding for rotate (#217033)
The current logic responsible to fold zero-shift-guard performed the
folding only when the shift amount is exactly zero. But, the guard could
be eliminated as long as the funnel shift instruction is performing a
bitwise rotate and the shift amount is a multiple of the bitwidth of the
value being rotated. This commit makes this change.
Commit: 345dd01072956b7ddc36dbdfe39df2d991193e07
https://github.com/llvm/llvm-project/commit/345dd01072956b7ddc36dbdfe39df2d991193e07
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/docs/StandardCPlusPlusModules.md
M clang/include/clang/DependencyScanning/ModuleDepCollector.h
M clang/include/clang/Lex/PreprocessorOptions.h
M clang/lib/DependencyScanning/ModuleDepCollector.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
M clang/test/ClangScanDeps/P1689.cppm
A clang/test/ClangScanDeps/p1689-module-map.cppm
Log Message:
-----------
[C++20] [Modules] [ScanDeps] Scan results for module map file (#221652)
Previously we described the trick to use module map to import std module
implicitly. But in practice, this may not work as build tools can't get
the dependencies.
In this patch, we updated clang-scan-deps to report the dependencies
between consumers and the corresponding module described in module map
file in P1689 format. The P1689 format in clang-scan-deps is the defacto
dependency description between compiler and build tools. This helps end
users to use the trick without waiting for the support from various
build tools.
Commit: 1191f353cefe3c7ceb8e76fd03296e082a247685
https://github.com/llvm/llvm-project/commit/1191f353cefe3c7ceb8e76fd03296e082a247685
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/test/CodeGen/glibc_ptr_align.c
M clang/test/CodeGen/ptr-subtract-stable.c
M clang/test/CodeGen/vla.c
M clang/test/CodeGenCUDA/managed-var.cu
M clang/test/CodeGenOpenCL/address-spaces-conversions.cl
M clang/test/CodeGenOpenCL/nullptr.cl
M clang/test/CodeGenOpenCL/size_t.cl
M clang/test/OpenMP/depobj_codegen.cpp
M clang/test/OpenMP/for_range_loop_codegen.cpp
M clang/test/OpenMP/fuse_codegen.cpp
M clang/test/OpenMP/interchange_codegen.cpp
M clang/test/OpenMP/parallel_for_codegen.cpp
M clang/test/OpenMP/reverse_codegen.cpp
M clang/test/OpenMP/split_codegen.cpp
M clang/test/OpenMP/stripe_codegen.cpp
M clang/test/OpenMP/tile_codegen.cpp
Log Message:
-----------
Reapply [Clang][CodeGen] Use ptrtoaddr for pointer diff (#210729) (#221675)
Reapply https://github.com/llvm/llvm-project/pull/210729 without change
after https://github.com/llvm/llvm-project/pull/221188, which should fix
the miscompiles this change exposed.
-----
We don't have to expose the provenance of pointers for pointer
subtraction, so use ptrtoaddr instead of ptrtoint if -fwrapv-pointer is
not set.
Co-authored-by: Alexis Engelke <engelke at in.tum.de>
Commit: 038e968a7ec08ba7d9a262059f8fab91853656ea
https://github.com/llvm/llvm-project/commit/038e968a7ec08ba7d9a262059f8fab91853656ea
Author: Raphael Isemann <rise at apple.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
A lldb/test/API/commands/watchpoints/watchpoint_set_errors/Makefile
A lldb/test/API/commands/watchpoints/watchpoint_set_errors/TestWatchpointSetErrors.py
A lldb/test/API/commands/watchpoints/watchpoint_set_errors/main.c
R lldb/test/Shell/Watchpoint/Inputs/main.cpp
R lldb/test/Shell/Watchpoint/SetErrorCases.test
Log Message:
-----------
[lldb][test] Rewrite Watchpoint/SetErrorCases as API test (#221563)
This test is randomly failing on macOS bots with this error:
```
error: Command requires a process which is currently stopped.
```
There is no test logic in shell tests that can diagnose what is going on
with the process, so this patch rewrites this test as an API test where
we have better error handling.
Commit: 41a09be5d09b14c9f06a2b46f903b388a671546a
https://github.com/llvm/llvm-project/commit/41a09be5d09b14c9f06a2b46f903b388a671546a
Author: Luke Lau <luke at igalia.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Don't recompute getPlan in simplifyRecipes. NFC (#221582)
getPlan involves a traversal, so avoid doing it on every recipe
simplified.
Improves compile time:
https://llvm-compile-time-tracker.com/compare.php?from=8f7d3ba08f14c3d54b8b407d1758dbd1da01bb38&to=aaeebfa47f57bbf1bc9f26ce9a4e777939f46352&stat=instructions:u
Commit: 544171da142fd5a380a943c9f7ea5150b9f2a293
https://github.com/llvm/llvm-project/commit/544171da142fd5a380a943c9f7ea5150b9f2a293
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/MustExecute.h
M llvm/lib/Analysis/MustExecute.cpp
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
Log Message:
-----------
[LoopSafetyInfo] Store Loop and automatically compute (NFC) (#221238)
This makes two changes:
* LoopSafetyInfo is bound to a single loop. Store the Loop in the ctor,
so it does not need to be passed to individual queries.
* Automatically compute LoopSafetyInfo on construction, instead of in a
separate call. This is mostly to clarify that (contrary to the doc
comment) nobody is actually trying to invalidate LoopSafetyInfo by
rerunning computeLoopSafetyInfo().
This makes it easier to change implementation details, like computing
information lazily.
Commit: 8d9c175633eb6a6100bdd1b6b67ff780cfc5d1b2
https://github.com/llvm/llvm-project/commit/8d9c175633eb6a6100bdd1b6b67ff780cfc5d1b2
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/test/CIR/IR/invalid-call.cir
M clang/test/CIR/IR/invalid-lang-attr.cir
Log Message:
-----------
[CIR] Move the CIR enums off the legacy EnumAttrInfo hierarchy (#220889)
MLIR has two enum hierarchies. `EnumAttrInfo` doubles as an
`IntegerAttr`
constraint, so every CIR enum had to clear `genSpecializedAttr` to say
it did
not want one. `EnumInfo` describes a C++ enum and nothing more.
Derive the CIR bases from `I32Enum`, `I64Enum` and `I32BitEnum`, and
widen
`CIR_EnumAttr` to the `EnumInfo` that upstream `EnumAttr` already takes.
The
flag no longer exists to clear. `FPClassTestEnum` gets unquoted printing
from
`BitEnumBase` rather than overriding `printBitEnumQuoted`, and
`CIR_KnownFuncKind` drops a `parameterPrinter` the generated
`operator<<`
now covers, still spelling `#cir.func_identity<"std::find">`.
Commit: 2fd8d41d7b8824637be32d569c1e1482128b057b
https://github.com/llvm/llvm-project/commit/2fd8d41d7b8824637be32d569c1e1482128b057b
Author: Akash Manna <akash.manna.mymail at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
A llvm/test/CodeGen/X86/pr216504.ll
Log Message:
-----------
[X86] Don't fold loads from non-fixed stack objects into tail calls (#221243)
Fixes #216504
The callee of a tail call can be folded into the jump as a memory
operand (`TCRETURNmi64`). That jump runs after the epilogue, so the
operand is resolved relative to the incoming stack pointer, which only
works for fixed objects such as incoming arguments. Here the callee was
a `volatile` local, so the load stayed on the stack and got folded,
while a variable-index extract from a 256-bit vector went through a
32-byte stack temporary and forced dynamic realignment. Once the stack
is realigned a local has no static offset from the incoming stack
pointer, and PEI tripped the assertion. The sibcall eligibility check
does look at realignment, but it runs before legalization, so it never
saw the temporary. Spill slots created during register allocation can
cause the same thing, so no check at that point can be complete.
The fold is now refused whenever the load's address may use a non-fixed
frame index, in `checkTCRetEnoughRegs`, which gates both the
`TCRETURNmi` patterns and the callee-load hoisting in
`PreprocessISelDAG`. The callee is loaded into a register before the
epilogue and the call is still emitted as a tail call. Loads from fixed
objects fold as before. As a side effect this also stops the jump from
reading a slot below the restored stack pointer, which was only safe
inside the red zone.
Commit: 73344b523c93f25c9dafcabf803295e92bf5cb5f
https://github.com/llvm/llvm-project/commit/73344b523c93f25c9dafcabf803295e92bf5cb5f
Author: Clemens Wasser <clemens.wasser at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/test/DebugInfo/Generic/debug-label-inline.c
M llvm/lib/IR/DebugLoc.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/test/DebugInfo/Generic/assignment-tracking/inline/id.ll
M llvm/test/DebugInfo/Generic/inline-dbg-values.ll
M llvm/test/DebugInfo/Generic/inline-debug-info-multiret.ll
M llvm/test/DebugInfo/Generic/inline-debug-info.ll
M llvm/test/DebugInfo/Generic/inline-no-debug-info.ll
M llvm/test/DebugInfo/KeyInstructions/Generic/inline.ll
M llvm/test/Transforms/CodeExtractor/PartialInlineDebug.ll
M llvm/test/Transforms/CodeExtractor/PartialInlineVarArgsDebug.ll
M llvm/test/Transforms/Inline/X86/inline-landing-pad.ll
M llvm/test/Transforms/Inline/debug-invoke.ll
M llvm/test/Transforms/Inline/dilocation-loop-metadata-update.ll
M llvm/test/Transforms/Inline/inline_dbg_declare.ll
M llvm/test/Transforms/SafeStack/ARM/debug.ll
M llvm/test/Transforms/SampleProfile/pseudo-probe-emit-inline.ll
Log Message:
-----------
[Inliner] Use distinct DILocations and cache inlineDebugLoc by OrigDL (#204817)
Found while profiling clang compiling `SLPVectorizer.cpp`.
The call chain `DILocation::get` -> `DILocation::getImpl` ->
`llvm::getUniqued` caused lots of expensive `DenseSet` `find_as` and
`grow` operations due to the cache being really inefficient. Switch to
`DILocation::getDistinct` and cache `inlineDebugLoc` by `OrigDL` for a
more efficient cache.
Commit: 34c0dc0bbf96ed16f47115b1c9033a450ad2bcf4
https://github.com/llvm/llvm-project/commit/34c0dc0bbf96ed16f47115b1c9033a450ad2bcf4
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/tools/llvm-readobj/COFFDumper.cpp
Log Message:
-----------
[llvm][llvm-readobj][NFC] clang-format COFFDumper.cpp (#221688)
Prior to changes to it in #221224.
This formats the whole file, and when it's landed I'll add the commit
hash to .git-blame-ignore-revs.
Commit: 39daa556ccaa69f6a2db45f414f33fad128e5d48
https://github.com/llvm/llvm-project/commit/39daa556ccaa69f6a2db45f414f33fad128e5d48
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Log Message:
-----------
AArch64: Drop AllowFPOpFusion from isProfitableToHoist (#221402)
Commit: abbc159932f12e00ae4ee834ab662951811be772
https://github.com/llvm/llvm-project/commit/abbc159932f12e00ae4ee834ab662951811be772
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M .git-blame-ignore-revs
Log Message:
-----------
[llvm][llvm-readobj][NFC] Add formatting commit to ignore revs (#221693)
See #221688.
Commit: 8727da4880d069d0feb0c4346b902dc917500083
https://github.com/llvm/llvm-project/commit/8727da4880d069d0feb0c4346b902dc917500083
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
A clang-tools-extra/docs/clang-tidy/checks/readability/ambiguous-smartptr-reset-call.md
R clang-tools-extra/docs/clang-tidy/checks/readability/ambiguous-smartptr-reset-call.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/avoid-return-with-void-value.md
R clang-tools-extra/docs/clang-tidy/checks/readability/avoid-return-with-void-value.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.md
R clang-tools-extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/braces-around-statements.md
R clang-tools-extra/docs/clang-tidy/checks/readability/braces-around-statements.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/const-return-type.md
R clang-tools-extra/docs/clang-tidy/checks/readability/const-return-type.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/container-contains.md
R clang-tools-extra/docs/clang-tidy/checks/readability/container-contains.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/container-size-empty.md
R clang-tools-extra/docs/clang-tidy/checks/readability/container-size-empty.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/duplicate-include.md
R clang-tools-extra/docs/clang-tidy/checks/readability/duplicate-include.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/else-after-return.md
R clang-tools-extra/docs/clang-tidy/checks/readability/else-after-return.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/enum-initial-value.md
R clang-tools-extra/docs/clang-tidy/checks/readability/enum-initial-value.rst
Log Message:
-----------
[clang-tidy][docs] Rename readability check docs to Markdown [1/5] (#221446)
Tracking issue: #201242
See the [migration guide] for more information.
[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is the first part of the mechanical rename of the check
documentations in readability module.
The rewrite is provided by the next PR in this stack.
Commit: 76a090dfd9d81761087453de3ada2eb7ff2528f7
https://github.com/llvm/llvm-project/commit/76a090dfd9d81761087453de3ada2eb7ff2528f7
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang-tools-extra/docs/clang-tidy/checks/readability/ambiguous-smartptr-reset-call.md
M clang-tools-extra/docs/clang-tidy/checks/readability/avoid-return-with-void-value.md
M clang-tools-extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.md
M clang-tools-extra/docs/clang-tidy/checks/readability/braces-around-statements.md
M clang-tools-extra/docs/clang-tidy/checks/readability/const-return-type.md
M clang-tools-extra/docs/clang-tidy/checks/readability/container-contains.md
M clang-tools-extra/docs/clang-tidy/checks/readability/container-size-empty.md
M clang-tools-extra/docs/clang-tidy/checks/readability/duplicate-include.md
M clang-tools-extra/docs/clang-tidy/checks/readability/else-after-return.md
M clang-tools-extra/docs/clang-tidy/checks/readability/enum-initial-value.md
Log Message:
-----------
[clang-tidy][docs] Rewrite readability check docs to Markdown [1/5] (#221447)
Tracking issue: #201242
See the [migration guide] for more information.
[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is the first part of rewriting check documentations in readability
module from reST to MyST Markdown.
AI Usage: This was prepared with rnk's fork of rst2myst and
GPT5.6-assisted cleanup.
I manually verified that the documentation renders as expected.
Preview site:
https://broken.life/llvm-staging/readability-markdown-port/index.html
---------
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
Commit: d268cdb7d1fdb5fbc595426092991f9885d18dbf
https://github.com/llvm/llvm-project/commit/d268cdb7d1fdb5fbc595426092991f9885d18dbf
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-fmuladd.ll
Log Message:
-----------
CodeGen: Drop AllowFPOpFusion check from fmuladd lowering (#221667)
Commit: 2e30c8e267256e3a2b43985d9be68831c412a1b5
https://github.com/llvm/llvm-project/commit/2e30c8e267256e3a2b43985d9be68831c412a1b5
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
A flang/include/flang/Evaluate/char.h
M flang/include/flang/Evaluate/complex.h
M flang/include/flang/Evaluate/initial-image.h
M flang/include/flang/Evaluate/integer.h
M flang/include/flang/Evaluate/logical.h
M flang/include/flang/Evaluate/real.h
M flang/lib/Evaluate/host.h
M flang/lib/Evaluate/initial-image.cpp
Log Message:
-----------
[Flang][NFCI] Use abstraction for binary scalar data (#212956)
There is currently the assumption that the binary representation of the
scalar data classes (Integer, Real, Complex, Logical) is identical to
the binary representation of native types. For instance `Integer<64>`
can be reinterpret-casted to a `int64_t` or serialized using `memcpy`.
This will not be the case anymore with #206907. This first PR introduces
`LoadRawBytes` and `StoreRawBytes` abstractions that can be adapted when
the binary data layout of the scalar data classes change. No functional
change intended.
The binary representation is assumed for these uses:
1. Data serialization in initial-image.h/.cpp
2. Calling native math functions to constant-fold functions such as
`sin` in intrinsics-library.cpp. An abstraction layer has been created
in host.h/host.cpp to convert between host-native types and the scalar
data classes.
Some implementation notes:
* I originally used `CharacterUtils` but it is in a private header file.
Instead I created `CharacterValue` which similar to what #216960 will
introduce to allow a consistent interface between the scalar value
classes (such as `kind()` returning the current runtime kind)
* `bytesStored` is another such common interface. It it meant to
resemble `llvm::DataLayout::getTypeStoreSize` (there is also
`getTypeAllocSize`, `llvm::Type::getPrimitiveSizeInBits()`,
`llvm::Type::getScalarSizeInBits()`) and must match
`common::TypeSizeInBytes`.
* `Real<10>` uses 16-byte alignment regardless what the host compiler
thinks what `long double` should be. The padding is unitialized data in
`X87IntegerContainer`. Even though x87 is the classic example where
"allocation size" and "store size" would be different, Flang does not
differentiate between them and treats all bytes also as stored bytes,
see `common::TypeSizeInBytes`. As a consequence, `Complex<10>` is 32
bytes. initial-image.h/.cpp will even load/store/compare that
uninitialized data. host.h/host.cpp instead reads/writes the floats
separately to translate to whatever the host compiler does.
* initial-image.cpp/.h is inconsistent when it uses number of bytes and
when it uses number of characters
* For the case the image does not have sufficient bytes to read, I did
not want to insert checks whether another byte can be read into every
ReadRawBytes function, and instead add zero-padding explicitly when
necessary.
Assisted-by: AI
Commit: d9bcffd284812c3e29805af27d32fdedd82c5acc
https://github.com/llvm/llvm-project/commit/d9bcffd284812c3e29805af27d32fdedd82c5acc
Author: Romanov Vlad <Vladislav.Romanov at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
M llvm/test/CodeGen/AMDGPU/agpr-csr.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-no-agprs-violations.ll
A llvm/test/CodeGen/AMDGPU/coexec-sched-agpr-excess.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.iglp.opt.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.group.barrier.ll
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-attr.mir
M llvm/test/CodeGen/AMDGPU/mfma-cd-select.ll
M llvm/test/CodeGen/AMDGPU/mfma-no-register-aliasing.ll
M llvm/test/CodeGen/AMDGPU/spill-agpr.ll
Log Message:
-----------
[AMDGPU] Add AGPR pressure tracking (#214745)
Add AGPR pressure tacking in RPDelta.
Commit: 11a9127fbe072d84571712bb5e2aa9ebd964a802
https://github.com/llvm/llvm-project/commit/11a9127fbe072d84571712bb5e2aa9ebd964a802
Author: David Spickett <david.spickett at arm.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M lld/test/COFF/arm64ec-export-thunks.test
M lld/test/COFF/arm64ec-import.test
M lld/test/COFF/baserel.test
M lld/test/COFF/code-merge.s
M lld/test/COFF/common-replacement.s
M lld/test/COFF/merge-data-bss.test
M lld/test/COFF/nodbgdirmerge.test
M lld/test/COFF/secrel-common.s
M lldb/test/Shell/SymbolFile/NativePDB/globals-bss.cpp
M llvm/test/MC/AArch64/seh-large-func-multi-epilog.s
M llvm/test/MC/AArch64/seh-large-func.s
M llvm/test/MC/AArch64/seh.s
M llvm/test/MC/AArch64/win-import-call-optimization.s
M llvm/test/MC/ARM/seh.s
M llvm/test/MC/COFF/addrsig.s
M llvm/test/MC/COFF/align-nops.s
M llvm/test/MC/COFF/basic-coff-64.s
M llvm/test/MC/COFF/basic-coff.s
M llvm/test/MC/COFF/bss.s
M llvm/test/MC/COFF/cgprofile.s
M llvm/test/MC/COFF/module-asm.ll
M llvm/test/MC/COFF/section.s
M llvm/test/MC/COFF/seh-align1.s
M llvm/test/MC/COFF/seh-align2.s
M llvm/test/MC/COFF/seh-align3.s
M llvm/test/MC/COFF/seh-section.s
M llvm/test/MC/COFF/seh.s
M llvm/test/MC/COFF/symbol-fragment-offset-64.s
M llvm/test/MC/COFF/symbol-fragment-offset.s
M llvm/test/MC/X86/win-import-call-optimization.s
M llvm/test/tools/llvm-ar/arm64x-split.yaml
M llvm/test/tools/llvm-objcopy/COFF/add-gnu-debuglink.test
M llvm/test/tools/llvm-objcopy/COFF/add-section-and-set-flags.test
M llvm/test/tools/llvm-objcopy/COFF/empty-sections.s
M llvm/test/tools/llvm-objcopy/COFF/only-keep-debug-rdata.test
M llvm/test/tools/llvm-objcopy/COFF/only-keep-debug.test
M llvm/test/tools/llvm-objcopy/COFF/update-section.test
M llvm/test/tools/llvm-offload-wrapper/coff-opt-ref.ll
M llvm/test/tools/llvm-readobj/COFF/arm64x-hybridobj.yaml
M llvm/test/tools/llvm-readobj/COFF/bigobj.test
M llvm/test/tools/llvm-readobj/COFF/sections-ext.test
M llvm/test/tools/llvm-readobj/COFF/sections.test
M llvm/test/tools/yaml2obj/COFF/xrelocs.yaml
M llvm/tools/llvm-readobj/COFFDumper.cpp
Log Message:
-----------
[llvm][llvm-readobj] Print COFF RawDataSize as hex (#221224)
To match VirtualSize, and Microsoft's dumpbin which prints both as hex:
SECTION HEADER #1
.text name
440B4 virtual size
1000 virtual address (0000000140001000 to 00000001400450B3)
44200 size of raw data
llvm-readobj before this change:
VirtualSize: 0x3478
VirtualAddress: 0x74000
RawDataSize: 3584
And after:
VirtualSize: 0x3478
VirtualAddress: 0x74000
RawDataSize: 0xe00
This was pointed out on
https://github.com/llvm/llvm-project/issues/220618, where I was having
to manually convert the numbers to compare them.
Commit: 65b2748a68c9d20ec4303c3e9bf1ca0398be8777
https://github.com/llvm/llvm-project/commit/65b2748a68c9d20ec4303c3e9bf1ca0398be8777
Author: Tapiwa Gonga <126596199+tapiwagonga at users.noreply.github.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M libc/CMakeLists.txt
A libc/docs/dev/code_coverage.md
M libc/docs/dev/index.md
Log Message:
-----------
[libc] Enable code coverage using continuous instrumentation profiling (#213271)
This patch adds coverage to LLVM-libc using Clang continuous
instrumentation.
The `LIBC_ENABLE_COVERAGE` CMake option enables
`-fprofile-instr-generate=libc_cov_%c%p.profraw`, `-fcoverage-mapping`,
and `-fprofile-continuous` for Clang overlay builds, and is limited to
overlay build.
Developer documentation and usage instructions are added in
`libc/docs/dev/code_coverage.md` and indexed in
`libc/docs/dev/index.md`.
Assisted-by: Automated tooling, human reviewed.
Commit: bb577f620571ce3bb97f2e717b53500574a9cf27
https://github.com/llvm/llvm-project/commit/bb577f620571ce3bb97f2e717b53500574a9cf27
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir
M llvm/test/CodeGen/AArch64/GlobalISel/select-bitcast.mir
Log Message:
-----------
[AArch64][GlobalISel] Select i16/f16 cross-bank bitcasts (#220612)
Test bitcast_to_half in
llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll crashes with
H0 = COPY W8
unimplemented reg-to-reg copy
UNREACHABLE executed at
/home/culrho01/llvm-project/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:6363!
when type-based RegBankSelect (#199040) is enabled. Normal RBS keeps
both operands on GPR and moves to FPR afterward. This extends
instruction select to support bitcasts where src/dst reg bank doens't
match.
Assisted-by: codex
Commit: bf7aaf77d0916adaa3cd043fc0966a33c1364e2c
https://github.com/llvm/llvm-project/commit/bf7aaf77d0916adaa3cd043fc0966a33c1364e2c
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/include/llvm/Analysis/ValueTracking.h
A llvm/test/Transforms/DeadStoreElimination/wide-pointer-index-offset.ll
Log Message:
-----------
[ValueTracking] Handle idx widths > 64 bit in GetPointerBaseWithConst. (#221692)
GetPointerBaseWithConstantOffset may be called for GEPs with indices
that do not fit into 64 bit. Use trySExtValue to avoid assertions in the
newly added tests.
PR: https://github.com/llvm/llvm-project/pull/221692
Commit: afb42af9cc18d0dd08ccac3577310e049095700b
https://github.com/llvm/llvm-project/commit/afb42af9cc18d0dd08ccac3577310e049095700b
Author: Srinivasa Ravi <srinivasar at nvidia.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
M clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
M clang/test/CIR/CodeGenCUDA/builtins-nvvm-math.cu
M clang/test/CodeGen/builtins-nvptx.c
M llvm/docs/NVPTXUsage.md
M llvm/include/llvm/IR/IntrinsicsNVVM.td
M llvm/include/llvm/IR/NVVMIntrinsicUtils.h
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/NVVMIntrinsicUtils.cpp
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
M llvm/test/Assembler/auto_upgrade_nvvm_intrinsics.ll
A llvm/test/CodeGen/NVPTX/bf16-add.ll
A llvm/test/CodeGen/NVPTX/bf16-sub.ll
R llvm/test/CodeGen/NVPTX/f16-add-sat.ll
A llvm/test/CodeGen/NVPTX/f16-add.ll
R llvm/test/CodeGen/NVPTX/f16-sub-sat.ll
A llvm/test/CodeGen/NVPTX/f16-sub.ll
A llvm/test/CodeGen/NVPTX/fp-add-f32x2.ll
A llvm/test/CodeGen/NVPTX/fp-add-invalid.ll
M llvm/test/CodeGen/NVPTX/fp-arith-sat.ll
A llvm/test/CodeGen/NVPTX/fp-fold-sub-f32x2.ll
M llvm/test/CodeGen/NVPTX/fp-fold-sub.ll
M llvm/test/CodeGen/NVPTX/mixed-precision-fp.ll
M llvm/test/Transforms/InstCombine/NVPTX/nvvm-intrins.ll
M llvm/test/Transforms/InstSimplify/const-fold-nvvm-add.ll
A llvm/test/Verifier/NVPTX/fadd.ll
M llvm/unittests/IR/IntrinsicsTest.cpp
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
M mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/nvvm/addf/addf.mlir
M mlir/test/Target/LLVMIR/nvvm/addf/addf_invalid.mlir
M mlir/test/Target/LLVMIR/nvvm/addf/addf_vector.mlir
M mlir/test/Target/LLVMIR/nvvm/subf/subf.mlir
M mlir/test/Target/LLVMIR/nvvm/subf/subf_invalid.mlir
M mlir/test/Target/LLVMIR/nvvm/subf/subf_vector.mlir
Log Message:
-----------
[clang][NVPTX][MLIR][NVVM] Add overloaded fadd intrinsics (#221681)
This change adds the following overloaded `fadd` intrinsics with
NVPTX codegen:
- `llvm.nvvm.fadd`
- `llvm.nvvm.fadd.ftz`
- `llvm.nvvm.fadd.sat`
- `llvm.nvvm.fadd.ftz.sat`
The rounding mode is passed in as an `i32` immediate operand.
Auto-upgrades the older non-overloaded intrinsics to the new
ones, and updates clang builtins, CIR codegen, and MLIR NVVM ops
to lower to the new intrinsics.
In the interest of completion, this also:
- Adds intrinsics support for lowering some half-precision additions
that were omitted earlier (`f16/f16x2` without saturation, and
`bf16/bf16x2` additions), and support for the `f32x2` type.
- Extends the DAG combine pattern for lowering `fneg + add-intrinsic`
to `sub` instructions to all supported types.
- Adds tests for constant folding of these intrinsics with the newly
supported scalar types.
PTX Spec Reference:
https://docs.nvidia.com/cuda/developer-preview/13.4/parallel-thread-execution/index.html#floating-point-instructions-add
Assisted-by: Claude Opus 5
Commit: 41235ec98c8a152d5be53f78437faf36fe9d2a15
https://github.com/llvm/llvm-project/commit/41235ec98c8a152d5be53f78437faf36fe9d2a15
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Bring isLegalGatherOrScatter in line with existing method (NFC) (#221698)
Bring isLegalGatherOrScatter in line with isLegalMaskedLoadOrStore in
prepartion to widen gathers/scatters in VPlan.
Commit: be0fa604519d749fdd6e3f3b943f85a9cbdb13bf
https://github.com/llvm/llvm-project/commit/be0fa604519d749fdd6e3f3b943f85a9cbdb13bf
Author: Jonas Hahnfeld <jonas.hahnfeld at cern.ch>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/lib/AST/ExternalASTSource.cpp
M clang/unittests/AST/ExternalASTSourceTest.cpp
Log Message:
-----------
[clang][AST] Fix generation with multiple external sources (#219189)
ExternalASTSource::incrementGeneration returns the OldGeneration,
which must be taken into account in case it is delegated to the topmost
external source.
This obsoletes a long-standing downstream patch in Cling that was
previously submitted in https://reviews.llvm.org/D39714.
Test proposed by Vassil Vassilev, assisted by Claude.
Commit: 102073935c094577b0f88c7be8e432211d74cfb0
https://github.com/llvm/llvm-project/commit/102073935c094577b0f88c7be8e432211d74cfb0
Author: Lang Hames <lhames at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M orc-rt/CMakeLists.txt
M orc-rt/lib/bedrock/CMakeLists.txt
M orc-rt/lib/support/CMakeLists.txt
Log Message:
-----------
[orc-rt] Add ORC_RT_ENABLE_PIC, default on. (#221705)
An upcoming patch will add support for building bedrock as a dylib. In
preparation for this, add ORC_RT_ENABLE_PIC option, and use it to set
POSITION_INDEPENDENT_CODE (needed for shared library builds) on the
bedrock and support object libraries.
Commit: cd3a2657c7193abbdba4620649ff5b8f7409e47a
https://github.com/llvm/llvm-project/commit/cd3a2657c7193abbdba4620649ff5b8f7409e47a
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/MacroParenthesesCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.md
M clang-tools-extra/test/clang-tidy/checkers/bugprone/macro-parentheses.cpp
Log Message:
-----------
[clang-tidy] Fix bugprone-macro-parentheses false positives for alias names (#219955)
Fixes #219922.
Commit: 24319927cb0c4acbe9fb3f2bd042b07dad2a4f9f
https://github.com/llvm/llvm-project/commit/24319927cb0c4acbe9fb3f2bd042b07dad2a4f9f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
M mlir/test/Dialect/LLVMIR/nvvm.mlir
Log Message:
-----------
[mlir][NVVM] Reject f16 WGMMA accumulators for BF16 inputs (#220869)
WGMMA supports an f32 accumulator for BF16 multiplicands. The verifier
also accepted an f16 accumulator, allowing an unsupported operation
through dialect verification.
Restrict the BF16 case to f32 and add verifier coverage to the existing
NVVM dialect test.
Found by Coverity.
Assisted-by: Codex
Commit: ef23a997b4e0f555d467158c0ac47357c41b1314
https://github.com/llvm/llvm-project/commit/ef23a997b4e0f555d467158c0ac47357c41b1314
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
Log Message:
-----------
[LifetimeSafety] Gate lifetime checks behind per-diagnostic opts (#221610)
Granular Lifetime Safety Check Gating
We split `IsLifetimeSafetyEnabled` into individual check functions in
`SemaLifetimeSafety.h`.
These properties are stored in `LifetimeSafetyOpts`, which are then
checked inside the `Checker` to avoid invoking expensive reporting
functions mapping to diagnostics that are disabled.
`reportMisplacedLifetimebound` was found to be the most expensive
(possibly because it iterates on redecls).
Commit: 9fcc880e5a724c7fb95b646595eb081033a601d7
https://github.com/llvm/llvm-project/commit/9fcc880e5a724c7fb95b646595eb081033a601d7
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/test/Transforms/ConstraintElimination/induction-condition-in-loop-exit-postinc.ll
M llvm/test/Transforms/ConstraintElimination/induction-relational-predicate-latch.ll
M llvm/test/Transforms/ConstraintElimination/induction-symbolic-start-postinc.ll
Log Message:
-----------
[ConstraintElim] Support loops where header is also latch. (#221494)
Remove the bail out for header == latch. We now support deriving facts
from the latch condition and the restriction is no longer necessary.
This enables inferring additional flags in a number of cases, and a few
additional folds in practice:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1200.
It also removes a surprising limitation when writing manual tests.
PR: https://github.com/llvm/llvm-project/pull/221494
Commit: 34dff487dd711a6a6d6a22f474ce475bce757b47
https://github.com/llvm/llvm-project/commit/34dff487dd711a6a6d6a22f474ce475bce757b47
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.h
M llvm/test/Transforms/SLPVectorizer/AArch64/loop-accumulator-reduction.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/many-uses-fma-candidate.ll
M llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll
M llvm/test/Transforms/SLPVectorizer/X86/fma-operand-index.ll
M llvm/test/Transforms/SLPVectorizer/X86/horizontal-fadd-with-sub.ll
M llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
M llvm/test/Transforms/SLPVectorizer/X86/loop-accumulator-reduction.ll
M llvm/test/Transforms/SLPVectorizer/X86/ordered-reduction-replaced.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduction-fadd-reassoc.ll
Log Message:
-----------
[SLP]Flatten fsub/fneg chains into fadd reductions with per-operand signs
For unordered fadd reductions, reassociable (reassoc+nsz) fsub/fneg
chain links are recursed into and their leaves tracked with a flipped
sign, which is part of the grouping key, so reduced-values groups are
sign-uniform by construction. If per-value signs cannot model the
chain, the analysis restarts once without the flattening. Negated
parts are combined with vector fsub (may form per-lane fma) and
subtracted once in the final combine; no extra negations are emitted.
Fixes #211521
Reviewers: hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/215840
Commit: 0fc0c614130666dbf626db6650285f83340b7c17
https://github.com/llvm/llvm-project/commit/0fc0c614130666dbf626db6650285f83340b7c17
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/test/Analysis/CostModel/AMDGPU/fused_costs.ll
M llvm/test/CodeGen/AArch64/PBQP-chain.ll
M llvm/test/CodeGen/AArch64/PBQP-coalesce-benefit.ll
M llvm/test/CodeGen/AArch64/PBQP-csr.ll
M llvm/test/CodeGen/AArch64/arithmetic_fence.ll
M llvm/test/CodeGen/AArch64/arm64-2013-01-13-ffast-fcmp.ll
M llvm/test/CodeGen/AArch64/arm64-extract-insert-varidx.ll
M llvm/test/CodeGen/AArch64/arm64-fml-combines.ll
M llvm/test/CodeGen/AArch64/arm64-neon-2velem-high.ll
M llvm/test/CodeGen/AArch64/arm64-neon-scalar-by-elem-mul.ll
M llvm/test/CodeGen/AArch64/arm64-neon-select_cc.ll
M llvm/test/CodeGen/AArch64/arm64-neon-vector-list-spill.ll
M llvm/test/CodeGen/AArch64/fnmul.ll
M llvm/test/CodeGen/AArch64/fp16-fmla.ll
M llvm/test/CodeGen/AArch64/neon-fpextend_f16.ll
M llvm/test/CodeGen/AArch64/neon-fpround_f128.ll
M llvm/test/CodeGen/AArch64/neon-scalar-by-elem-fma.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-ext-fma.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-fma-mul.ll
M llvm/test/CodeGen/AMDGPU/fdot2.ll
M llvm/test/CodeGen/AMDGPU/prevent-fmul-hoist-ir.ll
M llvm/test/CodeGen/Hexagon/swp-epilog-reuse.ll
M llvm/test/CodeGen/Hexagon/swp-epilog-reuse2.ll
M llvm/test/CodeGen/Hexagon/swp-loop-carried.ll
M llvm/test/CodeGen/Hexagon/swp-max-stage3.ll
M llvm/test/CodeGen/Hexagon/swp-memrefs-epilog.ll
M llvm/test/CodeGen/Hexagon/swp-rename-dead-phi.ll
M llvm/test/CodeGen/Hexagon/swp-reuse-phi.ll
M llvm/test/CodeGen/PowerPC/fma-mutate-duplicate-vreg.ll
Log Message:
-----------
CodeGen: Drop inert -fp-contract flags from tests (#221710)
-fp-contract is nearly dead, but referenced in tests. These have
no output change with or without the flag now.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: bbed4e22becfb7f271ad11d9e408e43b2500e459
https://github.com/llvm/llvm-project/commit/bbed4e22becfb7f271ad11d9e408e43b2500e459
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/clmul-vector-256.ll
M llvm/test/CodeGen/X86/clmul-vector-512.ll
M llvm/test/CodeGen/X86/clmul-vector.ll
Log Message:
-----------
[X86] LowerCLMUL - improve CLMULH vXi32 codegen (#221668)
Extension to #221289 - adds CLMULH handling by ensuring we zero out the
upper 64-bits of the PCLMULQDQ input and extract the upper i32 element
during unpacking the vector result back together
Commit: 8436dd4a2bfe57d0b3fb6c9c11c69d75c1d1bccb
https://github.com/llvm/llvm-project/commit/8436dd4a2bfe57d0b3fb6c9c11c69d75c1d1bccb
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
Log Message:
-----------
[mlir][NVVM] Move MMA verifier type sets (NFC) (#221712)
Build the fixed-size operand type collection by moving the locally
computed allowed-type sets. The verifier does not use the individual
sets afterward, so copying their nested vectors is unnecessary.
Found by Coverity.
Assisted-by: Codex
Commit: e5f39fb259ea9c6d52fe9b2cd4213c17b7f11a56
https://github.com/llvm/llvm-project/commit/e5f39fb259ea9c6d52fe9b2cd4213c17b7f11a56
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/AArch64/splat-gather-subtree-store-chain.ll
Log Message:
-----------
[SLP][NFC]Add a test with the regression in SLP perf, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221716
Commit: ac129cd8965f557bbc361011c3c28a378b86c969
https://github.com/llvm/llvm-project/commit/ac129cd8965f557bbc361011c3c28a378b86c969
Author: Mariya Podchishchaeva <Mariya.Podchishchaeva at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M clang/test/CIR/CodeGen/ptrdiff.c
M clang/test/CIR/CodeGen/ptrdiff.cpp
Log Message:
-----------
[CIR] Fix ptrdiff tests after 1191f353cefe3c7ceb8e76fd03296e082a247685 (#221703)
Commit: 42b846980eeacd8052d7a463e1aea8bb91aff248
https://github.com/llvm/llvm-project/commit/42b846980eeacd8052d7a463e1aea8bb91aff248
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/split-node-struct-type.ll
Log Message:
-----------
[SLP]Fix crash in canBuildSplitNode on struct-typed scalars
Split nodes require plain vector types for the cost model and codegen,
but getWidenedType on a struct scalar type returns a struct-of-vectors,
so the cast<VectorType> asserted. Bail out on struct-typed scalars, they
are not supported.
Fixes #221715
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/221721
Commit: cb9654f7491d429d03eaf3fd5c01c45c90c32200
https://github.com/llvm/llvm-project/commit/cb9654f7491d429d03eaf3fd5c01c45c90c32200
Author: Raphael Isemann <rise at apple.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
Log Message:
-----------
[lldb][test] Bump utility expression timeout to 10 minutes (#221691)
LLDB needs to sometimes run utility expressions such as loading
libraries via a call to `dlopen`. These utility expressions have a
timeout associated with them which is only 15 seconds (and 60 on
sanitized builds).
I suspect our expressions reaching this timeout is the reason why
TestLoadUsingPaths.py sometimes fails to load libraries and produces
this error:
```
File "../TestLoadUsingPaths.py", line 78, in test_load_using_paths
self.assertNotEqual(token, lldb.LLDB_INVALID_IMAGE_TOKEN, "Got a valid token")
```
This patch bumps the timeout to 10 minutes. There is no good reason why
this timeout should exist in the first place on test bots, and maybe we
should remove them or make them fatal errors on the test bots. But for
now this patch should at least fix the test randomly failing on very
slow bots.
Commit: e30a45f88b003e3baaf268040e85b80826a83394
https://github.com/llvm/llvm-project/commit/e30a45f88b003e3baaf268040e85b80826a83394
Author: Raphael Isemann <rise at apple.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M lldb/unittests/Core/MangledTest.cpp
Log Message:
-----------
[lldb][test] Merge demangling tests into one test (#221214)
The XML test report that LIT generates describes the outcome of every
test in the test suite. Currently, the test report for the LLDB unit
tests alone is about 5MiB of which 4.7MiB (about 94%) are used to
describe all 30'000 DemanglingInfoCorrectnessTest instances names (they
don't have any output on success, so this is just used to describe the
test names).
This patch merges all these test instances into one. To make test
failures still easy to parse, this patch changes test function to use a
gtest scrope (which annotates failures with the mangled name) and use
non-fatal checks to continue testing when one test fails.
This reduces the test report size overhead of these tests from 4.7MiB to
about 100B.
assisted-by: claude
Commit: b9b5fb9fec7a078e9d5471db19fccc681eb3559a
https://github.com/llvm/llvm-project/commit/b9b5fb9fec7a078e9d5471db19fccc681eb3559a
Author: Kareem Ergawy <kergawy at nvidia.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M flang/lib/Lower/PFTBuilder.cpp
Log Message:
-----------
[flang] Enable wrap-unstructured-constructs-in-execute-region by default (#221637)
More extensive testing since the flag was introduced, with the
regressions it uncovered now fixed, see:
* https://github.com/llvm/llvm-project/pull/218674
* https://github.com/llvm/llvm-project/pull/217220
* https://github.com/llvm/llvm-project/pull/217842
* https://github.com/llvm/llvm-project/pull/216280
Commit: 59f30df017e98a45ae2d209f71f95f6ac168151d
https://github.com/llvm/llvm-project/commit/59f30df017e98a45ae2d209f71f95f6ac168151d
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/Transforms/Passes.td
M mlir/lib/Dialect/Tosa/Transforms/TosaNarrowTypes.cpp
A mlir/test/Dialect/Tosa/tosa-narrow-f32-to-f16-aggressive.mlir
A mlir/test/Dialect/Tosa/tosa-narrow-f32-to-f16.mlir
Log Message:
-----------
[mlir][tosa] Add F32 to F16 type narrowing pass (#218900)
Add `tosa-narrow-f32-to-f16`, extending the shared TOSA type narrowing
infrastructure with support for destructively converting F32 tensors,
scalar attributes, dense constants, and resource-backed constants to
F16.
The pass supports conservative and aggressive rewriting, optional
function-boundary conversion, and optional preservation of F32
accumulator types.
Add coverage for constant precision loss, function boundaries, regions,
dense resources, aggressive rewriting, and accumulator-type
preservation.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: 0f138f68467db7f1eaf61f98e699da4733fb2d8a
https://github.com/llvm/llvm-project/commit/0f138f68467db7f1eaf61f98e699da4733fb2d8a
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M .ci/metrics/Dockerfile
M .ci/utils.sh
M .git-blame-ignore-revs
M .github/workflows/containers/github-action-ci-windows/Dockerfile
M .github/workflows/containers/github-action-ci/Dockerfile
M .github/workflows/containers/libc/Dockerfile
M .github/workflows/premerge.yaml
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Rewrite/RewriteInstance.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/Relocation.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
A bolt/test/RISCV/ifunc.s
M bolt/unittests/Core/BinaryContext.cpp
M bolt/unittests/Core/MCPlusBuilder.cpp
M bolt/unittests/Core/MemoryMaps.cpp
M bolt/unittests/Profile/PerfScripts.cpp
M clang-tools-extra/clang-tidy/.clang-tidy
M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
M clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
M clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
M clang-tools-extra/clang-tidy/bugprone/MacroParenthesesCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
M clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
M clang-tools-extra/clang-tidy/modernize/CMakeLists.txt
M clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp
A clang-tools-extra/clang-tidy/modernize/UseToUnderlyingCheck.cpp
A clang-tools-extra/clang-tidy/modernize/UseToUnderlyingCheck.h
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h
M clang-tools-extra/clang-tidy/readability/TrailingCommaCheck.cpp
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clangd/AST.cpp
M clang-tools-extra/clangd/ClangdServer.cpp
M clang-tools-extra/clangd/CompileCommands.cpp
M clang-tools-extra/clangd/IncludeFixer.cpp
M clang-tools-extra/clangd/ModulesBuilder.cpp
M clang-tools-extra/clangd/ModulesBuilder.h
M clang-tools-extra/clangd/XRefs.cpp
M clang-tools-extra/clangd/unittests/CallHierarchyTests.cpp
M clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp
M clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
M clang-tools-extra/clangd/unittests/InlayHintTests.cpp
M clang-tools-extra/clangd/unittests/ParsedASTTests.cpp
M clang-tools-extra/clangd/unittests/PreambleTests.cpp
M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
M clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp
M clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp
M clang-tools-extra/clangd/unittests/XRefsTests.cpp
M clang-tools-extra/docs/ReleaseNotes.md
M clang-tools-extra/docs/clang-tidy/checks/list.md
A clang-tools-extra/docs/clang-tidy/checks/modernize/use-to-underlying.md
A clang-tools-extra/docs/clang-tidy/checks/readability/ambiguous-smartptr-reset-call.md
R clang-tools-extra/docs/clang-tidy/checks/readability/ambiguous-smartptr-reset-call.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/avoid-return-with-void-value.md
R clang-tools-extra/docs/clang-tidy/checks/readability/avoid-return-with-void-value.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.md
R clang-tools-extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/braces-around-statements.md
R clang-tools-extra/docs/clang-tidy/checks/readability/braces-around-statements.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/const-return-type.md
R clang-tools-extra/docs/clang-tidy/checks/readability/const-return-type.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/container-contains.md
R clang-tools-extra/docs/clang-tidy/checks/readability/container-contains.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/container-size-empty.md
R clang-tools-extra/docs/clang-tidy/checks/readability/container-size-empty.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/duplicate-include.md
R clang-tools-extra/docs/clang-tidy/checks/readability/duplicate-include.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/else-after-return.md
R clang-tools-extra/docs/clang-tidy/checks/readability/else-after-return.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/enum-initial-value.md
R clang-tools-extra/docs/clang-tidy/checks/readability/enum-initial-value.rst
M clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.rst
M clang-tools-extra/include-cleaner/lib/WalkAST.cpp
M clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
M clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/utility
M clang-tools-extra/test/clang-tidy/checkers/bugprone/macro-parentheses.cpp
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward-cxx20.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-to-underlying-custom-function.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-to-underlying-imprecise-casts.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-to-underlying-invalid-config.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-to-underlying.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-typedef-inherit-anon-tag-config.c
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-typedef-inherit-anon-tag-config.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/trailing-comma-cxx11.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/clang-tidy-diff.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h
M clang/docs/AddressSanitizer.md
M clang/docs/CMakeLists.txt
M clang/docs/ClangFormatStyleOptions.md
A clang/docs/CommandGuide/clang.md
R clang/docs/CommandGuide/clang.rst
A clang/docs/CommandGuide/diagtool.md
R clang/docs/CommandGuide/diagtool.rst
A clang/docs/HardwareAssistedAddressSanitizer.md
M clang/docs/HardwareAssistedAddressSanitizerDesign.md
A clang/docs/LLVMExceptionHandlingCodeGen.md
R clang/docs/LLVMExceptionHandlingCodeGen.rst
M clang/docs/LanguageExtensions.md
M clang/docs/LeakSanitizer.md
A clang/docs/MatrixTypes.md
R clang/docs/MatrixTypes.rst
A clang/docs/ObjectiveCLiterals.md
R clang/docs/ObjectiveCLiterals.rst
A clang/docs/OffloadingDesign.md
R clang/docs/OffloadingDesign.rst
M clang/docs/OpenMPSupport.md
A clang/docs/PCHInternals.md
R clang/docs/PCHInternals.rst
M clang/docs/ReleaseNotes.md
M clang/docs/StandardCPlusPlusModules.md
M clang/docs/ThreadSanitizer.md
M clang/docs/UsersManual.md
M clang/docs/conf.py
A clang/docs/index.md
R clang/docs/index.rst
M clang/include/clang/AST/NestedNameSpecifier.h
M clang/include/clang/AST/NestedNameSpecifierBase.h
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/StmtOpenMP.h
M clang/include/clang/AST/TypeBase.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
R clang/include/clang/Analysis/FlowSensitive/DataflowValues.h
M clang/include/clang/Basic/AArch64CodeGenUtils.h
M clang/include/clang/Basic/ABIVersions.def
M clang/include/clang/Basic/AtomicLineLogger.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/BuiltinsNVPTX.td
M clang/include/clang/Basic/BuiltinsWebAssembly.def
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticLexKinds.td
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/HLSLIntrinsics.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRDialect.td
M clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.h
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/include/clang/CIR/MissingFeatures.h
A clang/include/clang/CodeGenUtils/CodeGenUtils.h
M clang/include/clang/DependencyScanning/DependencyScanningWorker.h
M clang/include/clang/DependencyScanning/ModuleDepCollector.h
M clang/include/clang/Driver/Action.h
M clang/include/clang/Driver/CommonArgs.h
M clang/include/clang/Driver/Tool.h
M clang/include/clang/Driver/Types.def
M clang/include/clang/Format/Format.h
M clang/include/clang/Lex/Lexer.h
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Lex/PreprocessorOptions.h
M clang/include/clang/Options/ClangOptionDocs.td
M clang/include/clang/Options/FlangOptions.td
M clang/include/clang/Options/Options.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaWasm.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
R clang/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h
M clang/include/clang/Tooling/Inclusions/HeaderIncludes.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/Disasm.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/Frame.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
A clang/lib/AST/ByteCode/InterpBuiltinObjectSize.cpp
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpHelpers.h
M clang/lib/AST/ByteCode/InterpState.h
M clang/lib/AST/ByteCode/Opcodes.td
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/lib/AST/ByteCode/Program.cpp
M clang/lib/AST/ByteCode/Record.cpp
M clang/lib/AST/ByteCode/Record.h
M clang/lib/AST/ByteCode/State.cpp
M clang/lib/AST/ByteCode/State.h
M clang/lib/AST/CMakeLists.txt
M clang/lib/AST/CommentSema.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclPrinter.cpp
M clang/lib/AST/ExprConstShared.h
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ExternalASTSource.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Analysis/LifetimeSafety/Loans.cpp
M clang/lib/Basic/AtomicLineLogger.cpp
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
M clang/lib/CIR/CodeGen/CIRGenCall.cpp
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
M clang/lib/CIR/CodeGen/CIRGenException.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenFunctionInfo.h
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.h
M clang/lib/CIR/CodeGen/CMakeLists.txt
M clang/lib/CIR/CodeGen/TargetInfo.cpp
M clang/lib/CIR/CodeGen/TargetInfo.h
M clang/lib/CIR/CodeGen/Targets/SPIRV.cpp
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDataLayout.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CMakeLists.txt
M clang/lib/CodeGen/ABIInfo.cpp
M clang/lib/CodeGen/ABIInfo.h
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGBuiltin.h
M clang/lib/CodeGen/CGCUDANV.cpp
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CMakeLists.txt
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/QualTypeMapper.cpp
M clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
M clang/lib/CodeGen/TargetBuiltins/WebAssembly.cpp
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/CodeGen/Targets/Sparc.cpp
M clang/lib/CodeGen/Targets/WebAssembly.cpp
M clang/lib/CodeGen/Targets/X86.cpp
A clang/lib/CodeGenUtils/CMakeLists.txt
A clang/lib/CodeGenUtils/CodeGenUtils.cpp
M clang/lib/DependencyScanning/ModuleDepCollector.cpp
M clang/lib/Driver/Action.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ModulesDriver.cpp
M clang/lib/Driver/Tool.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Arch/Mips.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/Clang.h
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/Cygwin.cpp
M clang/lib/Driver/ToolChains/Cygwin.h
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPSPV.cpp
M clang/lib/Driver/ToolChains/HIPSPV.h
M clang/lib/Driver/ToolChains/HIPUtility.cpp
M clang/lib/Driver/ToolChains/HIPUtility.h
M clang/lib/Driver/ToolChains/MSVC.cpp
M clang/lib/Driver/ToolChains/OpenBSD.cpp
M clang/lib/Driver/ToolChains/SPIRV.cpp
M clang/lib/Driver/ToolChains/SYCL.cpp
M clang/lib/Driver/ToolChains/SYCL.h
M clang/lib/Driver/ToolChains/VEToolchain.cpp
M clang/lib/Driver/Types.cpp
M clang/lib/Format/Format.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Lex/Lexer.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Lex/PPExpressions.cpp
M clang/lib/Options/DriverOptions.cpp
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseExprCXX.cpp
M clang/lib/Parse/ParseObjc.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Parse/ParseStmt.cpp
M clang/lib/Parse/ParseTemplate.cpp
M clang/lib/Parse/Parser.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaAvailability.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaCoroutine.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaDeclObjC.cpp
M clang/lib/Sema/SemaExpand.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaLambda.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Sema/SemaModule.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaTemplateVariadic.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Sema/SemaWasm.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
M clang/lib/Tooling/Inclusions/HeaderIncludes.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
A clang/test/AST/ByteCode/builtin-object-size-codegen-cxx23.cpp
M clang/test/AST/ByteCode/builtin-object-size-codegen.c
M clang/test/AST/ByteCode/builtin-object-size-codegen.cpp
M clang/test/AST/ByteCode/c.c
M clang/test/AST/ByteCode/codegen.c
M clang/test/AST/ByteCode/complex.c
R clang/test/AST/ByteCode/enable_if.c
M clang/test/AST/ByteCode/enums.cpp
M clang/test/AST/ByteCode/initializer_list.cpp
M clang/test/AST/ByteCode/literals.cpp
M clang/test/Analysis/Checkers/WebKit/mock-types.h
M clang/test/Analysis/Checkers/WebKit/unchecked-call-arg.cpp
M clang/test/Analysis/cstring-syntax.c
A clang/test/Analysis/ctu/stu-workremaining-with-ctu-calls.cpp
A clang/test/Analysis/ctu/stu-workremaining.cpp
M clang/test/Analysis/pointer-sub.c
M clang/test/CIR/CodeGen/aapcs-volatile-bitfields.c
M clang/test/CIR/CodeGen/agg-atomic-cast.c
M clang/test/CIR/CodeGen/arg-attrs.cpp
M clang/test/CIR/CodeGen/atomic-libcall.c
M clang/test/CIR/CodeGen/bitfield-union.c
M clang/test/CIR/CodeGen/bitfields.c
M clang/test/CIR/CodeGen/bitfields.cpp
M clang/test/CIR/CodeGen/bitfields_be.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-abi-compat.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-avx.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-byref.cpp
R clang/test/CIR/CodeGen/call-conv-lowering-x86_64-empty-bitfield-member-nyi.cpp
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-empty.cpp
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-indirect.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-packed.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-padded.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-variadic.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64-zero-width-bitfield.c
M clang/test/CIR/CodeGen/call-conv-lowering-x86_64.c
M clang/test/CIR/CodeGen/call.c
M clang/test/CIR/CodeGen/complex-libcall-abi.c
M clang/test/CIR/CodeGen/delegating-ctor.cpp
A clang/test/CIR/CodeGen/destructor-vtable-reinit-strict.cpp
A clang/test/CIR/CodeGen/destructor-vtable-reinit.cpp
M clang/test/CIR/CodeGen/dumb-record.cpp
M clang/test/CIR/CodeGen/finegrain-bitfield-access.cpp
A clang/test/CIR/CodeGen/global-ptr-flat-offset.c
A clang/test/CIR/CodeGen/global-replace-record-array.c
M clang/test/CIR/CodeGen/global-temp-dtor.cpp
M clang/test/CIR/CodeGen/global-tls-dyn-init.cpp
M clang/test/CIR/CodeGen/global-tls-dynamic-vs-static.cpp
M clang/test/CIR/CodeGen/global-tls-simple-init.cpp
M clang/test/CIR/CodeGen/global-tls-templates.cpp
M clang/test/CIR/CodeGen/implicit-value-init-expr.cpp
M clang/test/CIR/CodeGen/lifetime-marker.cpp
A clang/test/CIR/CodeGen/local-ptr-flat-offset.cpp
M clang/test/CIR/CodeGen/mms-bitfields.c
M clang/test/CIR/CodeGen/new.cpp
M clang/test/CIR/CodeGen/no-unique-address.cpp
M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
M clang/test/CIR/CodeGen/pointer-to-empty-data-member.cpp
M clang/test/CIR/CodeGen/ptrdiff.c
M clang/test/CIR/CodeGen/ptrdiff.cpp
R clang/test/CIR/CodeGen/record-member-kinds-nyi.cpp
M clang/test/CIR/CodeGen/record-member-kinds.c
M clang/test/CIR/CodeGen/record-member-kinds.cpp
M clang/test/CIR/CodeGen/record-zero-init-padding.c
A clang/test/CIR/CodeGen/spirv-target-lowering-as.cpp
M clang/test/CIR/CodeGen/thread-local-in-func.cpp
M clang/test/CIR/CodeGen/tls-model-func-scope.cpp
M clang/test/CIR/CodeGen/tls-model.cpp
M clang/test/CIR/CodeGen/tls.c
M clang/test/CIR/CodeGenBuiltins/NVPTX/builtins-nvptx-sync.cu
M clang/test/CIR/CodeGenBuiltins/builtin-fpclassify.c
M clang/test/CIR/CodeGenBuiltins/builtin-isfpclass.c
M clang/test/CIR/CodeGenBuiltins/builtin-isinf-sign.c
M clang/test/CIR/CodeGenCUDA/builtins-nvvm-atomic.cu
A clang/test/CIR/CodeGenCUDA/builtins-nvvm-ldu-ldg.cu
R clang/test/CIR/CodeGenCUDA/builtins-nvvm-ldu.cu
M clang/test/CIR/CodeGenCUDA/builtins-nvvm-math.cu
M clang/test/CIR/CodeGenCUDA/kernel-call.cu
A clang/test/CIR/CodeGenCUDA/uniform-work-group-size.cu
A clang/test/CIR/CodeGenCoroutines/coro-alloc.cpp
M clang/test/CIR/CodeGenCoroutines/coro-builtins.cpp
A clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
A clang/test/CIR/CodeGenHIP/builtin-bool-result.hip
M clang/test/CIR/CodeGenHIP/builtins-amdgcn-gfx10.hip
M clang/test/CIR/CodeGenHIP/builtins-amdgcn-gfx11.hip
M clang/test/CIR/CodeGenHIP/builtins-amdgcn-s-prefetch-inst-nyi.hip
A clang/test/CIR/CodeGenHIP/builtins-amdgcn-wave32.hip
A clang/test/CIR/CodeGenHIP/builtins-amdgcn-wave64.hip
M clang/test/CIR/CodeGenHIP/builtins-amdgcn.hip
M clang/test/CIR/CodeGenOpenACC/combined-copy.c
M clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/compute-copy.c
M clang/test/CIR/CodeGenOpenACC/compute-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/data-copy-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/declare-copy.cpp
M clang/test/CIR/CodeGenOpenACC/declare-copyin.cpp
M clang/test/CIR/CodeGenOpenACC/declare-copyout.cpp
M clang/test/CIR/CodeGenOpenACC/declare-create.cpp
M clang/test/CIR/CodeGenOpenACC/enter-data.c
M clang/test/CIR/CodeGenOpenACC/exit-data.c
M clang/test/CIR/CodeGenOpenCL/address-space-conversions.cl
M clang/test/CIR/CodeGenOpenCL/address-space-local-var.clcpp
M clang/test/CIR/CodeGenOpenCL/address-spaces.cl
M clang/test/CIR/CodeGenOpenCL/kernel-arg-info-single-as.cl
M clang/test/CIR/CodeGenOpenCL/kernel-arg-info.cl
M clang/test/CIR/CodeGenOpenMP/emit-device-functions.cpp
M clang/test/CIR/CodeGenOpenMP/omp-module-attrs.c
M clang/test/CIR/CodeGenOpenMP/target-host-op-filtering.c
M clang/test/CIR/IR/catch-param.cir
M clang/test/CIR/IR/cleanup-scope.cir
A clang/test/CIR/IR/enum-attrs.cir
M clang/test/CIR/IR/global.cir
A clang/test/CIR/IR/invalid-bitfield-member.cir
M clang/test/CIR/IR/invalid-call.cir
M clang/test/CIR/IR/invalid-lang-attr.cir
M clang/test/CIR/IR/invalid-loop-cleanup.cir
M clang/test/CIR/IR/invalid-opencl-kernel-arg-metadata.cir
M clang/test/CIR/IR/invalid-struct.cir
M clang/test/CIR/IR/invalid-tls.cir
M clang/test/CIR/IR/invalid-try-catch.cir
M clang/test/CIR/IR/opencl-kernel-arg-metadata.cir
M clang/test/CIR/IR/struct.cir
M clang/test/CIR/Lowering/address-space.cir
M clang/test/CIR/Lowering/copy-skip-tail-padding.cir
M clang/test/CIR/Lowering/opencl-kernel-arg-metadata.cir
M clang/test/CIR/Transforms/abi-lowering/byval-sret-arg-attr-lowering.cir
M clang/test/CIR/Transforms/abi-lowering/indirect-byval.cir
M clang/test/CIR/Transforms/abi-lowering/indirect-call-test-target.cir
M clang/test/CIR/Transforms/abi-lowering/indirect-call.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-aggregate-nyi.cir
A clang/test/CIR/Transforms/abi-lowering/x86_64-bitfield.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-bitint.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-complex.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-empty-class.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-indirect.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-padded.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-union.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-variadic-call.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-vector.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-vptr.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-wide-floats.cir
M clang/test/CIR/Transforms/omp-mark-declare-target.cir
M clang/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p2.cpp
R clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.depend/p1.cpp
R clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.depend/p2.cpp
M clang/test/CXX/drs/cwg0xx.cpp
M clang/test/CXX/drs/cwg10xx.cpp
M clang/test/CXX/drs/cwg17xx.cpp
M clang/test/CXX/drs/cwg4xx.cpp
M clang/test/CXX/stmt.stmt/stmt.select/p3.cpp
M clang/test/ClangScanDeps/P1689.cppm
A clang/test/ClangScanDeps/depscan-log-path.c
A clang/test/ClangScanDeps/logging-driver-flag.c
M clang/test/ClangScanDeps/logging-simple-by-name.c
M clang/test/ClangScanDeps/logging-simple.c
A clang/test/ClangScanDeps/p1689-module-map.cppm
M clang/test/CodeCompletion/attr.cpp
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon/f16-getset.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
M clang/test/CodeGen/AArch64/neon/perm.c
M clang/test/CodeGen/AArch64/neon/vpaddl.c
A clang/test/CodeGen/Mips/fixed-register-global.c
M clang/test/CodeGen/Sparc/sparc-vaarg.c
M clang/test/CodeGen/Sparc/variadic-aggregate.c
A clang/test/CodeGen/WebAssembly/wasm-global-export.c
A clang/test/CodeGen/WebAssembly/wasm-global-import.c
A clang/test/CodeGen/WebAssembly/wasm-import-error.c
M clang/test/CodeGen/X86/newpm.c
A clang/test/CodeGen/X86/x86_64-empty-cxx-member-abi.cpp
A clang/test/CodeGen/X86/x86_64-unnamed-bitfield-abi-compat.c
A clang/test/CodeGen/arm-eabihf-no-fpregs.c
M clang/test/CodeGen/attr-counted-by-with-sanitizers.c
M clang/test/CodeGen/attr-counted-by-without-sanitizers.c
M clang/test/CodeGen/builtin-clear-padding-codegen.c
M clang/test/CodeGen/builtins-nvptx.c
M clang/test/CodeGen/builtins-wasm.c
M clang/test/CodeGen/dwarf-version.c
M clang/test/CodeGen/enum-bool.cpp
M clang/test/CodeGen/fat-lto-objects-cfi.cpp
M clang/test/CodeGen/glibc_ptr_align.c
M clang/test/CodeGen/ptr-subtract-stable.c
M clang/test/CodeGen/unique-internal-linkage-names.cpp
M clang/test/CodeGen/vla.c
M clang/test/CodeGenCUDA/anon-ns.cu
M clang/test/CodeGenCUDA/device-stub.cu
M clang/test/CodeGenCUDA/device-var-linkage.cu
M clang/test/CodeGenCUDA/fp-contract.cu
M clang/test/CodeGenCUDA/managed-var.cu
M clang/test/CodeGenCUDA/offloading-entries.cu
M clang/test/CodeGenCUDA/static-device-var-rdc.cu
M clang/test/CodeGenCXX/builtin-clear-padding-codegen.cpp
M clang/test/CodeGenCXX/microsoft-vector-deleting-dtors2.cpp
A clang/test/CodeGenCXX/windows-x86_64-varargs.cpp
M clang/test/CodeGenHIP/offload-pgo-sections.hip
A clang/test/CodeGenHLSL/builtins/InterlockedAnd.hlsl
M clang/test/CodeGenHLSL/builtins/RWBuffer-Interlocked.hlsl
A clang/test/CodeGenHLSL/builtins/RWByteAddressBuffer-InterlockedAnd.hlsl
A clang/test/CodeGenHLSL/builtins/RasterizerOrderedByteAddressBuffer-InterlockedAnd.hlsl
M clang/test/CodeGenHLSL/builtins/abs.hlsl
A clang/test/CodeGenHLSL/builtins/acos_mat.hlsl
A clang/test/CodeGenHLSL/builtins/asin_mat.hlsl
A clang/test/CodeGenHLSL/builtins/atan_mat.hlsl
A clang/test/CodeGenHLSL/builtins/ceil_mat.hlsl
A clang/test/CodeGenHLSL/builtins/cos_mat.hlsl
A clang/test/CodeGenHLSL/builtins/cosh_mat.hlsl
M clang/test/CodeGenHLSL/builtins/degrees.hlsl
A clang/test/CodeGenHLSL/builtins/exp2_mat.hlsl
A clang/test/CodeGenHLSL/builtins/exp_mat.hlsl
A clang/test/CodeGenHLSL/builtins/floor_mat.hlsl
A clang/test/CodeGenHLSL/builtins/frac_mat.hlsl
M clang/test/CodeGenHLSL/builtins/lerp.hlsl
A clang/test/CodeGenHLSL/builtins/log10_mat.hlsl
A clang/test/CodeGenHLSL/builtins/log2_mat.hlsl
A clang/test/CodeGenHLSL/builtins/log_mat.hlsl
A clang/test/CodeGenHLSL/builtins/max_mat.hlsl
A clang/test/CodeGenHLSL/builtins/min_mat.hlsl
M clang/test/CodeGenHLSL/builtins/radians.hlsl
A clang/test/CodeGenHLSL/builtins/rcp_mat.hlsl
A clang/test/CodeGenHLSL/builtins/round_mat.hlsl
A clang/test/CodeGenHLSL/builtins/rsqrt_mat.hlsl
A clang/test/CodeGenHLSL/builtins/saturate_mat.hlsl
A clang/test/CodeGenHLSL/builtins/sin_mat.hlsl
A clang/test/CodeGenHLSL/builtins/sinh_mat.hlsl
M clang/test/CodeGenHLSL/builtins/smoothstep.hlsl
A clang/test/CodeGenHLSL/builtins/sqrt_mat.hlsl
M clang/test/CodeGenHLSL/builtins/step.hlsl
A clang/test/CodeGenHLSL/builtins/tan_mat.hlsl
A clang/test/CodeGenHLSL/builtins/tanh_mat.hlsl
A clang/test/CodeGenHLSL/builtins/trunc_mat.hlsl
M clang/test/CodeGenHLSL/resources/Textures-Mips.hlsl
M clang/test/CodeGenObjCXX/block-in-template-inst.mm
M clang/test/CodeGenOpenCL/address-spaces-conversions.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-async-load-lds.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-s-buffer-load.cl
M clang/test/CodeGenOpenCL/nullptr.cl
M clang/test/CodeGenOpenCL/size_t.cl
M clang/test/DebugInfo/CXX/limited-ctor.cpp
M clang/test/DebugInfo/Generic/debug-label-inline.c
M clang/test/DebugInfo/Generic/unique-internal-linkage-names-dwarf.c
M clang/test/DebugInfo/Generic/unique-internal-linkage-names-dwarf.cpp
A clang/test/DebugInfo/ObjC/property-backing-storage.m
A clang/test/Driver/Inputs/basic_cygwin_tree/usr/lib/default-manifest.o
M clang/test/Driver/aarch64-security-options.c
M clang/test/Driver/amdgpu-hip-system-arch.c
M clang/test/Driver/amdgpu-offload-arch-subarch-names.c
M clang/test/Driver/arch-specific-libdir-rpath.c
M clang/test/Driver/cuda-bad-arch.cu
M clang/test/Driver/cuda-bindings.cu
M clang/test/Driver/cuda-external-tools.cu
M clang/test/Driver/cuda-openmp-driver.cu
M clang/test/Driver/cuda-options.cu
M clang/test/Driver/cuda-phases.cu
M clang/test/Driver/cygwin.cpp
M clang/test/Driver/ftime-trace-offload.cpp
M clang/test/Driver/gpu-libc.c
M clang/test/Driver/hip-binding.hip
M clang/test/Driver/hip-code-object-version.hip
R clang/test/Driver/hip-cuid-hash.hip
M clang/test/Driver/hip-cuid.hip
M clang/test/Driver/hip-dependent-options.hip
R clang/test/Driver/hip-device-compile.hip
R clang/test/Driver/hip-link-bc-to-bc.hip
R clang/test/Driver/hip-link-bundle-archive.hip
R clang/test/Driver/hip-link-save-temps.hip
R clang/test/Driver/hip-link-shared-library.hip
R clang/test/Driver/hip-link-static-library.hip
R clang/test/Driver/hip-offload-compress-zlib.hip
M clang/test/Driver/hip-offload-compress-zstd.hip
M clang/test/Driver/hip-options.hip
R clang/test/Driver/hip-output-file-name.hip
R clang/test/Driver/hip-partial-link.hip
M clang/test/Driver/hip-phases.hip
R clang/test/Driver/hip-rdc-device-only.hip
M clang/test/Driver/hip-save-temps.hip
M clang/test/Driver/hip-spirv-backend-bindings.c
M clang/test/Driver/hip-spirv-backend-opt.c
M clang/test/Driver/hip-spirv-backend-phases.c
M clang/test/Driver/hip-spirv-translator-new-driver.c
R clang/test/Driver/hip-target-id.hip
R clang/test/Driver/hip-temps-linux.hip
R clang/test/Driver/hip-temps-windows.hip
R clang/test/Driver/hip-toolchain-features.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
R clang/test/Driver/hip-toolchain-rdc-flto-partitions.hip
R clang/test/Driver/hip-toolchain-rdc-separate.hip
R clang/test/Driver/hip-toolchain-rdc-static-lib.hip
M clang/test/Driver/hip-toolchain-rdc.hip
R clang/test/Driver/hip-unbundle-preproc.hipi
M clang/test/Driver/hipspv-link-static-library.hip
M clang/test/Driver/hipspv-no-spirv-backend.hip
M clang/test/Driver/hipspv-pass-plugin.hip
M clang/test/Driver/hipspv-toolchain-rdc-separate.hip
M clang/test/Driver/hipspv-toolchain-rdc.hip
M clang/test/Driver/hipspv-toolchain.hip
R clang/test/Driver/lto.cu
A clang/test/Driver/mips-fixed-register.c
A clang/test/Driver/modules-driver-depscan-log.cpp
M clang/test/Driver/nvptx-cuda-system-arch.c
A clang/test/Driver/offload-new-driver-deprecated.c
M clang/test/Driver/openbsd.c
M clang/test/Driver/pic.c
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Driver/stack-clash-protection.c
A clang/test/Driver/sycl-nordc-fatbin.cpp
M clang/test/Driver/sycl-offload-jit.cpp
R clang/test/Driver/thinlto.cu
A clang/test/Interpreter/delayed-template-parsing-incremental.cpp
M clang/test/Lexer/bitint-constants-compat.c
M clang/test/Lexer/cxx2c-raw-strings.cpp
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
M clang/test/Modules/include-after-imports-enums.cppm
A clang/test/Modules/pr96423.cppm
A clang/test/Modules/reentered-header-duplicate.m
M clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-no-rdc.c
M clang/test/OpenMP/amdgpu_throw_trap.cpp
A clang/test/OpenMP/assume_holds_codegen.cpp
A clang/test/OpenMP/assume_holds_side_effects.cpp
M clang/test/OpenMP/depobj_codegen.cpp
M clang/test/OpenMP/for_range_loop_codegen.cpp
M clang/test/OpenMP/fuse_codegen.cpp
M clang/test/OpenMP/interchange_codegen.cpp
M clang/test/OpenMP/openmp_offload_weak_vtables.cpp
M clang/test/OpenMP/parallel_for_codegen.cpp
M clang/test/OpenMP/reverse_codegen.cpp
M clang/test/OpenMP/split_codegen.cpp
M clang/test/OpenMP/stripe_codegen.cpp
M clang/test/OpenMP/target_device_float128_mode_attr.c
M clang/test/OpenMP/target_teams_atomic_reduction_codegen.cpp
M clang/test/OpenMP/tile_codegen.cpp
A clang/test/OpenMP/tile_collapse_messages.cpp
A clang/test/OpenMP/tile_collapse_reinterpret_codegen.cpp
M clang/test/OpenMP/tile_messages.cpp
A clang/test/OpenMP/tile_rect_codegen_ir.cpp
A clang/test/OpenMP/tile_vectorize_codegen.cpp
R clang/test/Parser/GH214128.cpp
M clang/test/Parser/cxx0x-attributes.cpp
M clang/test/Parser/cxx0x-in-cxx98.cpp
M clang/test/Parser/cxx0x-lambda-expressions.cpp
M clang/test/Parser/cxx11-stmt-attributes.cpp
M clang/test/Parser/cxx11-user-defined-literals.cpp
M clang/test/Parser/cxx1z-decomposition.cpp
M clang/test/Parser/cxx1z-nested-namespace-definition.cpp
M clang/test/Parser/stmt-attributes.c
M clang/test/Preprocessor/has_attribute.cpp
M clang/test/Preprocessor/macro-reserved-attrs-cxx11.cpp
M clang/test/Preprocessor/riscv-target-features.c
M clang/test/Sema/LifetimeSafety/annotation-suggestions.cpp
M clang/test/Sema/LifetimeSafety/dangling-global.cpp
M clang/test/Sema/LifetimeSafety/nocfg.cpp
M clang/test/Sema/LifetimeSafety/safety-c.c
M clang/test/Sema/LifetimeSafety/safety.cpp
M clang/test/Sema/attr-wasm.c
M clang/test/Sema/builtins.c
M clang/test/Sema/empty1.c
M clang/test/Sema/enable_if.c
M clang/test/Sema/nullability.c
M clang/test/Sema/static-assert.c
M clang/test/Sema/warn-documentation.cpp
M clang/test/Sema/warn-documentation.m
M clang/test/Sema/warn-fortify-source.c
A clang/test/SemaCUDA/attr-instantiation-duplication-amdgpu.cu
A clang/test/SemaCUDA/attr-instantiation-duplication-spirv.cu
A clang/test/SemaCXX/GH214917.cpp
M clang/test/SemaCXX/attr-availability.cpp
M clang/test/SemaCXX/attr-cxx0x.cpp
M clang/test/SemaCXX/builtin-invoke.cpp
M clang/test/SemaCXX/coreturn.cpp
M clang/test/SemaCXX/coroutines.cpp
M clang/test/SemaCXX/cxx2c-attributes.cpp
M clang/test/SemaCXX/cxx2c-expansion-stmts-control-flow.cpp
M clang/test/SemaCXX/cxx98-compat.cpp
M clang/test/SemaCXX/new-delete.cpp
A clang/test/SemaCXX/pointer-sub-zero-size.cpp
M clang/test/SemaCXX/static-assert-ext.cpp
M clang/test/SemaCXX/type-traits.cpp
A clang/test/SemaHIP/hip-incremental-toplevel-launch.hip
A clang/test/SemaHLSL/BuiltIns/ByteAddressBuffer-InterlockedAnd-sm65-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/InterlockedAnd-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/max_mat-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/min_mat-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/smoothstep-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/step-errors.hlsl
M clang/test/SemaOpenCL/builtins-amdgcn-cvt-sr-pk-bf16-f32-err.cl
M clang/test/SemaOpenCL/builtins-amdgcn-s-wait-event.cl
M clang/tools/cir-translate/cir-translate.cpp
M clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp
M clang/tools/clang-import-test/clang-import-test.cpp
M clang/unittests/AST/AttrTest.cpp
M clang/unittests/AST/ExternalASTSourceTest.cpp
M clang/unittests/Basic/AtomicLineLoggerTest.cpp
M clang/unittests/CIR/ControlFlowTest.cpp
M clang/unittests/CIR/RecordMemberKindTest.cpp
M clang/unittests/Format/CleanupTest.cpp
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/FormatTestMacroExpansion.cpp
M clang/unittests/Format/SortIncludesTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
M clang/unittests/Sema/CMakeLists.txt
A clang/unittests/Sema/SemaModuleTest.cpp
M clang/unittests/Tooling/HeaderIncludesTest.cpp
M clang/unittests/Tooling/ToolingTest.cpp
M clang/utils/TableGen/ClangOptionDocEmitter.cpp
M clang/www/cxx_dr_status.html
M clang/www/cxx_status.html
M compiler-rt/lib/fuzzer/FuzzerDriver.cpp
M compiler-rt/lib/fuzzer/FuzzerLoop.cpp
M compiler-rt/lib/fuzzer/FuzzerUtil.h
M compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp
M compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp
M compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
M compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
M compiler-rt/lib/orc/coff_platform.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp
M compiler-rt/lib/scudo/standalone/allocator_config.def
M compiler-rt/lib/scudo/standalone/allocator_config.h
M compiler-rt/lib/scudo/standalone/common.h
M compiler-rt/lib/scudo/standalone/include/scudo/interface.h
M compiler-rt/lib/scudo/standalone/secondary.h
M compiler-rt/lib/scudo/standalone/tests/allocator_config_test.cpp
M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
M compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
M compiler-rt/lib/scudo/standalone/wrappers_c.cpp
M compiler-rt/lib/tsan/rtl/tsan_platform.h
M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
M compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
A compiler-rt/test/asan/TestCases/complete_stack_trace.c
A compiler-rt/test/fuzzer/stop-file.test
A compiler-rt/test/orc/TestCases/Windows/x86-64/atexit-order.c
M compiler-rt/test/rtsan/syscall.cpp
A compiler-rt/test/sanitizer_common/TestCases/Posix/opendir_null.cpp
M compiler-rt/test/ubsan/TestCases/Integer/summary.cpp
M cross-project-tests/dtlto/cache-extraction.test
M flang-rt/include/flang-rt/runtime/connection.h
M flang-rt/include/flang-rt/runtime/file.h
M flang-rt/lib/cuda/allocator.cpp
M flang-rt/lib/runtime/CMakeLists.txt
M flang-rt/lib/runtime/edit-input.cpp
M flang-rt/lib/runtime/environment.cpp
M flang-rt/lib/runtime/exceptions.cpp
M flang-rt/test/Driver/endian.f90
M flang-rt/unittests/CMakeLists.txt
M flang-rt/unittests/Runtime/Exceptions.cpp
M flang-rt/unittests/Runtime/ExternalIOTest.cpp
M flang/docs/Extensions.md
M flang/docs/OpenMP-declare-target.md
M flang/docs/ReleaseNotes.md
M flang/include/flang/Common/optional.h
A flang/include/flang/Evaluate/char.h
M flang/include/flang/Evaluate/complex.h
M flang/include/flang/Evaluate/initial-image.h
M flang/include/flang/Evaluate/integer.h
M flang/include/flang/Evaluate/intrinsics.h
M flang/include/flang/Evaluate/logical.h
M flang/include/flang/Evaluate/real.h
M flang/include/flang/Evaluate/tools.h
M flang/include/flang/Frontend/CompilerInstance.h
M flang/include/flang/Lower/ConvertConstant.h
M flang/include/flang/Lower/ConvertVariable.h
M flang/include/flang/Lower/OpenMP.h
M flang/include/flang/Lower/PFTBuilder.h
M flang/include/flang/Optimizer/Analysis/AliasAnalysis.h
M flang/include/flang/Optimizer/Analysis/TBAAForest.h
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
M flang/include/flang/Optimizer/Builder/LowLevelIntrinsics.h
M flang/include/flang/Optimizer/Builder/Runtime/Intrinsics.h
M flang/include/flang/Optimizer/CodeGen/CodeGen.h
M flang/include/flang/Optimizer/Dialect/CUF/Attributes/CUFAttr.td
M flang/include/flang/Optimizer/Dialect/FIRAttr.td
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
M flang/include/flang/Optimizer/Dialect/FortranVariableInterface.td
M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.h
M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCUtils.h
M flang/include/flang/Optimizer/Passes/Pipelines.h
M flang/include/flang/Optimizer/Support/InternalNames.h
M flang/include/flang/Optimizer/Transforms/Passes.td
M flang/include/flang/Parser/openmp-utils.h
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Runtime/CUDA/allocator.h
M flang/include/flang/Semantics/openmp-modifiers.h
M flang/include/flang/Semantics/openmp-utils.h
M flang/include/flang/Semantics/semantics.h
M flang/include/flang/Semantics/symbol.h
M flang/include/flang/Support/Fortran-features.h
M flang/include/flang/Support/LangOptions.h
M flang/lib/Evaluate/host.h
M flang/lib/Evaluate/initial-image.cpp
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Frontend/CompilerInstance.cpp
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/Frontend/TextDiagnosticPrinter.cpp
M flang/lib/Lower/Allocatable.cpp
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/ConvertConstant.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/IO.cpp
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Lower/OpenMP/Atomic.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.h
M flang/lib/Lower/OpenMP/Decomposer.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/OpenMP/Utils.cpp
M flang/lib/Lower/OpenMP/Utils.h
M flang/lib/Lower/PFTBuilder.cpp
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp
M flang/lib/Optimizer/Builder/Runtime/EnvironmentDefaults.cpp
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/lib/Optimizer/OpenACC/Analysis/FIROpenACCSupportAnalysis.cpp
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.cpp
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCTypeInterfaces.cpp
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCUtils.cpp
M flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
M flang/lib/Optimizer/Passes/Pipelines.cpp
M flang/lib/Optimizer/Support/InternalNames.cpp
M flang/lib/Optimizer/Transforms/AddAliasTags.cpp
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAllocDelay.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFComputeSharedMemoryOffsetsAndSize.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceGlobal.cpp
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/lib/Optimizer/Transforms/FIRToSCF.cpp
M flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp
M flang/lib/Optimizer/Transforms/SimplifyRegionLite.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/openmp-utils.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/CMakeLists.txt
M flang/lib/Semantics/check-allocate.cpp
M flang/lib/Semantics/check-call.cpp
M flang/lib/Semantics/check-omp-atomic.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
A flang/lib/Semantics/check-omp-syntax.cpp
M flang/lib/Semantics/check-omp-variant.cpp
M flang/lib/Semantics/compute-offsets.cpp
M flang/lib/Semantics/expression.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/openmp-utils.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/lib/Semantics/semantics.cpp
M flang/lib/Support/Fortran-features.cpp
M flang/test/Analysis/AliasAnalysis/alias-analysis-host-assoc.fir
M flang/test/Driver/emit-asm-x86.f90
A flang/test/Driver/fout-of-bounds-subscripts.f90
M flang/test/Driver/fveclib.f90
A flang/test/Driver/mlir-omp-pass-pipeline.f90
M flang/test/Driver/optimization-remark.f90
M flang/test/Fir/CUDA/cuda-code-gen.mlir
M flang/test/Fir/FirToSCF/do-loop.fir
M flang/test/Fir/OpenACC/acc-declare-gpu-module-insertion.fir
M flang/test/Fir/OpenACC/recipe-populate-firstprivate.mlir
M flang/test/Fir/OpenACC/recipe-populate-private.mlir
M flang/test/Fir/omp-declare-target-data.fir
M flang/test/Fir/tbaa-codegen2.fir
M flang/test/Integration/OpenMP/declare-target-deferred-marking-reductions.f90
M flang/test/Integration/OpenMP/declare-target-deferred-marking.f90
M flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90
M flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap.f90
M flang/test/Integration/OpenMP/declare-target-implicit-tarop-cap.f90
M flang/test/Integration/OpenMP/declare-target-named-main-interface.f90
M flang/test/Integration/OpenMP/function-filtering-2.f90
A flang/test/Integration/debug-local-storage.f90
A flang/test/Integration/debug-module-constant-relocation.f90
A flang/test/Integration/debug-module-constant.f90
A flang/test/Integration/debug-module-not-defined.f90
A flang/test/Integration/debug-submodule-procedure.F90
M flang/test/Integration/debug-use-stmt.f90
M flang/test/Integration/function-sections.f90
A flang/test/Lower/CUDA/cuda-gpu-pinned2.f90
M flang/test/Lower/CUDA/cuda-managed-assign.cuf
A flang/test/Lower/Intrinsics/ieee_status.f90
M flang/test/Lower/OpenACC/acc-cache.f90
A flang/test/Lower/OpenACC/acc-declare-allocatable-deallocate.f90
A flang/test/Lower/OpenACC/acc-declare-host-associated-allocatable.f90
M flang/test/Lower/OpenACC/acc-declare-unified.f90
M flang/test/Lower/OpenACC/acc-declare-use-associated-allocatable.f90
M flang/test/Lower/OpenACC/acc-declare.f90
A flang/test/Lower/OpenMP/Todo/metadirective-loop-data-environment.f90
A flang/test/Lower/OpenMP/Todo/metadirective-loop-intervening-statement.f90
A flang/test/Lower/OpenMP/Todo/metadirective-loop-iteration-variable.f90
A flang/test/Lower/OpenMP/Todo/metadirective-loop-unstructured.f90
A flang/test/Lower/OpenMP/Todo/metadirective-loop-unsupported-replacements.f90
R flang/test/Lower/OpenMP/Todo/metadirective-loop.f90
M flang/test/Lower/OpenMP/Todo/requires-unnamed-common.f90
A flang/test/Lower/OpenMP/Todo/workshare-firstprivate-polymorphic.f90
M flang/test/Lower/OpenMP/common-block-map.f90
R flang/test/Lower/OpenMP/cptr-usm-close-and-use-device-ptr.f90
M flang/test/Lower/OpenMP/declare-target-data.f90
M flang/test/Lower/OpenMP/declare-target-func-and-subr.f90
M flang/test/Lower/OpenMP/declare-target-multiple-entry.f90
M flang/test/Lower/OpenMP/declare-target-unnamed-main.f90
A flang/test/Lower/OpenMP/declare_target_module.f90
R flang/test/Lower/OpenMP/default-mapper-iso-c-nested.f90
M flang/test/Lower/OpenMP/force-usm.f90
M flang/test/Lower/OpenMP/has_device_addr-mapinfo.f90
M flang/test/Lower/OpenMP/interop.f90
M flang/test/Lower/OpenMP/metadirective-implementation.f90
A flang/test/Lower/OpenMP/metadirective-loop-openmp-60.f90
A flang/test/Lower/OpenMP/metadirective-loop.f90
M flang/test/Lower/OpenMP/omp-declare-target-program-var.f90
A flang/test/Lower/OpenMP/omp-lib-header-integer-wrappers.f90
R flang/test/Lower/OpenMP/omp-lib-integer-wrappers.f90
M flang/test/Lower/OpenMP/omp-lib-num-threads.f90
M flang/test/Lower/OpenMP/requires-common.f90
M flang/test/Lower/OpenMP/requires-force-usm.f90
M flang/test/Lower/OpenMP/requires-usm.f90
M flang/test/Lower/OpenMP/requires.f90
A flang/test/Lower/OpenMP/target-update-derived-type-usm.f90
A flang/test/Lower/OpenMP/target-update-derived-type.f90
M flang/test/Lower/OpenMP/target.f90
A flang/test/Lower/OpenMP/workshare-firstprivate.f90
A flang/test/Lower/common-block-multiple-init.f90
M flang/test/Lower/dense-attributed-array.f90
M flang/test/Lower/location.f90
A flang/test/Lower/module-parameter-linkonce-odr.f90
M flang/test/Parser/OpenMP/dims-modifier.f90
A flang/test/Semantics/CUDA/cuf32.cuf
M flang/test/Semantics/OpenMP/clause-validity01.f90
M flang/test/Semantics/OpenMP/declare-target-modfile.f90
M flang/test/Semantics/OpenMP/default-none.f90
A flang/test/Semantics/OpenMP/default-none02.f90
M flang/test/Semantics/OpenMP/depobj-construct-v52.f90
M flang/test/Semantics/OpenMP/doacross.f90
M flang/test/Semantics/OpenMP/linear-clause02.f90
M flang/test/Semantics/OpenMP/task-depend.f90
M flang/test/Semantics/bug171844.f90
A flang/test/Semantics/bug82684.f90
A flang/test/Semantics/call49.f90
A flang/test/Semantics/common-block-multiple-init-bindc.f90
A flang/test/Semantics/common-block-multiple-init-flags.f90
A flang/test/Semantics/common-block-multiple-init.f90
A flang/test/Semantics/common-block-size.f90
M flang/test/Semantics/expr-errors06.f90
A flang/test/Semantics/oversized-storage-sequence.f90
A flang/test/Semantics/simple-intrinsics.f90
A flang/test/Semantics/symbol34.f90
M flang/test/Transforms/CUF/cuf-alloc-delay.fir
A flang/test/Transforms/FIRToMemRef/index-overflow-flags.mlir
M flang/test/Transforms/FIRToMemRef/slice.mlir
A flang/test/Transforms/FIRToMemRef/view-op-wraps-array-coor.mlir
A flang/test/Transforms/OpenACC/acc-implicit-declare-module-parameter.fir
M flang/test/Transforms/OpenACC/offload-target-verifier.fir
M flang/test/Transforms/OpenMP/lower-workdistribute-fission-target.mlir
A flang/test/Transforms/debug-local-constant.fir
M flang/test/Transforms/debug-local-global-storage-1.fir
M flang/test/Transforms/debug-module-1.fir
A flang/test/Transforms/debug-module-constant-declaration.fir
A flang/test/Transforms/debug-module-constant.fir
M flang/test/Transforms/debug-module-line.fir
A flang/test/Transforms/debug-module-submodule-procedure.fir
M flang/test/Transforms/omp-automap-to-target-data.fir
M flang/test/Transforms/omp-function-filtering-todo.mlir
M flang/test/Transforms/omp-map-info-finalization-usm.fir
M flang/test/Transforms/simplifyintrinsics.fir
M flang/test/Transforms/tbaa.fir
M flang/tools/bbc/bbc.cpp
M flang/unittests/Frontend/CodeGenActionTest.cpp
M flang/unittests/Frontend/CompilerInstanceTest.cpp
M flang/unittests/Frontend/FrontendActionTest.cpp
M flang/unittests/Optimizer/Builder/FIRBuilderTest.cpp
M flang/unittests/Optimizer/InternalNamesTest.cpp
M flang/unittests/Semantics/OpenMPUtils.cpp
M libc/CMakeLists.txt
M libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
A libc/cmake/modules/cpu_features/check_MVE.cpp
A libc/cmake/modules/cpu_features/check_MVE_FP.cpp
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/i386/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/linux/x86_64/headers.txt
M libc/config/windows/entrypoints.txt
A libc/docs/dev/code_coverage.md
M libc/docs/dev/index.md
M libc/docs/gpu/using.rst
M libc/hdr/types/char8_t.h
M libc/include/CMakeLists.txt
M libc/include/fcntl.yaml
M libc/include/limits.yaml
M libc/include/llvm-libc-macros/limits-macros.h
M libc/include/llvm-libc-macros/linux/fcntl-macros.h
M libc/include/llvm-libc-types/CMakeLists.txt
M libc/include/llvm-libc-types/char8_t.h
A libc/include/llvm-libc-types/struct_user_regs_struct.h
A libc/include/llvm-libc-types/x86_64/CMakeLists.txt
A libc/include/llvm-libc-types/x86_64/struct_user_regs_struct.h
M libc/include/netdb.yaml
M libc/include/pwd.yaml
M libc/include/stdlib.yaml
A libc/include/sys/user.yaml
M libc/include/unistd.yaml
M libc/shared/math/copysignf128.h
M libc/shared/math/fabsf128.h
M libc/shared/math/fdimf128.h
M libc/shared/math/fmaximum_mag_numf128.h
M libc/shared/math/fmaximum_magf128.h
M libc/shared/math/fmaximum_numf128.h
M libc/shared/math/fmaximumf128.h
M libc/shared/math/fminimum_mag_numf128.h
M libc/shared/math/fminimum_magf128.h
M libc/shared/math/fminimum_numf128.h
M libc/shared/math/fminimumf128.h
M libc/src/__support/CPP/span.h
M libc/src/__support/FPUtil/dyadic_float.h
M libc/src/__support/File/file.h
M libc/src/__support/File/linux/file.cpp
M libc/src/__support/GPU/allocator.cpp
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/chroot.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/getegid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/getpgid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/getpid.h
M libc/src/__support/OSUtil/linux/syscall_wrappers/getpriority.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/posix_fadvise.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setgid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setpgid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setregid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setreuid.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/setuid.h
M libc/src/__support/macros/properties/cpu_features.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/copysignf128.h
M libc/src/__support/math/fabsf128.h
M libc/src/__support/math/fdimf128.h
M libc/src/__support/math/fmaximum_mag_numf128.h
M libc/src/__support/math/fmaximum_magf128.h
M libc/src/__support/math/fmaximum_numf128.h
M libc/src/__support/math/fmaximumf128.h
M libc/src/__support/math/fminimum_mag_numf128.h
M libc/src/__support/math/fminimum_magf128.h
M libc/src/__support/math/fminimum_numf128.h
M libc/src/__support/math/fminimumf128.h
M libc/src/__support/math/round.h
M libc/src/__support/math/roundf.h
M libc/src/__support/net/CMakeLists.txt
M libc/src/__support/net/address.cpp
M libc/src/__support/net/address.h
M libc/src/__support/threads/CMakeLists.txt
M libc/src/__support/threads/linux/CMakeLists.txt
A libc/src/__support/threads/linux/aarch64/tcb.h
A libc/src/__support/threads/linux/riscv/tcb.h
A libc/src/__support/threads/linux/tcb.h
A libc/src/__support/threads/linux/x86_64/tcb.h
A libc/src/__support/threads/tcb.h
M libc/src/arpa/inet/CMakeLists.txt
M libc/src/arpa/inet/inet_addr.cpp
M libc/src/arpa/inet/inet_aton.cpp
M libc/src/fcntl/CMakeLists.txt
M libc/src/fcntl/linux/CMakeLists.txt
A libc/src/fcntl/linux/posix_fadvise.cpp
A libc/src/fcntl/posix_fadvise.h
M libc/src/math/copysignf128.h
M libc/src/math/fabsf128.h
M libc/src/math/fdimf128.h
M libc/src/math/fmaximum_mag_numf128.h
M libc/src/math/fmaximum_magf128.h
M libc/src/math/fmaximum_numf128.h
M libc/src/math/fmaximumf128.h
M libc/src/math/fminimum_mag_numf128.h
M libc/src/math/fminimum_magf128.h
M libc/src/math/fminimum_numf128.h
M libc/src/math/fminimumf128.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/copysignf128.cpp
M libc/src/math/generic/fabsf128.cpp
M libc/src/math/generic/fdimf128.cpp
M libc/src/math/generic/fmaximum_mag_numf128.cpp
M libc/src/math/generic/fmaximum_magf128.cpp
M libc/src/math/generic/fmaximum_numf128.cpp
M libc/src/math/generic/fmaximumf128.cpp
M libc/src/math/generic/fminimum_mag_numf128.cpp
M libc/src/math/generic/fminimum_magf128.cpp
M libc/src/math/generic/fminimum_numf128.cpp
M libc/src/math/generic/fminimumf128.cpp
M libc/src/netdb/CMakeLists.txt
A libc/src/netdb/gai_strerror.cpp
A libc/src/netdb/gai_strerror.h
M libc/src/pwd/CMakeLists.txt
M libc/src/pwd/endpwent.cpp
A libc/src/pwd/field_tokenizer.h
A libc/src/pwd/flat_file_db.h
M libc/src/pwd/getpwent.cpp
A libc/src/pwd/getpwnam.cpp
A libc/src/pwd/getpwnam.h
A libc/src/pwd/getpwnam_r.cpp
A libc/src/pwd/getpwnam_r.h
A libc/src/pwd/getpwuid.cpp
A libc/src/pwd/getpwuid.h
A libc/src/pwd/getpwuid_r.cpp
A libc/src/pwd/getpwuid_r.h
M libc/src/pwd/pwd_utils.cpp
M libc/src/pwd/pwd_utils.h
M libc/src/pwd/setpwent.cpp
M libc/src/stdio/generic/fgets.cpp
M libc/src/stdio/generic/perror.cpp
M libc/src/stdio/generic/puts.cpp
M libc/src/stdlib/CMakeLists.txt
A libc/src/stdlib/getloadavg.h
M libc/src/stdlib/linux/CMakeLists.txt
A libc/src/stdlib/linux/getloadavg.cpp
M libc/src/unistd/CMakeLists.txt
A libc/src/unistd/chroot.h
A libc/src/unistd/getegid.h
A libc/src/unistd/getpgid.h
A libc/src/unistd/getpgrp.h
M libc/src/unistd/linux/CMakeLists.txt
A libc/src/unistd/linux/chroot.cpp
A libc/src/unistd/linux/getegid.cpp
A libc/src/unistd/linux/getpgid.cpp
A libc/src/unistd/linux/getpgrp.cpp
M libc/src/unistd/linux/getpid.cpp
A libc/src/unistd/linux/nice.cpp
A libc/src/unistd/linux/setgid.cpp
A libc/src/unistd/linux/setpgid.cpp
A libc/src/unistd/linux/setregid.cpp
A libc/src/unistd/linux/setreuid.cpp
A libc/src/unistd/linux/setuid.cpp
A libc/src/unistd/linux/tcgetpgrp.cpp
A libc/src/unistd/linux/tcsetpgrp.cpp
A libc/src/unistd/nice.h
A libc/src/unistd/setgid.h
A libc/src/unistd/setpgid.h
A libc/src/unistd/setregid.h
A libc/src/unistd/setreuid.h
A libc/src/unistd/setuid.h
A libc/src/unistd/tcgetpgrp.h
A libc/src/unistd/tcsetpgrp.h
M libc/src/wchar/fgetws.cpp
M libc/startup/linux/aarch64/CMakeLists.txt
M libc/startup/linux/aarch64/tls.cpp
M libc/startup/linux/riscv/CMakeLists.txt
M libc/startup/linux/riscv/tls.cpp
M libc/startup/linux/x86_64/CMakeLists.txt
M libc/startup/linux/x86_64/tls.cpp
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/__support/CPP/span_test.cpp
M libc/test/src/__support/FPUtil/dyadic_float_test.cpp
M libc/test/src/__support/File/file_test.cpp
M libc/test/src/arpa/inet/inet_addr_test.cpp
M libc/test/src/fcntl/CMakeLists.txt
A libc/test/src/fcntl/posix_fadvise_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/FMaximumMagNumTest.h
M libc/test/src/math/smoke/FMaximumMagTest.h
M libc/test/src/math/smoke/FMaximumNumTest.h
M libc/test/src/math/smoke/FMaximumTest.h
M libc/test/src/math/smoke/FMinimumMagNumTest.h
M libc/test/src/math/smoke/FMinimumMagTest.h
M libc/test/src/math/smoke/FMinimumNumTest.h
M libc/test/src/math/smoke/FMinimumTest.h
M libc/test/src/math/smoke/RoundTest.h
M libc/test/src/math/smoke/copysignf128_test.cpp
M libc/test/src/math/smoke/fabsf128_test.cpp
M libc/test/src/math/smoke/fdimf128_test.cpp
M libc/test/src/math/smoke/fmaximum_mag_numf128_test.cpp
M libc/test/src/math/smoke/fmaximum_magf128_test.cpp
M libc/test/src/math/smoke/fmaximum_numf128_test.cpp
M libc/test/src/math/smoke/fmaximumf128_test.cpp
M libc/test/src/math/smoke/fminimum_mag_numf128_test.cpp
M libc/test/src/math/smoke/fminimum_magf128_test.cpp
M libc/test/src/math/smoke/fminimum_numf128_test.cpp
M libc/test/src/math/smoke/fminimumf128_test.cpp
M libc/test/src/netdb/CMakeLists.txt
A libc/test/src/netdb/gai_strerror_test.cpp
M libc/test/src/pwd/CMakeLists.txt
A libc/test/src/pwd/field_tokenizer_test.cpp
A libc/test/src/pwd/flat_file_db_test.cpp
M libc/test/src/pwd/getpwent_test.cpp
A libc/test/src/pwd/getpwnam_r_test.cpp
A libc/test/src/pwd/getpwnam_test.cpp
A libc/test/src/pwd/getpwuid_r_test.cpp
A libc/test/src/pwd/getpwuid_test.cpp
A libc/test/src/pwd/pwd_test_utils.h
M libc/test/src/pwd/pwd_utils_test.cpp
M libc/test/src/stdio/fputc_test.cpp
M libc/test/src/stdlib/CMakeLists.txt
A libc/test/src/stdlib/getloadavg_test.cpp
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/chroot_test.cpp
A libc/test/src/unistd/getegid_test.cpp
A libc/test/src/unistd/getpgid_test.cpp
A libc/test/src/unistd/getpgrp_test.cpp
A libc/test/src/unistd/nice_test.cpp
A libc/test/src/unistd/setgid_test.cpp
A libc/test/src/unistd/setpgid_test.cpp
A libc/test/src/unistd/setregid_test.cpp
A libc/test/src/unistd/setreuid_test.cpp
A libc/test/src/unistd/setuid_test.cpp
A libc/test/src/unistd/tcgetpgrp_test.cpp
A libc/test/src/unistd/tcsetpgrp_test.cpp
A libc/utils/cmake_format.py
A libc/utils/cmake_format_test.py
M libc/utils/docgen/unistd.yaml
M libclc/clc/lib/generic/math/clc_remquo_stret.inc
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/24.rst
M libcxx/docs/Status/Cxx26Issues.csv
M libcxx/docs/Status/Cxx29Papers.csv
M libcxx/include/CMakeLists.txt
M libcxx/include/__algorithm/pstl.h
M libcxx/include/__chrono/formatter.h
M libcxx/include/__chrono/parser_std_format_spec.h
M libcxx/include/__chrono/statically_widen.h
M libcxx/include/__concepts/common_with.h
M libcxx/include/__config
M libcxx/include/__cxx03/__config
M libcxx/include/__format/buffer.h
R libcxx/include/__format/concepts.h
M libcxx/include/__format/container_adaptor.h
A libcxx/include/__format/fmt_char_type.h
M libcxx/include/__format/format_arg.h
M libcxx/include/__format/format_arg_store.h
A libcxx/include/__format/formattable.h
M libcxx/include/__format/formatter_bool.h
M libcxx/include/__format/formatter_bool_impl.h
M libcxx/include/__format/formatter_char.h
M libcxx/include/__format/formatter_floating_point.h
M libcxx/include/__format/formatter_integer.h
M libcxx/include/__format/formatter_integral.h
M libcxx/include/__format/formatter_output.h
M libcxx/include/__format/formatter_pointer.h
M libcxx/include/__format/formatter_string.h
M libcxx/include/__format/formatter_tuple.h
M libcxx/include/__format/range_default_formatter.h
M libcxx/include/__format/range_formatter.h
M libcxx/include/__memory/assume_aligned.h
M libcxx/include/__memory/uninitialized_algorithms.h
M libcxx/include/__memory_resource/memory_resource.h
M libcxx/include/__new/new_handler.h
M libcxx/include/__optional/comparison.h
M libcxx/include/__pstl/backend_fwd.h
M libcxx/include/__pstl/backends/default.h
M libcxx/include/__pstl/backends/libdispatch.h
M libcxx/include/__pstl/backends/serial.h
M libcxx/include/__pstl/backends/std_thread.h
A libcxx/include/__pstl/cpu_algos/find_end.h
A libcxx/include/__pstl/cpu_algos/is_heap_until.h
A libcxx/include/__pstl/cpu_algos/min_element.h
M libcxx/include/__ranges/view_interface.h
M libcxx/include/__thread/formatter.h
M libcxx/include/__vector/vector.h
M libcxx/include/condition_variable
M libcxx/include/format
M libcxx/include/memory
M libcxx/include/module.modulemap.in
M libcxx/include/version
M libcxx/src/filesystem/operations.cpp
M libcxx/src/memory_resource.cpp
M libcxx/test/libcxx/algorithms/pstl.iterator-requirements.verify.cpp
M libcxx/test/libcxx/algorithms/pstl.nodiscard.verify.cpp
M libcxx/test/libcxx/language.support/nodiscard.verify.cpp
A libcxx/test/libcxx/localization/locales/locale/locale.types/locale.id/id.abi.compile.pass.cpp
A libcxx/test/libcxx/mem/mem.res/assert.pass.cpp
R libcxx/test/libcxx/mem/mem.res/ctor.nullptr.assert.pass.cpp
R libcxx/test/libcxx/memory/uninitialized_allocator_copy.pass.cpp
A libcxx/test/libcxx/memory/uninitialized_allocator_copy_n.pass.cpp
M libcxx/test/libcxx/ranges/range.utility/view.interface/nodiscard.verify.cpp
A libcxx/test/libcxx/thread/thread.mutex/thread.once/once_flag.abi.compile.pass.cpp
M libcxx/test/libcxx/transitive_includes/cxx20.csv
M libcxx/test/libcxx/transitive_includes/cxx23.csv
M libcxx/test/libcxx/transitive_includes/cxx26.csv
M libcxx/test/libcxx/transitive_includes/cxx29.csv
A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/pstl.find_end.pass.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/pstl.find_end_pred.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/is.heap/pstl.is_heap_until.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/is.heap/pstl.is_heap_until_comp.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.max_element.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.max_element_comp.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.min_element.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.min_element_comp.pass.cpp
M libcxx/test/std/algorithms/pstl.exception_handling.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp
M libcxx/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp
A libcxx/test/std/utilities/utility/mem.res/mem.res.global/new_delete_resource.align.pass.cpp
M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_overaligned_request.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
A libsycl/include/sycl/__impl/detail/kernel_submission.hpp
M libsycl/include/sycl/__impl/detail/unified_range_view.hpp
A libsycl/include/sycl/__impl/handler.hpp
M libsycl/include/sycl/__impl/info/desc_base.hpp
M libsycl/include/sycl/__impl/property_list.hpp
M libsycl/include/sycl/__impl/queue.hpp
M libsycl/src/CMakeLists.txt
A libsycl/src/detail/handler_impl.hpp
M libsycl/src/detail/offload/offload_topology.cpp
M libsycl/src/detail/offload/offload_topology.hpp
M libsycl/src/detail/offload/offload_utils.cpp
M libsycl/src/detail/offload/offload_utils.hpp
M libsycl/src/detail/platform_impl.cpp
M libsycl/src/detail/platform_impl.hpp
M libsycl/src/detail/queue_impl.cpp
M libsycl/src/detail/queue_impl.hpp
A libsycl/src/handler.cpp
M libsycl/src/queue.cpp
A libsycl/test/basic/handler/handler_depends_on.cpp
A libsycl/test/basic/handler/handler_parallel_for_arg_restrictions.cpp
A libsycl/test/basic/handler/handler_parallel_for_generic_lambda.cpp
A libsycl/test/basic/handler/handler_parallel_for_nd_range_invalid_arg_type.cpp
A libsycl/test/basic/handler/handler_parallel_for_runtime.cpp
A libsycl/test/basic/handler/handler_unnamed_lambda_functor.cpp
A libsycl/test/basic/handler/submit_fn_ptr_handler.cpp
A libsycl/test/basic/no_rdc_multi_tu.cpp
M libsycl/unittests/CMakeLists.txt
M libsycl/unittests/common/unittests_helper.hpp
M libsycl/unittests/device_selector/get_device_preference.cpp
M libsycl/unittests/event/event.cpp
A libsycl/unittests/handler/CMakeLists.txt
A libsycl/unittests/handler/memcpy.cpp
A libsycl/unittests/handler/semantics.cpp
A libsycl/unittests/handler/test_helpers.hpp
M libsycl/unittests/mock/helpers.cpp
M libsycl/unittests/platform/get_platforms.cpp
M libsycl/unittests/queue/sycl_kernel_launch.cpp
M libunwind/src/DwarfInstructions.hpp
A libunwind/test/dwarf_expression_stack.pass.cpp
M lld/COFF/LTO.cpp
M lld/ELF/LTO.cpp
M lld/ELF/LinkerScript.cpp
M lld/MachO/SyntheticSections.cpp
M lld/MachO/SyntheticSections.h
M lld/MachO/Writer.cpp
M lld/docs/ReleaseNotes.md
M lld/test/COFF/arm64ec-export-thunks.test
M lld/test/COFF/arm64ec-import.test
M lld/test/COFF/baserel.test
M lld/test/COFF/code-merge.s
M lld/test/COFF/common-replacement.s
M lld/test/COFF/merge-data-bss.test
M lld/test/COFF/nodbgdirmerge.test
M lld/test/COFF/secrel-common.s
M lld/test/ELF/keep-data-section-prefix.s
M lld/test/ELF/lit.local.cfg
M lld/test/ELF/lto/obj-path.ll
M lld/test/MachO/U-dynamic-lookup.s
M lld/test/MachO/icf-safe-thunks.ll
A lld/test/MachO/objc-stubs-order-file-icf-safe-thunks.s
A lld/test/MachO/objc-stubs-order-file.s
M lldb/bindings/python/python-typemaps.swig
M lldb/docs/dil-expr-lang.ebnf
M lldb/docs/resources/lldbgdbremote.md
M lldb/include/lldb/API/SBAddress.h
M lldb/include/lldb/API/SBDefines.h
M lldb/include/lldb/API/SBProcess.h
M lldb/include/lldb/Host/common/NativeProcessProtocol.h
M lldb/include/lldb/Symbol/ObjectFile.h
M lldb/include/lldb/Symbol/Symbol.h
M lldb/include/lldb/Symbol/SymbolFile.h
M lldb/include/lldb/Symbol/SymbolFileOnDemand.h
M lldb/include/lldb/Symbol/Variable.h
M lldb/include/lldb/Target/Process.h
M lldb/include/lldb/Utility/AcceleratorGDBRemotePackets.h
M lldb/include/lldb/Utility/RegisterType.h
M lldb/include/lldb/Utility/StringExtractorGDBRemote.h
M lldb/include/lldb/ValueObject/DILAST.h
M lldb/include/lldb/ValueObject/DILEval.h
M lldb/include/lldb/ValueObject/DILLexer.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/packages/Python/lldbsuite/test/lldbinline.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
M lldb/source/API/CMakeLists.txt
M lldb/source/API/SBAddress.cpp
M lldb/source/API/SBProcess.cpp
M lldb/source/Breakpoint/BreakpointResolverName.cpp
M lldb/source/Core/Address.cpp
M lldb/source/Core/DumpRegisterInfo.cpp
M lldb/source/Core/DynamicLoader.cpp
M lldb/source/Expression/DWARFExpression.cpp
M lldb/source/Expression/ExpressionVariable.cpp
M lldb/source/Expression/IRExecutionUnit.cpp
M lldb/source/Host/windows/PythonRuntimeLoaderWindows.cpp
M lldb/source/Plugins/DynamicLoader/FreeBSD-Kernel/DynamicLoaderFreeBSDKernel.cpp
M lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
M lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlDeque.cpp
M lldb/source/Plugins/Language/ObjC/CF.cpp
M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
M lldb/source/Plugins/Language/ObjC/NSError.cpp
M lldb/source/Plugins/Language/ObjC/NSException.cpp
M lldb/source/Plugins/Language/ObjC/NSSet.cpp
M lldb/source/Plugins/Language/ObjC/NSString.cpp
M lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.h
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h
M lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.h
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasmProperties.td
M lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
M lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp
M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
M lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
M lldb/source/Plugins/Process/gdb-remote/LLDBServerAcceleratorPlugin.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/wasm/ProcessWasm.cpp
M lldb/source/Plugins/Process/wasm/ProcessWasm.h
M lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
M lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
M lldb/source/Symbol/Symbol.cpp
M lldb/source/Symbol/Variable.cpp
M lldb/source/Target/Process.cpp
M lldb/source/Target/RegisterContextUnwind.cpp
M lldb/source/Utility/AcceleratorGDBRemotePackets.cpp
M lldb/source/Utility/RegisterType.cpp
M lldb/source/Utility/StringExtractorGDBRemote.cpp
M lldb/source/ValueObject/DILAST.cpp
M lldb/source/ValueObject/DILEval.cpp
M lldb/source/ValueObject/DILLexer.cpp
M lldb/source/ValueObject/DILParser.cpp
M lldb/source/ValueObject/ValueObjectVTable.cpp
M lldb/test/API/accelerator/mock/TestMockAcceleratorPackets.py
A lldb/test/API/commands/frame/var-dil/basics/PersistentResultVariableLookup/Makefile
A lldb/test/API/commands/frame/var-dil/basics/PersistentResultVariableLookup/TestFrameVarDILPersistentResultVariableLookup.py
A lldb/test/API/commands/frame/var-dil/basics/PersistentResultVariableLookup/main.cpp
M lldb/test/API/commands/frame/var-dil/expr/Assignment/TestFrameVarDILCompositeAssign.py
M lldb/test/API/commands/frame/var-dil/expr/Assignment/main.cpp
A lldb/test/API/commands/watchpoints/watchpoint_set_errors/Makefile
A lldb/test/API/commands/watchpoints/watchpoint_set_errors/TestWatchpointSetErrors.py
A lldb/test/API/commands/watchpoints/watchpoint_set_errors/main.c
M lldb/test/API/functionalities/breakpoint/breakpoint_on_lambda_capture/TestBreakOnLambdaCapture.py
M lldb/test/API/functionalities/breakpoint/hardware_breakpoints/write_memory_with_hw_breakpoint/TestWriteMemoryWithHWBreakpoint.py
M lldb/test/API/functionalities/breakpoint/two_hits_one_actual/TestTwoHitsOneActual.py
M lldb/test/API/functionalities/breakpoint/write_over_software_breakpoint/TestWriteOverSoftwareBreakpoint.py
A lldb/test/API/functionalities/gdb_remote_client/TestAddressSpaceMemoryRead.py
A lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterVector.py
A lldb/test/API/lang/cpp/dynamic-value-complex-typename/Makefile
A lldb/test/API/lang/cpp/dynamic-value-complex-typename/TestDynamicValueComplexTypename.py
A lldb/test/API/lang/cpp/dynamic-value-complex-typename/main.cpp
A lldb/test/API/lang/cpp/dynamic-value-virtual-inheritance/Makefile
A lldb/test/API/lang/cpp/dynamic-value-virtual-inheritance/TestDynamicValueVirtualInheritance.py
A lldb/test/API/lang/cpp/dynamic-value-virtual-inheritance/main.cpp
M lldb/test/API/lit.cfg.py
M lldb/test/API/lldbtest.py
M lldb/test/API/macosx/load-kext/TestLoadKext.py
M lldb/test/API/symstore/TestSymStore.py
A lldb/test/API/tools/lldb-server/TestGdbRemoteAddressSpaces.py
M lldb/test/Shell/SymbolFile/NativePDB/globals-bss.cpp
R lldb/test/Shell/Watchpoint/Inputs/main.cpp
R lldb/test/Shell/Watchpoint/SetErrorCases.test
M lldb/test/Shell/helper/toolchain.py
M lldb/test/Shell/lit.cfg.py
A lldb/test/lldbflakes.py
M lldb/tools/debugserver/source/RNBRemote.cpp
M lldb/tools/lldb-fuzzer/lldb-target-fuzzer/CMakeLists.txt
A lldb/tools/lldb-fuzzer/lldb-target-fuzzer/target.dict
M lldb/tools/lldb-server/Plugins/Accelerator/Mock/LLDBServerMockAcceleratorPlugin.cpp
M lldb/tools/lldb-server/Plugins/Accelerator/Mock/LLDBServerMockAcceleratorPlugin.h
M lldb/unittests/Core/DumpRegisterInfoTest.cpp
M lldb/unittests/Core/MangledTest.cpp
M lldb/unittests/Expression/DWARFExpressionTest.cpp
M lldb/unittests/Host/ProcessRunLockTest.cpp
M lldb/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
M lldb/unittests/Platform/CMakeLists.txt
A lldb/unittests/Platform/PlatformWasmTest.cpp
M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
M lldb/unittests/Target/CMakeLists.txt
M lldb/unittests/Target/MemoryTest.cpp
A lldb/unittests/Target/ReExportedSymbolTest.cpp
M lldb/unittests/Target/RegisterTypeBuilderClangTest.cpp
M lldb/unittests/Utility/AcceleratorGDBRemotePacketsTest.cpp
M lldb/unittests/Utility/PolicyTest.cpp
M lldb/unittests/Utility/RegisterTypeTest.cpp
M llvm/cmake/modules/CrossCompile.cmake
M llvm/cmake/modules/HandleLLVMOptions.cmake
M llvm/docs/AMDGPUUsage.rst
M llvm/docs/CodeReview.rst
M llvm/docs/CommandGuide/llc.md
A llvm/docs/CommandGuide/llvm-libtool-darwin.md
R llvm/docs/CommandGuide/llvm-libtool-darwin.rst
A llvm/docs/CommandGuide/llvm-link.md
R llvm/docs/CommandGuide/llvm-link.rst
A llvm/docs/CommandGuide/llvm-lipo.md
R llvm/docs/CommandGuide/llvm-lipo.rst
A llvm/docs/CommandGuide/llvm-locstats.md
R llvm/docs/CommandGuide/llvm-locstats.rst
A llvm/docs/CommandGuide/llvm-mc.md
R llvm/docs/CommandGuide/llvm-mc.rst
A llvm/docs/CommandGuide/llvm-mca.md
R llvm/docs/CommandGuide/llvm-mca.rst
A llvm/docs/CommandGuide/llvm-nm.md
R llvm/docs/CommandGuide/llvm-nm.rst
A llvm/docs/CommandGuide/llvm-objcopy.md
R llvm/docs/CommandGuide/llvm-objcopy.rst
A llvm/docs/CommandGuide/llvm-objdump.md
R llvm/docs/CommandGuide/llvm-objdump.rst
A llvm/docs/CommandGuide/llvm-offload-binary.md
R llvm/docs/CommandGuide/llvm-offload-binary.rst
A llvm/docs/CommandGuide/llvm-opt-report.md
R llvm/docs/CommandGuide/llvm-opt-report.rst
A llvm/docs/CommandGuide/llvm-otool.md
R llvm/docs/CommandGuide/llvm-otool.rst
A llvm/docs/CommandGuide/llvm-pdbutil.md
R llvm/docs/CommandGuide/llvm-pdbutil.rst
A llvm/docs/CommandGuide/llvm-profdata.md
R llvm/docs/CommandGuide/llvm-profdata.rst
A llvm/docs/CommandGuide/llvm-profgen.md
R llvm/docs/CommandGuide/llvm-profgen.rst
A llvm/docs/CommandGuide/llvm-ranlib.md
R llvm/docs/CommandGuide/llvm-ranlib.rst
A llvm/docs/CommandGuide/llvm-readelf.md
R llvm/docs/CommandGuide/llvm-readelf.rst
A llvm/docs/CommandGuide/llvm-readobj.md
R llvm/docs/CommandGuide/llvm-readobj.rst
A llvm/docs/CommandGuide/llvm-reduce.md
R llvm/docs/CommandGuide/llvm-reduce.rst
A llvm/docs/CommandGuide/llvm-remarkutil.md
R llvm/docs/CommandGuide/llvm-remarkutil.rst
A llvm/docs/CommandGuide/llvm-size.md
R llvm/docs/CommandGuide/llvm-size.rst
A llvm/docs/CommandGuide/llvm-stress.md
R llvm/docs/CommandGuide/llvm-stress.rst
A llvm/docs/CommandGuide/llvm-strings.md
R llvm/docs/CommandGuide/llvm-strings.rst
A llvm/docs/CommandGuide/llvm-strip.md
R llvm/docs/CommandGuide/llvm-strip.rst
A llvm/docs/CommandGuide/llvm-symbolizer.md
R llvm/docs/CommandGuide/llvm-symbolizer.rst
A llvm/docs/CommandGuide/llvm-tblgen.md
R llvm/docs/CommandGuide/llvm-tblgen.rst
A llvm/docs/CommandGuide/llvm-test-mustache-spec.md
R llvm/docs/CommandGuide/llvm-test-mustache-spec.rst
A llvm/docs/CommandGuide/llvm-tli-checker.md
R llvm/docs/CommandGuide/llvm-tli-checker.rst
A llvm/docs/CommandGuide/mlir-tblgen.md
R llvm/docs/CommandGuide/mlir-tblgen.rst
A llvm/docs/CommandGuide/opt.md
R llvm/docs/CommandGuide/opt.rst
A llvm/docs/CommandGuide/tblgen.md
R llvm/docs/CommandGuide/tblgen.rst
M llvm/docs/DebuggingLLVM.md
M llvm/docs/LangRef.md
M llvm/docs/MemProf.md
M llvm/docs/NVPTXUsage.md
M llvm/docs/ProgrammersManual.md
M llvm/docs/RISCVUsage.md
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/ABI/TargetInfo.h
M llvm/include/llvm/ABI/Types.h
M llvm/include/llvm/ADT/DenseMap.h
M llvm/include/llvm/ADT/FoldingSet.h
M llvm/include/llvm/ADT/GenericCycleInfo.h
M llvm/include/llvm/ADT/Hashing.h
M llvm/include/llvm/ADT/STLFunctionalExtras.h
M llvm/include/llvm/ADT/SetOperations.h
M llvm/include/llvm/ADT/SmallPtrSet.h
M llvm/include/llvm/ADT/SmallVector.h
M llvm/include/llvm/ADT/StringMap.h
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/include/llvm/Analysis/AliasSetTracker.h
M llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
M llvm/include/llvm/Analysis/InstructionSimplify.h
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/include/llvm/Analysis/MustExecute.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/include/llvm/Bitcode/LLVMBitCodes.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/CallingConvLower.h
M llvm/include/llvm/CodeGen/CommandFlags.h
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
R llvm/include/llvm/CodeGen/MachORelocation.h
M llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
M llvm/include/llvm/CodeGen/MachineFrameInfo.h
M llvm/include/llvm/CodeGen/MachineFunction.h
M llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h
M llvm/include/llvm/CodeGen/MachineOutliner.h
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/CodeGenTypes/LowLevelType.h
M llvm/include/llvm/CodeGenTypes/MachineValueType.h
R llvm/include/llvm/DebugInfo/CodeView/FunctionId.h
R llvm/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h
A llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.h
M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
M llvm/include/llvm/Frontend/OpenMP/OMP.h
M llvm/include/llvm/Frontend/OpenMP/OMPDescriptors.h
M llvm/include/llvm/Frontend/OpenMP/OMPDescriptors.h.inc
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
A llvm/include/llvm/Frontend/OpenMP/OMPVersion.h
M llvm/include/llvm/IR/Attributes.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/FMF.h
M llvm/include/llvm/IR/Function.h
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/IRPrintingPasses.h
M llvm/include/llvm/IR/Instruction.h
M llvm/include/llvm/IR/Instructions.h
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/include/llvm/IR/IntrinsicsNVVM.td
M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
M llvm/include/llvm/IR/Metadata.h
M llvm/include/llvm/IR/Module.h
M llvm/include/llvm/IR/ModuleSlotTracker.h
M llvm/include/llvm/IR/NVVMIntrinsicUtils.h
M llvm/include/llvm/IR/PrintPasses.h
M llvm/include/llvm/IR/RuntimeLibcalls.td
M llvm/include/llvm/IRPrinter/IRPrintingPasses.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/MC/MCTargetOptions.h
M llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
M llvm/include/llvm/Option/OptTable.h
M llvm/include/llvm/Option/Option.h
A llvm/include/llvm/Passes/RunCodeGen.h
M llvm/include/llvm/Passes/StandardInstrumentations.h
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/include/llvm/SandboxIR/Context.h
M llvm/include/llvm/Support/Caching.h
M llvm/include/llvm/Support/GenericLoopInfo.h
M llvm/include/llvm/Support/GenericLoopInfoImpl.h
M llvm/include/llvm/Support/KnownFPClass.h
M llvm/include/llvm/Support/LSP/Transport.h
M llvm/include/llvm/TableGen/Record.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/include/llvm/Target/TargetMachine.h
M llvm/include/llvm/Target/TargetOptions.h
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/include/llvm/Transforms/IPO/LowerTypeTests.h
M llvm/include/llvm/Transforms/Utils/LoopVersioning.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
R llvm/include/llvm/WindowsResource/ResourceProcessor.h
R llvm/include/llvm/WindowsResource/ResourceScriptToken.h
M llvm/lib/ABI/Targets/X86.cpp
M llvm/lib/ABI/Types.cpp
M llvm/lib/Analysis/AliasSetTracker.cpp
M llvm/lib/Analysis/CallGraphSCCPass.cpp
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/GlobalsModRef.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/LoopPass.cpp
M llvm/lib/Analysis/MustExecute.cpp
M llvm/lib/Analysis/RegionPass.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
M llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
M llvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp
M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
M llvm/lib/CodeGen/BranchFolding.cpp
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp
M llvm/lib/CodeGen/CommandFlags.cpp
M llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MIRPrintingPass.cpp
M llvm/lib/CodeGen/MachineBasicBlock.cpp
M llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
M llvm/lib/CodeGen/MachineFrameInfo.cpp
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/CodeGen/MachineFunctionPass.cpp
M llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
M llvm/lib/CodeGen/MachineInstr.cpp
M llvm/lib/CodeGen/MachineModuleSlotTracker.cpp
M llvm/lib/CodeGen/MachineOperand.cpp
M llvm/lib/CodeGen/MachineOutliner.cpp
M llvm/lib/CodeGen/MachinePipeliner.cpp
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/lib/CodeGen/RegAllocFast.cpp
M llvm/lib/CodeGen/RegAllocPBQP.cpp
M llvm/lib/CodeGen/RegisterCoalescer.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/TailDuplicator.cpp
M llvm/lib/CodeGen/TargetOptionsImpl.cpp
M llvm/lib/CodeGen/TypePromotion.cpp
M llvm/lib/CodeGenTypes/CMakeLists.txt
M llvm/lib/CodeGenTypes/LowLevelType.cpp
A llvm/lib/CodeGenTypes/MachineValueType.cpp
M llvm/lib/DTLTO/DTLTO.cpp
M llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp
R llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.h
M llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.cpp
M llvm/lib/Frontend/OpenMP/DirectiveNameParser.cpp
M llvm/lib/Frontend/OpenMP/OMP.cpp
M llvm/lib/Frontend/OpenMP/OMPDescriptors.cpp
M llvm/lib/Frontend/OpenMP/OMPDescriptors.inc
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/AttributeImpl.h
M llvm/lib/IR/Attributes.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/DebugLoc.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/IRPrintingPasses.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Intrinsics.cpp
M llvm/lib/IR/LLVMContextImpl.cpp
M llvm/lib/IR/LLVMContextImpl.h
M llvm/lib/IR/LegacyPassManager.cpp
M llvm/lib/IR/Metadata.cpp
M llvm/lib/IR/MetadataImpl.h
M llvm/lib/IR/NVVMIntrinsicUtils.cpp
M llvm/lib/IR/Operator.cpp
M llvm/lib/IR/Pass.cpp
M llvm/lib/IR/PrintPasses.cpp
M llvm/lib/IR/SSAContext.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/IRPrinter/IRPrintingPasses.cpp
M llvm/lib/LTO/LTOCodeGenerator.cpp
M llvm/lib/MC/MCAsmInfo.cpp
M llvm/lib/MC/MCTargetOptions.cpp
M llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
M llvm/lib/MC/WasmObjectWriter.cpp
M llvm/lib/Option/OptTable.cpp
M llvm/lib/Option/Option.cpp
M llvm/lib/Passes/CMakeLists.txt
M llvm/lib/Passes/PassBuilderPipelines.cpp
A llvm/lib/Passes/RunCodeGen.cpp
M llvm/lib/Passes/StandardInstrumentations.cpp
M llvm/lib/SandboxIR/Context.cpp
M llvm/lib/Support/Caching.cpp
M llvm/lib/Support/FoldingSet.cpp
M llvm/lib/Support/KnownFPClass.cpp
M llvm/lib/Support/SmallPtrSet.cpp
M llvm/lib/Support/VirtualFileSystem.cpp
M llvm/lib/Support/VirtualOutputBackends.cpp
M llvm/lib/TableGen/Record.cpp
M llvm/lib/TableGen/StringToOffsetTable.cpp
M llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
M llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AArch64/AArch64SchedC1Premium.td
M llvm/lib/Target/AArch64/AArch64SchedC1Ultra.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3AE.td
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecInfo.h
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCombine.td
M llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.h
M llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHWEvents.def
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerKernelAttributes.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
M llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPURewriteAGPRCopyMFMA.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/BUFInstructions.td
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/R600Subtarget.h
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.h
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.td
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/ARC/ARCFrameLowering.cpp
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
M llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
M llvm/lib/Target/ARM/ARMFrameLowering.cpp
M llvm/lib/Target/ARM/ARMInstrInfo.td
M llvm/lib/Target/ARM/ARMInstrNEON.td
M llvm/lib/Target/ARM/ARMInstrVFP.td
M llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
M llvm/lib/Target/ARM/ARMPredicates.td
M llvm/lib/Target/ARM/ARMSubtarget.cpp
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp
M llvm/lib/Target/CSKY/CSKYFrameLowering.cpp
M llvm/lib/Target/DirectX/DXILLegalizePass.cpp
M llvm/lib/Target/DirectX/DXILPrettyPrinter.cpp
M llvm/lib/Target/DirectX/DXILResourceAccess.cpp
M llvm/lib/Target/DirectX/DXILWriter/CMakeLists.txt
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.h
A llvm/lib/Target/DirectX/DXILWriter/DXILDebugInfoMap.cpp
A llvm/lib/Target/DirectX/DXILWriter/DXILDebugInfoMap.h
M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
M llvm/lib/Target/DirectX/DirectX.h
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.h
M llvm/lib/Target/DirectX/DirectXPassRegistry.def
M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
R llvm/lib/Target/Hexagon/HexagonDepMask.h
M llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchFloatInstrFormats.td
M llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchMergeBaseOffset.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.h
M llvm/lib/Target/M68k/M68kFrameLowering.cpp
M llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
M llvm/lib/Target/Mips/Mips.td
M llvm/lib/Target/Mips/MipsFrameLowering.cpp
M llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp
M llvm/lib/Target/Mips/MipsISelDAGToDAG.h
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/Mips/MipsInstrInfo.cpp
M llvm/lib/Target/Mips/MipsInstrInfo.td
M llvm/lib/Target/Mips/MipsMSAInstrInfo.td
M llvm/lib/Target/Mips/MipsRegisterInfo.cpp
M llvm/lib/Target/Mips/MipsSEISelLowering.cpp
M llvm/lib/Target/Mips/MipsSubtarget.h
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h
M llvm/lib/Target/NVPTX/NVPTX.h
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
M llvm/lib/Target/PowerPC/PPC.h
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.td
M llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXwch.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZvdot4a8i.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZvzip.td
M llvm/lib/Target/RISCV/RISCVMachineFunctionInfo.cpp
M llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
M llvm/lib/Target/RISCV/RISCVProcessors.td
M llvm/lib/Target/RISCV/RISCVSchedule.td
M llvm/lib/Target/RISCV/RISCVSystemOperands.td
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
M llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp
R llvm/lib/Target/SPIRV/SPIRVCBufferAccess.h
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
M llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
M llvm/lib/Target/Sparc/DelaySlotFiller.cpp
M llvm/lib/Target/Sparc/SparcFrameLowering.cpp
M llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
M llvm/lib/Target/Sparc/SparcInstrInfo.cpp
M llvm/lib/Target/Sparc/SparcInstrInfo.h
M llvm/lib/Target/SystemZ/SystemZCallingConv.td
M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
M llvm/lib/Target/TargetMachine.cpp
M llvm/lib/Target/VE/VEFrameLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td
M llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
M llvm/lib/Target/X86/X86CallFrameOptimization.cpp
M llvm/lib/Target/X86/X86FixupLEAs.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/lib/Target/X86/X86InstrCompiler.td
M llvm/lib/Target/X86/X86InstrFragments.td
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/lib/Target/X86/X86RegisterInfo.cpp
M llvm/lib/Target/XCore/XCoreFrameLowering.cpp
M llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp
M llvm/lib/Target/Xtensa/CMakeLists.txt
M llvm/lib/Target/Xtensa/XtensaFrameLowering.cpp
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/lib/Transforms/IPO/CMakeLists.txt
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
M llvm/lib/Transforms/IPO/MergeFunctions.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/lib/Transforms/IPO/SCCP.cpp
M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/lib/Transforms/Scalar/LoopFlatten.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
M llvm/lib/Transforms/Scalar/Reassociate.cpp
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/lib/Transforms/Scalar/Scalarizer.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
M llvm/lib/Transforms/Utils/FunctionComparator.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/lib/Transforms/Utils/LoopSimplify.cpp
M llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/lib/Transforms/Utils/LoopVersioning.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/lib/Transforms/Vectorize/CMakeLists.txt
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.h
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.h
A llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.cpp
A llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.h
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BundleVec.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp
M llvm/lib/Transforms/Vectorize/VPlanHelpers.h
M llvm/lib/Transforms/Vectorize/VPlanLowering.cpp
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/lib/XRay/InstrumentationMap.cpp
M llvm/runtimes/CMakeLists.txt
A llvm/test/Analysis/CostModel/AMDGPU/bitcast-mask.ll
M llvm/test/Analysis/CostModel/AMDGPU/fused_costs.ll
A llvm/test/Analysis/CostModel/AMDGPU/reduce-add-i1.ll
M llvm/test/Analysis/CostModel/AMDGPU/reduce-and.ll
M llvm/test/Analysis/CostModel/AMDGPU/reduce-or.ll
A llvm/test/Analysis/CostModel/AMDGPU/reduce-xor.ll
A llvm/test/Analysis/GlobalsModRef/optnone-scc.ll
M llvm/test/Analysis/LoopAccessAnalysis/all-ones-null-pointer.ll
M llvm/test/Analysis/LoopAccessAnalysis/evaluate-at-symbolic-max-backedge-taken-count-may-wrap.ll
M llvm/test/Analysis/LoopAccessAnalysis/negative-step-deref-off-by-eltsize.ll
M llvm/test/Analysis/LoopAccessAnalysis/non-affine-monotonic-bounds.ll
M llvm/test/Analysis/LoopAccessAnalysis/retry-runtime-checks-after-dependence-analysis-forked-pointers.ll
M llvm/test/Analysis/LoopAccessAnalysis/symbolic-stride.ll
M llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll
M llvm/test/Analysis/ScalarEvolution/exhaustive-trip-counts.ll
A llvm/test/Analysis/ScalarEvolution/exit-value-nowrap-flags.ll
M llvm/test/Analysis/ScalarEvolution/flags-from-poison-noautogen.ll
M llvm/test/Analysis/ScalarEvolution/flags-from-poison.ll
M llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
M llvm/test/Analysis/ScalarEvolution/infer-prestart-no-wrap.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-operand-order.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
M llvm/test/Analysis/ScalarEvolution/nsw-offset-assume.ll
M llvm/test/Analysis/ScalarEvolution/nsw-offset.ll
M llvm/test/Analysis/ScalarEvolution/nsw.ll
M llvm/test/Analysis/ScalarEvolution/ptrtoint-special-pointers.ll
M llvm/test/Analysis/ScalarEvolution/ptrtoint.ll
M llvm/test/Analysis/ScalarEvolution/ranges.ll
M llvm/test/Analysis/ScalarEvolution/sdiv.ll
M llvm/test/Analysis/ScalarEvolution/sext-add-inreg-loop.ll
M llvm/test/Analysis/ScalarEvolution/srem.ll
M llvm/test/Analysis/ScalarEvolution/trip-count-scalable-stride.ll
M llvm/test/Analysis/ScalarEvolution/trip-count15.ll
M llvm/test/Assembler/auto_upgrade_nvvm_intrinsics.ll
M llvm/test/Assembler/flags.ll
A llvm/test/Assembler/intrinsic-token-overload-invalid.ll
A llvm/test/Assembler/nvvm-bf16-valid-autoupgrade.ll
M llvm/test/Bindings/OCaml/debuginfo.ml
M llvm/test/Bindings/llvm-c/echo.ll
M llvm/test/Bitcode/attributes.ll
M llvm/test/Bitcode/compatibility.ll
M llvm/test/Bitcode/flags.ll
A llvm/test/Bitcode/nvvm-bf16-invalid-autoupgrade.ll
M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lsfe.ll
M llvm/test/CodeGen/AArch64/Atomics/aarch64_be-atomicrmw-lsfe.ll
A llvm/test/CodeGen/AArch64/Atomics/atomicrmw-fsub-lsfe-combine.ll
M llvm/test/CodeGen/AArch64/Atomics/generate-tests.py
M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-fmuladd.ll
M llvm/test/CodeGen/AArch64/GlobalISel/knownbits-buildvector.mir
M llvm/test/CodeGen/AArch64/GlobalISel/knownbits-extract-vector.mir
M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-divrem-insertpt-crash.mir
M llvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir
M llvm/test/CodeGen/AArch64/GlobalISel/select-bitcast.mir
M llvm/test/CodeGen/AArch64/PBQP-chain.ll
M llvm/test/CodeGen/AArch64/PBQP-coalesce-benefit.ll
M llvm/test/CodeGen/AArch64/PBQP-csr.ll
M llvm/test/CodeGen/AArch64/arithmetic_fence.ll
M llvm/test/CodeGen/AArch64/arm64-2013-01-13-ffast-fcmp.ll
M llvm/test/CodeGen/AArch64/arm64-extract-insert-varidx.ll
M llvm/test/CodeGen/AArch64/arm64-fma-combine-with-fpfusion.ll
M llvm/test/CodeGen/AArch64/arm64-fml-combines.ll
M llvm/test/CodeGen/AArch64/arm64-neon-2velem-high.ll
M llvm/test/CodeGen/AArch64/arm64-neon-2velem.ll
M llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll
M llvm/test/CodeGen/AArch64/arm64-neon-scalar-by-elem-mul.ll
M llvm/test/CodeGen/AArch64/arm64-neon-select_cc.ll
M llvm/test/CodeGen/AArch64/arm64-neon-vector-list-spill.ll
M llvm/test/CodeGen/AArch64/arm64-trn.ll
M llvm/test/CodeGen/AArch64/arm64-uzp.ll
M llvm/test/CodeGen/AArch64/arm64-zip.ll
A llvm/test/CodeGen/AArch64/cmpbr-ccmp.ll
A llvm/test/CodeGen/AArch64/cmpbr-ccmp.mir
M llvm/test/CodeGen/AArch64/complex-deinterleaving-fma.ll
A llvm/test/CodeGen/AArch64/default-partial-reduce.ll
M llvm/test/CodeGen/AArch64/fnmul.ll
M llvm/test/CodeGen/AArch64/fp-const-fold.ll
M llvm/test/CodeGen/AArch64/fp-dp3.ll
M llvm/test/CodeGen/AArch64/fp16-fmla.ll
M llvm/test/CodeGen/AArch64/get-active-lane-mask-extract.ll
M llvm/test/CodeGen/AArch64/interleaved-accesses.ll
A llvm/test/CodeGen/AArch64/interleaved-load-combine-many-candidates.ll
M llvm/test/CodeGen/AArch64/intrinsic-vector-match-sve2.ll
M llvm/test/CodeGen/AArch64/isinf.ll
M llvm/test/CodeGen/AArch64/known-never-nan.ll
M llvm/test/CodeGen/AArch64/literal_pools_float_apple.ll
A llvm/test/CodeGen/AArch64/machine-outliner-debug-admission.mir
M llvm/test/CodeGen/AArch64/machine-outliner-macho-compact-unwind-frame.mir
M llvm/test/CodeGen/AArch64/machine-outliner-mapper-stats.mir
M llvm/test/CodeGen/AArch64/machine-outliner-mapping-stats.mir
A llvm/test/CodeGen/AArch64/machine-outliner-range-debug.mir
M llvm/test/CodeGen/AArch64/macro-fusion-cluster-conflict.mir
A llvm/test/CodeGen/AArch64/misched-c1sme.ll
M llvm/test/CodeGen/AArch64/neon-extadd-extract.ll
M llvm/test/CodeGen/AArch64/neon-fma.ll
M llvm/test/CodeGen/AArch64/neon-fpextend_f16.ll
M llvm/test/CodeGen/AArch64/neon-fpround_f128.ll
M llvm/test/CodeGen/AArch64/neon-scalar-by-elem-fma.ll
M llvm/test/CodeGen/AArch64/pr58516.ll
M llvm/test/CodeGen/AArch64/regcoalesce-preserve-valid-lanes-implicit-def.mir
M llvm/test/CodeGen/AArch64/saturating-vec-smull.ll
M llvm/test/CodeGen/AArch64/smul_fix_sat.ll
M llvm/test/CodeGen/AArch64/stack-hazard.ll
M llvm/test/CodeGen/AArch64/sve-extract-fixed-from-scalable-vector.ll
M llvm/test/CodeGen/AArch64/sve-extract-fixed-vector.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-expandloads.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-reshuffle.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-reshuffle.ll
M llvm/test/CodeGen/AArch64/sve-vector-compress.ll
M llvm/test/CodeGen/AArch64/sve-vector-splat.ll
A llvm/test/CodeGen/AArch64/sve-vector-unroll.ll
M llvm/test/CodeGen/AArch64/swifttail-ptrauth.ll
M llvm/test/CodeGen/AArch64/vec-combine-compare-to-bitmask.ll
M llvm/test/CodeGen/AArch64/vector-interleave-store.ll
M llvm/test/CodeGen/AArch64/wineh-bti-funclet.ll
M llvm/test/CodeGen/AArch64/wineh-catchret-label-generation.ll
M llvm/test/CodeGen/AArch64/wineh-try-catch-nobase.ll
M llvm/test/CodeGen/AArch64/wineh-try-catch-realign.ll
M llvm/test/CodeGen/AArch64/wineh-try-catch-vla.ll
M llvm/test/CodeGen/AArch64/wineh-try-catch.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/amdgpu-prelegalizer-combiner-crash.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmin.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-add-nullptr.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fabs-fneg.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-ext-fma.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-fma-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-foldable-fneg.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-redundant-and.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-rot.mir
A llvm/test/CodeGen/AMDGPU/GlobalISel/combine-trunc-lshr16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-zext-trunc.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/fadd.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fcanonicalize.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fma.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmax_legacy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmin_legacy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmul.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp-int-conversions.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fptrunc.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-extendedLLTs-err.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-extendedLLTs.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-smax-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-smin-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-umax-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-umin-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-flog.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-flog10.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fpow.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fpowi.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/merge-values-s16-true16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/minmaxabs-i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-select.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.128.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.96.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/strict_fma.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll
M llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/agpr-csr.ll
A llvm/test/CodeGen/AMDGPU/amdgpu-attributor-asyncmark-leaf.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-no-agprs-violations.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow.ll
M llvm/test/CodeGen/AMDGPU/atomicrmw_usub_sat.ll
M llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll
M llvm/test/CodeGen/AMDGPU/bfm.ll
M llvm/test/CodeGen/AMDGPU/bitreverse.ll
M llvm/test/CodeGen/AMDGPU/blender-no-live-segment-at-def-implicit-def.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/clamp.ll
M llvm/test/CodeGen/AMDGPU/clmul.ll
A llvm/test/CodeGen/AMDGPU/codegen-no-subarch-warn.ll
A llvm/test/CodeGen/AMDGPU/coexec-mfma-interleave-gfx950.ll
A llvm/test/CodeGen/AMDGPU/coexec-mfma-interleave-gfx950.mir
M llvm/test/CodeGen/AMDGPU/coexec-rewrite-mfma.ll
A llvm/test/CodeGen/AMDGPU/coexec-sched-agpr-excess.mir
A llvm/test/CodeGen/AMDGPU/copy_phys_vgpr.mir
R llvm/test/CodeGen/AMDGPU/copy_phys_vgpr64.mir
M llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll
M llvm/test/CodeGen/AMDGPU/debug-value2.ll
M llvm/test/CodeGen/AMDGPU/div_i128.ll
M llvm/test/CodeGen/AMDGPU/dpp64_combine.ll
M llvm/test/CodeGen/AMDGPU/dpp_combine.ll
A llvm/test/CodeGen/AMDGPU/eliminate-frame-index-carry-out.ll
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-s-add-i32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32-wave32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-u32.mir
M llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll
M llvm/test/CodeGen/AMDGPU/fdot2.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-store.ll
M llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp-e5m3fnu.ll
M llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp-fp8-hw.ll
M llvm/test/CodeGen/AMDGPU/fmax_legacy.ll
M llvm/test/CodeGen/AMDGPU/fmaxnum.ll
M llvm/test/CodeGen/AMDGPU/fmaxnum.r600.ll
M llvm/test/CodeGen/AMDGPU/fmed3.ll
M llvm/test/CodeGen/AMDGPU/fmin_legacy.ll
M llvm/test/CodeGen/AMDGPU/fminnum.ll
M llvm/test/CodeGen/AMDGPU/fminnum.r600.ll
M llvm/test/CodeGen/AMDGPU/fmuladd.f16.ll
M llvm/test/CodeGen/AMDGPU/fmuladd.f32.ll
M llvm/test/CodeGen/AMDGPU/fmuladd.f64.ll
M llvm/test/CodeGen/AMDGPU/fmuladd.v2f16.ll
M llvm/test/CodeGen/AMDGPU/fneg-combines.f16.ll
M llvm/test/CodeGen/AMDGPU/fneg-combines.ll
M llvm/test/CodeGen/AMDGPU/fneg-combines.new.ll
M llvm/test/CodeGen/AMDGPU/fp-classify.ll
M llvm/test/CodeGen/AMDGPU/fract-match.ll
M llvm/test/CodeGen/AMDGPU/frame-index-elimination.ll
M llvm/test/CodeGen/AMDGPU/frexp-constant-fold.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.f32.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.r600.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd-wrong-subtarget.ll
M llvm/test/CodeGen/AMDGPU/global-load-xcnt.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fadd.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fsub.ll
M llvm/test/CodeGen/AMDGPU/insert-waitcnts-gfx12-wbinv.mir
M llvm/test/CodeGen/AMDGPU/insert_waitcnt_for_precise_memory.ll
M llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
M llvm/test/CodeGen/AMDGPU/issue92561-restore-undef-scc-verifier-error.ll
M llvm/test/CodeGen/AMDGPU/jump-address.ll
M llvm/test/CodeGen/AMDGPU/known-never-nan.ll
A llvm/test/CodeGen/AMDGPU/lds-dma-war-async.ll
A llvm/test/CodeGen/AMDGPU/lds-dma-war.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.store.b128.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f16.fp8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scale.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.iglp.opt.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.dim.gfx90a.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.ll
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.signal.isfirst.invalid_barrier.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.monitor.sleep.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.group.barrier.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp2.bf16.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-flat.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-global.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-local.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i32.ll
M llvm/test/CodeGen/AMDGPU/load-saddr-offset-imm.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/lower-intrinsics-cluster-barrier.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-attr.mir
M llvm/test/CodeGen/AMDGPU/mad_64_32.ll
M llvm/test/CodeGen/AMDGPU/madak.ll
M llvm/test/CodeGen/AMDGPU/max.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-store-infinite-loop.ll
M llvm/test/CodeGen/AMDGPU/mfma-cd-select.ll
M llvm/test/CodeGen/AMDGPU/mfma-no-register-aliasing.ll
M llvm/test/CodeGen/AMDGPU/min.ll
M llvm/test/CodeGen/AMDGPU/modf-constant-fold.ll
M llvm/test/CodeGen/AMDGPU/mul.ll
M llvm/test/CodeGen/AMDGPU/nested-loop-conditions.ll
M llvm/test/CodeGen/AMDGPU/pack-half-to-lshl-or.ll
M llvm/test/CodeGen/AMDGPU/prevent-fmul-hoist-ir.ll
A llvm/test/CodeGen/AMDGPU/promote-alloca-byte-ptr-cast.ll
A llvm/test/CodeGen/AMDGPU/promote-alloca-mixed-width-access.ll
M llvm/test/CodeGen/AMDGPU/pv.ll
M llvm/test/CodeGen/AMDGPU/reassoc-mul-add-1-to-mad.ll
M llvm/test/CodeGen/AMDGPU/regalloc-spill-wmma-scale.ll
M llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll
M llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr.ll
M llvm/test/CodeGen/AMDGPU/sad.ll
M llvm/test/CodeGen/AMDGPU/scalar-float-sop1.ll
M llvm/test/CodeGen/AMDGPU/schedule-if-2.ll
M llvm/test/CodeGen/AMDGPU/sdwa-ops.mir
M llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel-dst.mir
M llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel-src.mir
M llvm/test/CodeGen/AMDGPU/select-cmp-shared-constant-fp.ll
M llvm/test/CodeGen/AMDGPU/select-flags-to-fmin-fmax.ll
M llvm/test/CodeGen/AMDGPU/select-undef.ll
M llvm/test/CodeGen/AMDGPU/si-spill-cf.ll
M llvm/test/CodeGen/AMDGPU/sink-fmul-fadd.ll
M llvm/test/CodeGen/AMDGPU/spill-agpr.ll
M llvm/test/CodeGen/AMDGPU/uaddsat.ll
M llvm/test/CodeGen/AMDGPU/undefined-subreg-liverange.ll
M llvm/test/CodeGen/AMDGPU/unstructured-cfg-def-use-issue.ll
M llvm/test/CodeGen/AMDGPU/vector-legalizer-divergence.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fadd.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fmul.ll
A llvm/test/CodeGen/AMDGPU/waitcnt-buffer-inv.mir
A llvm/test/CodeGen/AMDGPU/waitcnt-loop-carried-fence-drain-gfx12.mir
A llvm/test/CodeGen/AMDGPU/waitcnt-loop-carried-fence-drain.mir
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/ARM/2012-04-24-SplitEHCriticalEdge.ll
M llvm/test/CodeGen/ARM/build-attributes.ll
M llvm/test/CodeGen/ARM/cortex-a57-misched-vfma.ll
A llvm/test/CodeGen/ARM/eabi-attribute-no-trapping-math.ll
M llvm/test/CodeGen/ARM/eabihf-no-fpregs.ll
M llvm/test/CodeGen/ARM/fminmax-folds.ll
M llvm/test/CodeGen/ARM/fp16-fusedMAC.ll
M llvm/test/CodeGen/ARM/fp16-instructions.ll
M llvm/test/CodeGen/ARM/fusedMAC.ll
A llvm/test/CodeGen/AVR/stack-protector.ll
A llvm/test/CodeGen/DirectX/Bitcode/atomicrmw.ll
M llvm/test/CodeGen/DirectX/ContainerData/RootSignature-StaticSamplers-Invalid-MaxLod.ll
M llvm/test/CodeGen/DirectX/ContainerData/RootSignature-StaticSamplers-Invalid-MinLod.ll
M llvm/test/CodeGen/DirectX/DebugInfo/dbg-assign.ll
M llvm/test/CodeGen/DirectX/DebugInfo/dbg-declare-undef.ll
M llvm/test/CodeGen/DirectX/DebugInfo/dbg-value-arglist.ll
M llvm/test/CodeGen/DirectX/DebugInfo/dbg-value.ll
M llvm/test/CodeGen/DirectX/DebugInfo/debug-info.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-commonblock.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-compile-unit-versioned-language.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-compile-unit.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-globalvariable.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-label.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-subprogram.ll
M llvm/test/CodeGen/DirectX/DebugInfo/di-subrangetype.ll
M llvm/test/CodeGen/DirectX/countbits.ll
R llvm/test/CodeGen/DirectX/legalize-i64-high-low-vec-split.ll
M llvm/test/CodeGen/DirectX/llc-pipeline.ll
R llvm/test/CodeGen/Generic/bswap.ll
M llvm/test/CodeGen/Hexagon/float-amode.ll
M llvm/test/CodeGen/Hexagon/fmadd.ll
M llvm/test/CodeGen/Hexagon/fp_latency.ll
M llvm/test/CodeGen/Hexagon/pull-no-comp-code.ll
M llvm/test/CodeGen/Hexagon/sffms.ll
M llvm/test/CodeGen/Hexagon/swp-epilog-reuse.ll
M llvm/test/CodeGen/Hexagon/swp-epilog-reuse2.ll
M llvm/test/CodeGen/Hexagon/swp-loop-carried.ll
M llvm/test/CodeGen/Hexagon/swp-max-stage3.ll
M llvm/test/CodeGen/Hexagon/swp-memrefs-epilog.ll
M llvm/test/CodeGen/Hexagon/swp-no-alias.mir
M llvm/test/CodeGen/Hexagon/swp-rename-dead-phi.ll
M llvm/test/CodeGen/Hexagon/swp-reuse-phi.ll
M llvm/test/CodeGen/LoongArch/double-fma.ll
M llvm/test/CodeGen/LoongArch/float-fma.ll
M llvm/test/CodeGen/LoongArch/lasx/fma-v4f64.ll
M llvm/test/CodeGen/LoongArch/lasx/fma-v8f32.ll
M llvm/test/CodeGen/LoongArch/lsx/fma-v2f64.ll
M llvm/test/CodeGen/LoongArch/lsx/fma-v4f32.ll
A llvm/test/CodeGen/LoongArch/merge-base-offset-debug-only.mir
A llvm/test/CodeGen/LoongArch/merge-base-offset-debug-use.ll
M llvm/test/CodeGen/MIR/AMDGPU/instr-mmra.mir
A llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-user-sgpr-count.mir
M llvm/test/CodeGen/MIR/AMDGPU/machine-metadata.mir
M llvm/test/CodeGen/MIR/X86/instr-heap-alloc-operands.mir
M llvm/test/CodeGen/MIR/X86/instr-pcsections.mir
M llvm/test/CodeGen/MIR/X86/instructions-debug-location.mir
M llvm/test/CodeGen/MIR/X86/machine-metadata.mir
M llvm/test/CodeGen/MIR/X86/mem-cache-hint.mir
M llvm/test/CodeGen/MIR/X86/memory-operands.mir
M llvm/test/CodeGen/MIR/X86/metadata-operands.mir
M llvm/test/CodeGen/MIR/X86/pr38773.mir
M llvm/test/CodeGen/MIR/X86/stack-object-debug-info.mir
M llvm/test/CodeGen/Mips/cmov.ll
M llvm/test/CodeGen/Mips/cttz-v.ll
M llvm/test/CodeGen/Mips/fp-contract.ll
A llvm/test/CodeGen/Mips/get-register-reserve.ll
M llvm/test/CodeGen/Mips/llvm-ir/select-globaladdr.ll
M llvm/test/CodeGen/Mips/named-register-n32.ll
M llvm/test/CodeGen/Mips/named-register-n64.ll
M llvm/test/CodeGen/Mips/named-register-o32.ll
A llvm/test/CodeGen/Mips/reserved-gpr.ll
M llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll
A llvm/test/CodeGen/NVPTX/bf16-add.ll
A llvm/test/CodeGen/NVPTX/bf16-sub.ll
M llvm/test/CodeGen/NVPTX/cache-hint-atomics.ll
M llvm/test/CodeGen/NVPTX/cache-hint-intrinsics.ll
M llvm/test/CodeGen/NVPTX/cache-hint-invalid.ll
M llvm/test/CodeGen/NVPTX/cache-hint-sm-version.ll
A llvm/test/CodeGen/NVPTX/convert-fp16-pzo.ll
A llvm/test/CodeGen/NVPTX/convert-fp16-rs-pzo.ll
R llvm/test/CodeGen/NVPTX/f16-add-sat.ll
A llvm/test/CodeGen/NVPTX/f16-add.ll
R llvm/test/CodeGen/NVPTX/f16-sub-sat.ll
A llvm/test/CodeGen/NVPTX/f16-sub.ll
M llvm/test/CodeGen/NVPTX/fma-assoc.ll
M llvm/test/CodeGen/NVPTX/fma-relu-contract.ll
M llvm/test/CodeGen/NVPTX/fma.ll
A llvm/test/CodeGen/NVPTX/fp-add-f32x2.ll
A llvm/test/CodeGen/NVPTX/fp-add-invalid.ll
M llvm/test/CodeGen/NVPTX/fp-arith-sat.ll
M llvm/test/CodeGen/NVPTX/fp-contract-f32x2.ll
M llvm/test/CodeGen/NVPTX/fp-contract.ll
A llvm/test/CodeGen/NVPTX/fp-fold-sub-f32x2.ll
M llvm/test/CodeGen/NVPTX/fp-fold-sub.ll
M llvm/test/CodeGen/NVPTX/fp-literals.ll
M llvm/test/CodeGen/NVPTX/mixed-precision-fp.ll
M llvm/test/CodeGen/NVPTX/reg-copy.ll
M llvm/test/CodeGen/NVPTX/scalarize-non-coalescable-v2f32.ll
A llvm/test/CodeGen/NVPTX/volatile-local.ll
M llvm/test/CodeGen/PowerPC/a2-fp-basic.ll
M llvm/test/CodeGen/PowerPC/cttz.ll
M llvm/test/CodeGen/PowerPC/fma-assoc.ll
M llvm/test/CodeGen/PowerPC/fma-ext.ll
M llvm/test/CodeGen/PowerPC/fma-mutate-duplicate-vreg.ll
M llvm/test/CodeGen/PowerPC/fma.ll
M llvm/test/CodeGen/PowerPC/fp-classify.ll
M llvm/test/CodeGen/PowerPC/p10-splatImm.ll
A llvm/test/CodeGen/PowerPC/ppc32-f128-abi.ll
M llvm/test/CodeGen/PowerPC/ppc440-fp-basic.ll
M llvm/test/CodeGen/PowerPC/vsx-fma-mutate-trivial-copy.ll
A llvm/test/CodeGen/RISCV/GlobalISel/clmul-rv32.ll
A llvm/test/CodeGen/RISCV/GlobalISel/clmul-rv64.ll
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
A llvm/test/CodeGen/RISCV/convert-from-arbitrary-fp.ll
M llvm/test/CodeGen/RISCV/ctlz-cttz-ctpop.ll
M llvm/test/CodeGen/RISCV/double-zfa.ll
M llvm/test/CodeGen/RISCV/features-info.ll
M llvm/test/CodeGen/RISCV/float-zfa.ll
A llvm/test/CodeGen/RISCV/interrupt-shrink-wrap.ll
A llvm/test/CodeGen/RISCV/machine-outliner-debug-codegen.mir
A llvm/test/CodeGen/RISCV/machine-outliner-mapper-debug-state.mir
M llvm/test/CodeGen/RISCV/memcpy.ll
A llvm/test/CodeGen/RISCV/merge-base-offset-debug-only.mir
A llvm/test/CodeGen/RISCV/merge-base-offset-debug-use.ll
M llvm/test/CodeGen/RISCV/rv32xtheadbb.ll
M llvm/test/CodeGen/RISCV/rv64xtheadbb.ll
A llvm/test/CodeGen/RISCV/rvv/convert-from-arbitrary-fp.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vector-convert-from-arbitrary-fp.ll
M llvm/test/CodeGen/RISCV/rvv/vabd.ll
M llvm/test/CodeGen/RISCV/rvv/vl-opt-op-info.mir
M llvm/test/CodeGen/RISCV/rvv/vmerge-peephole.mir
M llvm/test/CodeGen/RISCV/rvv/vpaire.ll
M llvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/zvdot4a8i-sdnode.ll
M llvm/test/CodeGen/RISCV/zero-call-used-regs.ll
M llvm/test/CodeGen/SPARC/bswap.ll
M llvm/test/CodeGen/SPARC/cttz.ll
M llvm/test/CodeGen/SPARC/float-ua2007.ll
M llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-namespace-scope.ll
M llvm/test/CodeGen/SPIRV/debug-info/no-misplaced-opextinst.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/max_mat.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/min_mat.ll
M llvm/test/CodeGen/SPIRV/literals.ll
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/ctpop-vk.ll
M llvm/test/CodeGen/SPIRV/validate/triton-tut-softmax-kernel.ll
M llvm/test/CodeGen/SystemZ/scalar-cttz-01.ll
A llvm/test/CodeGen/SystemZ/soft-float-05.ll
M llvm/test/CodeGen/SystemZ/tdc-03.ll
M llvm/test/CodeGen/SystemZ/tdc-05.ll
M llvm/test/CodeGen/SystemZ/tdc-06.ll
M llvm/test/CodeGen/SystemZ/tdc-08.ll
M llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
A llvm/test/CodeGen/SystemZ/zos-xplink64-bare-i32-arg.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-liveout-unknown-lanes.ll
M llvm/test/CodeGen/Thumb2/mve-fmas.ll
M llvm/test/CodeGen/VE/Scalar/fsqrt.ll
A llvm/test/CodeGen/WebAssembly/bulk-memory-intrinsics.ll
A llvm/test/CodeGen/WebAssembly/bulk-memory-intrinsics64.ll
M llvm/test/CodeGen/WebAssembly/export-name.ll
M llvm/test/CodeGen/WebAssembly/immediates.ll
A llvm/test/CodeGen/WebAssembly/import-error.ll
M llvm/test/CodeGen/WebAssembly/import-module.ll
M llvm/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll
M llvm/test/CodeGen/X86/aext-and-trunc-avx512.ll
M llvm/test/CodeGen/X86/andnot-patterns.ll
M llvm/test/CodeGen/X86/arg-copy-elide.ll
M llvm/test/CodeGen/X86/avx2-vbroadcast.ll
M llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
M llvm/test/CodeGen/X86/avx512-calling-conv.ll
A llvm/test/CodeGen/X86/avx512-icmp-sle-zero.ll
M llvm/test/CodeGen/X86/avx512-insert-extract.ll
M llvm/test/CodeGen/X86/avx512-insert-extract_i1.ll
M llvm/test/CodeGen/X86/avx512-intel-ocl.ll
M llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
M llvm/test/CodeGen/X86/avx512-masked-op-fusion.ll
M llvm/test/CodeGen/X86/avx512-regcall-Mask.ll
M llvm/test/CodeGen/X86/avx512-shuffles/shuffle-chained-bf16.ll
M llvm/test/CodeGen/X86/avx512fp16-mov.ll
M llvm/test/CodeGen/X86/bmi.ll
A llvm/test/CodeGen/X86/callframe-opt-undef-push.mir
M llvm/test/CodeGen/X86/clmul-vector-256.ll
M llvm/test/CodeGen/X86/clmul-vector-512.ll
M llvm/test/CodeGen/X86/clmul-vector.ll
M llvm/test/CodeGen/X86/cmp-select-sign.ll
M llvm/test/CodeGen/X86/cmp.ll
A llvm/test/CodeGen/X86/coalesce-commute-partial-def-implicit-read.mir
M llvm/test/CodeGen/X86/coff-fp-section-name.ll
M llvm/test/CodeGen/X86/combine-icmp.ll
M llvm/test/CodeGen/X86/compare-inf.ll
M llvm/test/CodeGen/X86/constpool.ll
M llvm/test/CodeGen/X86/divrem-by-select.ll
M llvm/test/CodeGen/X86/extract-vselect-setcc.ll
M llvm/test/CodeGen/X86/fmaxnum.ll
M llvm/test/CodeGen/X86/fminimum-fmaximum.ll
M llvm/test/CodeGen/X86/fminimumnum-fmaximumnum.ll
M llvm/test/CodeGen/X86/fminnum.ll
A llvm/test/CodeGen/X86/fold-setallones-512.ll
M llvm/test/CodeGen/X86/fp-undef.ll
M llvm/test/CodeGen/X86/fp128-cast.ll
M llvm/test/CodeGen/X86/fp128-libcalls-strict.ll
M llvm/test/CodeGen/X86/frem.ll
M llvm/test/CodeGen/X86/gfni-rotates.ll
M llvm/test/CodeGen/X86/i386-baseptr.ll
A llvm/test/CodeGen/X86/lea-fixup-disp128.mir
M llvm/test/CodeGen/X86/masked-sdiv.ll
M llvm/test/CodeGen/X86/masked-srem.ll
M llvm/test/CodeGen/X86/masked-udiv.ll
M llvm/test/CodeGen/X86/masked-urem.ll
M llvm/test/CodeGen/X86/min-legal-vector-width.ll
M llvm/test/CodeGen/X86/nontemporal-loads-2.ll
M llvm/test/CodeGen/X86/optimize-compare.mir
M llvm/test/CodeGen/X86/pdep-vector-128.ll
M llvm/test/CodeGen/X86/pdep-vector-256.ll
M llvm/test/CodeGen/X86/pdep-vector-512.ll
A llvm/test/CodeGen/X86/peephole-test-after-shl.ll
M llvm/test/CodeGen/X86/pext-vector-128.ll
M llvm/test/CodeGen/X86/pext-vector-256.ll
M llvm/test/CodeGen/X86/pext-vector-512.ll
M llvm/test/CodeGen/X86/pmulh.ll
M llvm/test/CodeGen/X86/pr108731.ll
A llvm/test/CodeGen/X86/pr214750.ll
A llvm/test/CodeGen/X86/pr216504.ll
M llvm/test/CodeGen/X86/pr45443.ll
M llvm/test/CodeGen/X86/pr48727.ll
M llvm/test/CodeGen/X86/pr50374.ll
A llvm/test/CodeGen/X86/pseudo-probe-tail-merging.mir
M llvm/test/CodeGen/X86/sdiv_fix_sat.ll
M llvm/test/CodeGen/X86/setcc.ll
M llvm/test/CodeGen/X86/shift-i128.ll
M llvm/test/CodeGen/X86/smulo-128-legalisation-lowering.ll
A llvm/test/CodeGen/X86/source-loc-print-filter.ll
A llvm/test/CodeGen/X86/stack-adjust-128.ll
M llvm/test/CodeGen/X86/var-permute-512.ll
M llvm/test/CodeGen/X86/vec-strict-inttofp-512.ll
M llvm/test/CodeGen/X86/vector-compress.ll
M llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics-flags.ll
M llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
M llvm/test/CodeGen/X86/vector-extract-last-active.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-128.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
A llvm/test/CodeGen/X86/vector-idiv-i64.ll
M llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
M llvm/test/CodeGen/X86/vector-idiv-strictfp.ll
M llvm/test/CodeGen/X86/vector-idiv-udiv-512.ll
M llvm/test/CodeGen/X86/vector-pcmp.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining-sse41.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining.ll
M llvm/test/CodeGen/X86/vector-trunc-nowrap.ll
M llvm/test/CodeGen/X86/vector-trunc.ll
M llvm/test/CodeGen/X86/vector-tzcnt-128.ll
M llvm/test/CodeGen/X86/vector-tzcnt-256.ll
M llvm/test/CodeGen/X86/vector-tzcnt-512.ll
M llvm/test/CodeGen/X86/wide-scalar-shift-by-byte-multiple-legalization.ll
M llvm/test/CodeGen/X86/widen-load-of-small-alloca-with-zero-upper-half.ll
M llvm/test/CodeGen/X86/widen_bitcnt.ll
M llvm/test/CodeGen/X86/x86-64-baseptr.ll
M llvm/test/CodeGen/X86/znver-pdep.ll
M llvm/test/CodeGen/X86/znver-pext.ll
A llvm/test/CodeGen/XCore/tls-unsized.ll
A llvm/test/CodeGen/XCore/tls-zero-length-array.ll
A llvm/test/DebugInfo/AArch64/concrete-lb-for-abstract-lb.ll
M llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll
M llvm/test/DebugInfo/Generic/assignment-tracking/inline/id.ll
M llvm/test/DebugInfo/Generic/debug-names-hash-collisions.ll
M llvm/test/DebugInfo/Generic/inline-dbg-values.ll
M llvm/test/DebugInfo/Generic/inline-debug-info-multiret.ll
M llvm/test/DebugInfo/Generic/inline-debug-info.ll
M llvm/test/DebugInfo/Generic/inline-no-debug-info.ll
M llvm/test/DebugInfo/KeyInstructions/Generic/inline.ll
M llvm/test/DebugInfo/MIR/AArch64/no-dbg-value-after-terminator.mir
M llvm/test/ExecutionEngine/Orc/throw-catch-merged-compact-unwind.ll
M llvm/test/ExecutionEngine/Orc/throw-catch-minimal.ll
M llvm/test/ExecutionEngine/Orc/throw-catch-no-frame-pointer.ll
M llvm/test/ExecutionEngine/OrcLazy/global-ctors-and-dtors.ll
M llvm/test/ExecutionEngine/OrcLazy/minimal-throw-catch.ll
A llvm/test/Instrumentation/MemorySanitizer/modf-sincos.ll
A llvm/test/Instrumentation/MemorySanitizer/ptrtoaddr.ll
M llvm/test/Integer/2007-01-19-TruncSext.ll
M llvm/test/MC/AArch64/seh-large-func-multi-epilog.s
M llvm/test/MC/AArch64/seh-large-func.s
M llvm/test/MC/AArch64/seh.s
M llvm/test/MC/AArch64/win-import-call-optimization.s
A llvm/test/MC/AMDGPU/gfx11-vop3-literal-canonicalization.s
M llvm/test/MC/AMDGPU/gfx1250_asm_sopp.s
M llvm/test/MC/AMDGPU/gfx1250_asm_sopp_err.s
M llvm/test/MC/AMDGPU/gfx12_err.s
A llvm/test/MC/AMDGPU/gfx13-vop3-literal-canonicalization.s
M llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mtbuf.s
M llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf.s
A llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf_err.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1_dpp16.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1_dpp8.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1_dpp16.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1_dpp8.s
A llvm/test/MC/AMDGPU/gfx13_err.s
M llvm/test/MC/ARM/seh.s
M llvm/test/MC/COFF/addrsig.s
M llvm/test/MC/COFF/align-nops.s
M llvm/test/MC/COFF/basic-coff-64.s
M llvm/test/MC/COFF/basic-coff.s
M llvm/test/MC/COFF/bss.s
M llvm/test/MC/COFF/cgprofile.s
M llvm/test/MC/COFF/module-asm.ll
M llvm/test/MC/COFF/section.s
M llvm/test/MC/COFF/seh-align1.s
M llvm/test/MC/COFF/seh-align2.s
M llvm/test/MC/COFF/seh-align3.s
M llvm/test/MC/COFF/seh-section.s
M llvm/test/MC/COFF/seh.s
M llvm/test/MC/COFF/symbol-fragment-offset-64.s
M llvm/test/MC/COFF/symbol-fragment-offset.s
A llvm/test/MC/Disassembler/LoongArch/colored.txt
A llvm/test/MC/Disassembler/LoongArch/lit.local.cfg
M llvm/test/MC/PowerPC/ppc64-encoding-bookIII.s
M llvm/test/MC/RISCV/attribute-arch.s
A llvm/test/MC/RISCV/rvq-zfhmin-invalid.s
A llvm/test/MC/RISCV/rvq-zfhmin-valid.s
A llvm/test/MC/RISCV/spmp-csr-names.s
M llvm/test/MC/RISCV/xqciio-invalid.s
M llvm/test/MC/RISCV/xqcilo-pseudos-invalid.s
M llvm/test/MC/RISCV/xqcilsm-invalid.s
M llvm/test/MC/RISCV/xwchc-valid.s
A llvm/test/MC/Sparc/sparc-unary-not.s
M llvm/test/MC/X86/win-import-call-optimization.s
M llvm/test/MachineVerifier/AMDGPU/test_g_intrinsic.mir
M llvm/test/Other/legacy-callgraph-scc-pass-printer.ll
A llvm/test/Other/print-changed-persistent-metadata-ids.ll
A llvm/test/Other/print-persistent-metadata-ids.ll
A llvm/test/Other/source-loc-print-filter.ll
M llvm/test/TableGen/AMDGPUTargetDefSubArchSpelling.td
M llvm/test/TableGen/GlobalISelEmitter/CustomPredicate.td
M llvm/test/TableGen/GlobalISelEmitter/GlobalISelEmitter.td
M llvm/test/TableGen/aarch64-apple-tuning-features.td
M llvm/test/TableGen/directive1.td
M llvm/test/TableGen/directive2.td
A llvm/test/ThinLTO/X86/cfi-icall-import-inline.ll
A llvm/test/ThinLTO/X86/dtlto/dtlto-cache-rename-optimization.ll
M llvm/test/Transforms/Attributor/nofpclass-bitcast-int-to-fp.ll
M llvm/test/Transforms/Attributor/nofpclass-canonicalize.ll
M llvm/test/Transforms/Attributor/nofpclass-fmul.ll
M llvm/test/Transforms/Attributor/nofpclass-implied-by-fcmp.ll
M llvm/test/Transforms/Attributor/nofpclass-nan-fmul.ll
M llvm/test/Transforms/Attributor/nofpclass-select.ll
M llvm/test/Transforms/Attributor/nofpclass.ll
M llvm/test/Transforms/CodeExtractor/PartialInlineDebug.ll
M llvm/test/Transforms/CodeExtractor/PartialInlineVarArgsDebug.ll
M llvm/test/Transforms/CodeGenPrepare/AArch64/fpclass-test.ll
A llvm/test/Transforms/CodeGenPrepare/AArch64/hoist-bitcast-aggregate.ll
M llvm/test/Transforms/CodeGenPrepare/AMDGPU/no-sink-addrspacecast.ll
R llvm/test/Transforms/CodeGenPrepare/AMDGPU/sink-fmul-fadd-contract-fast.ll
M llvm/test/Transforms/CodeGenPrepare/AMDGPU/sink-fmul-fadd.ll
M llvm/test/Transforms/CodeGenPrepare/RISCV/fpclass-test.ll
A llvm/test/Transforms/CodeGenPrepare/RISCV/hoist-bitcast-scalable.ll
M llvm/test/Transforms/CodeGenPrepare/X86/fpclass-test.ll
A llvm/test/Transforms/CodeGenPrepare/X86/hoist-bitcast-i686.ll
A llvm/test/Transforms/CodeGenPrepare/X86/hoist-bitcast-integer-to-vector.ll
M llvm/test/Transforms/ConstraintElimination/and-implied-by-operands.ll
M llvm/test/Transforms/ConstraintElimination/induction-condition-in-loop-exit-postinc.ll
A llvm/test/Transforms/ConstraintElimination/induction-exit-condition-or-and.ll
A llvm/test/Transforms/ConstraintElimination/induction-relational-predicate-latch.ll
A llvm/test/Transforms/ConstraintElimination/induction-symbolic-start-postinc.ll
A llvm/test/Transforms/ConstraintElimination/or-disjoint.ll
M llvm/test/Transforms/ConstraintElimination/or.ll
M llvm/test/Transforms/ConstraintElimination/uadd-usub-sat.ll
M llvm/test/Transforms/DCE/calls-errno.ll
A llvm/test/Transforms/DeadStoreElimination/wide-pointer-index-offset.ll
M llvm/test/Transforms/EarlyCSE/atan.ll
M llvm/test/Transforms/EarlyCSE/flags.ll
M llvm/test/Transforms/ExpandIRInsts/AMDGPU/frem-inf.ll
M llvm/test/Transforms/FunctionAttrs/atomic.ll
M llvm/test/Transforms/FunctionAttrs/nofpclass.ll
M llvm/test/Transforms/FunctionAttrs/noundef.ll
A llvm/test/Transforms/GVN/memoryssa-implies-no-memdep.ll
M llvm/test/Transforms/GVNHoist/hoist-call.ll
A llvm/test/Transforms/GlobalOpt/self-referential-global.ll
A llvm/test/Transforms/IndVarSimplify/exit-value-nowrap-flags.ll
M llvm/test/Transforms/InferAddressSpaces/AMDGPU/infer-addrspacecast.ll
M llvm/test/Transforms/Inline/X86/inline-landing-pad.ll
M llvm/test/Transforms/Inline/debug-invoke.ll
M llvm/test/Transforms/Inline/dilocation-loop-metadata-update.ll
M llvm/test/Transforms/Inline/inline_dbg_declare.ll
M llvm/test/Transforms/Inline/simplify-instruction-computeKnownFPClass-context.ll
M llvm/test/Transforms/InstCombine/2007-03-25-BadShiftMask.ll
M llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float-specials.ll
M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
M llvm/test/Transforms/InstCombine/AMDGPU/fma_legacy.ll
M llvm/test/Transforms/InstCombine/AMDGPU/fmed3.ll
M llvm/test/Transforms/InstCombine/AMDGPU/fmul_legacy.ll
M llvm/test/Transforms/InstCombine/NVPTX/nvvm-intrins.ll
A llvm/test/Transforms/InstCombine/RISCV/riscv-vlenb-range.ll
M llvm/test/Transforms/InstCombine/X86/x86-fp-minmax-negzero.ll
M llvm/test/Transforms/InstCombine/X86/x86-scalar-max-min.ll
M llvm/test/Transforms/InstCombine/addrspacecast.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/InstCombine/atomicrmw.ll
M llvm/test/Transforms/InstCombine/binop-select.ll
M llvm/test/Transforms/InstCombine/bitcast-select-const-vector.ll
M llvm/test/Transforms/InstCombine/cast-int-fcmp-eq-0.ll
M llvm/test/Transforms/InstCombine/cast-mul-select.ll
M llvm/test/Transforms/InstCombine/constant-fold-nextafter.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-fp128.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-ppc-fp128.ll
M llvm/test/Transforms/InstCombine/constant-fold-nexttoward-x86-fp80.ll
M llvm/test/Transforms/InstCombine/erf.ll
M llvm/test/Transforms/InstCombine/fcmp-range-check-idiom.ll
M llvm/test/Transforms/InstCombine/fcmp-select.ll
M llvm/test/Transforms/InstCombine/fdim.ll
M llvm/test/Transforms/InstCombine/fma.ll
M llvm/test/Transforms/InstCombine/fmod.ll
M llvm/test/Transforms/InstCombine/fneg.ll
M llvm/test/Transforms/InstCombine/fold-calls.ll
M llvm/test/Transforms/InstCombine/fold-fcmp-trunc.ll
M llvm/test/Transforms/InstCombine/fold-select-fmul-if-zero.ll
M llvm/test/Transforms/InstCombine/fpclass-from-dom-cond.ll
M llvm/test/Transforms/InstCombine/frem-inf.ll
M llvm/test/Transforms/InstCombine/frexp.ll
M llvm/test/Transforms/InstCombine/icmp-power2-and-icmp-shifted-mask.ll
M llvm/test/Transforms/InstCombine/ilogb.ll
M llvm/test/Transforms/InstCombine/intrinsic-select.ll
M llvm/test/Transforms/InstCombine/is_fpclass.ll
M llvm/test/Transforms/InstCombine/known-bits.ll
M llvm/test/Transforms/InstCombine/log1p.ll
M llvm/test/Transforms/InstCombine/logb.ll
M llvm/test/Transforms/InstCombine/logical-select.ll
M llvm/test/Transforms/InstCombine/maximum.ll
M llvm/test/Transforms/InstCombine/maxnum.ll
M llvm/test/Transforms/InstCombine/minimum.ll
M llvm/test/Transforms/InstCombine/minnum.ll
M llvm/test/Transforms/InstCombine/nanless-canonicalize-combine.ll
M llvm/test/Transforms/InstCombine/nested-select.ll
M llvm/test/Transforms/InstCombine/overflow-mul.ll
M llvm/test/Transforms/InstCombine/phi.ll
M llvm/test/Transforms/InstCombine/pow-1.ll
M llvm/test/Transforms/InstCombine/pow-exp.ll
M llvm/test/Transforms/InstCombine/ptr-int-cast.ll
M llvm/test/Transforms/InstCombine/remquo.ll
M llvm/test/Transforms/InstCombine/saturating-add-sub.ll
A llvm/test/Transforms/InstCombine/scalbn-to-ldexp.ll
M llvm/test/Transforms/InstCombine/select-fcmp-fmul-zero-absorbing-value.ll
M llvm/test/Transforms/InstCombine/select.ll
M llvm/test/Transforms/InstCombine/shufflevec-constant-inseltpoison.ll
M llvm/test/Transforms/InstCombine/shufflevec-constant.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-aggregates.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-canonicalize.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-exp.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fdiv.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-log.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-sqrt.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
M llvm/test/Transforms/InstCombine/uadd-with-overflow.ll
A llvm/test/Transforms/InstCombine/zext-nneg.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/cos.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fma_legacy.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fmul_legacy.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fract.ll
M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/sin.ll
M llvm/test/Transforms/InstSimplify/ConstProp/WebAssembly/trunc.ll
M llvm/test/Transforms/InstSimplify/ConstProp/atan-intrinsic.ll
M llvm/test/Transforms/InstSimplify/ConstProp/basictest.ll
M llvm/test/Transforms/InstSimplify/ConstProp/fma.ll
M llvm/test/Transforms/InstSimplify/ConstProp/fp-undef.ll
M llvm/test/Transforms/InstSimplify/ConstProp/min-max.ll
M llvm/test/Transforms/InstSimplify/ConstProp/sinh-cosh-intrinsics.ll
M llvm/test/Transforms/InstSimplify/X86/fp-nan-strictfp.ll
A llvm/test/Transforms/InstSimplify/addrspacecast-nonnull.ll
M llvm/test/Transforms/InstSimplify/assume-fcmp-constant-implies-class.ll
M llvm/test/Transforms/InstSimplify/call.ll
M llvm/test/Transforms/InstSimplify/canonicalize.ll
M llvm/test/Transforms/InstSimplify/const-fold-nvvm-add.ll
M llvm/test/Transforms/InstSimplify/const-fold-nvvm-f2i-d2i.ll
M llvm/test/Transforms/InstSimplify/const-fold-nvvm-f2ll-d2ll.ll
M llvm/test/Transforms/InstSimplify/const-fold-nvvm-fma.ll
M llvm/test/Transforms/InstSimplify/constfold-constrained.ll
M llvm/test/Transforms/InstSimplify/exp10.ll
M llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll
M llvm/test/Transforms/InstSimplify/floating-point-compare.ll
M llvm/test/Transforms/InstSimplify/fminmax-folds.ll
M llvm/test/Transforms/InstSimplify/fp-nan.ll
M llvm/test/Transforms/InstSimplify/fp-undef-poison.ll
M llvm/test/Transforms/InstSimplify/fptoi-sat.ll
M llvm/test/Transforms/InstSimplify/known-never-infinity.ll
M llvm/test/Transforms/InstSimplify/known-never-nan.ll
M llvm/test/Transforms/InstSimplify/ldexp.ll
M llvm/test/Transforms/InstSimplify/logic-of-fcmps.ll
M llvm/test/Transforms/InstSimplify/pr122582.ll
M llvm/test/Transforms/InstSimplify/ptrtoint.ll
M llvm/test/Transforms/InstSimplify/sincos.ll
M llvm/test/Transforms/InstSimplify/strictfp-fadd.ll
M llvm/test/Transforms/LICM/2003-12-11-SinkingToPHI.ll
A llvm/test/Transforms/LoopFusion/scalar_eq_cannot_fuse.ll
M llvm/test/Transforms/LoopIdiom/memmove-ext.ll
A llvm/test/Transforms/LoopInterchange/reduction-minmax-multi-use.ll
M llvm/test/Transforms/LoopUnroll/runtime-unroll-reductions-min-max.ll
M llvm/test/Transforms/LoopUnroll/unloop.ll
M llvm/test/Transforms/LoopVectorize/AArch64/aarch64-predication.ll
M llvm/test/Transforms/LoopVectorize/AArch64/blend-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/cmp_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/epilogue-vectorization-fix-scalar-resume-values.ll
M llvm/test/Transforms/LoopVectorize/AArch64/fold-tail-low-trip-count.ll
M llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/fully-unrolled-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
M llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-fdot-product.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-no-dotprod.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-with-invariant-stores.ll
M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/replicating-load-store-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-interleave-low-vf-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-accesses.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops-chained.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory.ll
A llvm/test/Transforms/LoopVectorize/AArch64/wide-vscale-range-max-runtime-vf.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-icmpcost.ll
A llvm/test/Transforms/LoopVectorize/PowerPC/cost-partial-red.ll
A llvm/test/Transforms/LoopVectorize/PowerPC/partial-red.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/reg-usage.ll
M llvm/test/Transforms/LoopVectorize/RISCV/blocks-with-dead-instructions.ll
M llvm/test/Transforms/LoopVectorize/RISCV/dead-ops-cost.ll
M llvm/test/Transforms/LoopVectorize/RISCV/defaults.ll
M llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
M llvm/test/Transforms/LoopVectorize/RISCV/early-exit-live-out.ll
M llvm/test/Transforms/LoopVectorize/RISCV/first-order-recurrence-scalable-vf1.ll
M llvm/test/Transforms/LoopVectorize/RISCV/fminimumnum.ll
M llvm/test/Transforms/LoopVectorize/RISCV/gather-scatter-cost.ll
M llvm/test/Transforms/LoopVectorize/RISCV/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/RISCV/indvar-overflow-check-scalable-tc.ll
M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
M llvm/test/Transforms/LoopVectorize/RISCV/interleaved-accesses.ll
M llvm/test/Transforms/LoopVectorize/RISCV/interleaved-masked-access.ll
M llvm/test/Transforms/LoopVectorize/RISCV/lmul.ll
M llvm/test/Transforms/LoopVectorize/RISCV/mask-index-type.ll
M llvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product-costs.ll
M llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product.ll
M llvm/test/Transforms/LoopVectorize/RISCV/pr87378-vpinstruction-or-drop-poison-generating-flags.ll
M llvm/test/Transforms/LoopVectorize/RISCV/pr88802.ll
M llvm/test/Transforms/LoopVectorize/RISCV/predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/RISCV/reg-usage-prune-vf.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/RISCV/runtime-check-dependent-on-stride.ll
M llvm/test/Transforms/LoopVectorize/RISCV/safe-dep-distance.ll
M llvm/test/Transforms/LoopVectorize/RISCV/scalable-basics.ll
M llvm/test/Transforms/LoopVectorize/RISCV/scalable-tailfold.ll
M llvm/test/Transforms/LoopVectorize/RISCV/scalable-vf-hint.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-access-wide-stride.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses-i64-rv32.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses-narrow-iv.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-bin-unary-ops-args.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-div.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-interleave.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reverse-load-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-safe-dep-distance.ll
M llvm/test/Transforms/LoopVectorize/RISCV/transform-narrow-interleave-to-widen-memory.ll
M llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-cost.ll
M llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-evl-crash.ll
M llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/zvl1024b-crash.ll
A llvm/test/Transforms/LoopVectorize/VPlan/RISCV/cse-loads-evl.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/partial-reduce-dot-product.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/reductions-evl.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics.ll
A llvm/test/Transforms/LoopVectorize/VPlan/X86/cse-loads-gather.ll
M llvm/test/Transforms/LoopVectorize/VPlan/buildvector-first-lane-only.ll
A llvm/test/Transforms/LoopVectorize/VPlan/cse-loads-masked.ll
A llvm/test/Transforms/LoopVectorize/VPlan/cse-loads-tailfold.ll
A llvm/test/Transforms/LoopVectorize/VPlan/cse-loads.ll
M llvm/test/Transforms/LoopVectorize/VPlan/epilogue-vectorization-printing.ll
A llvm/test/Transforms/LoopVectorize/VPlan/execution-frequencies-match-bfi.ll
A llvm/test/Transforms/LoopVectorize/VPlan/memory-checks.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-branch-weights.ll
M llvm/test/Transforms/LoopVectorize/WebAssembly/memory-interleave.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/vpinstruction-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/conversion-cost.ll
Log Message:
-----------
Rebase
Created using spr 1.3.7
Compare: https://github.com/llvm/llvm-project/compare/8f592326f268...0f138f68467d
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list