[all-commits] [llvm/llvm-project] 68f48b: [ValueTracking] Infer implied conditions through m...
Utkarsh Saxena via All-commits
all-commits at lists.llvm.org
Mon Sep 7 04:21:18 PDT 2026
Branch: refs/heads/users/usx95/lifetime-safety-checker-pay-what-you-use
Home: https://github.com/llvm/llvm-project
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: 28370a64b21702233b80172810feb6f5b932a14c
https://github.com/llvm/llvm-project/commit/28370a64b21702233b80172810feb6f5b932a14c
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M .git-blame-ignore-revs
M bolt/unittests/Core/BinaryContext.cpp
M bolt/unittests/Core/MCPlusBuilder.cpp
M bolt/unittests/Core/MemoryMaps.cpp
M bolt/unittests/Profile/PerfScripts.cpp
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/docs/ReleaseNotes.md
M clang/docs/StandardCPlusPlusModules.md
M clang/include/clang/Basic/ABIVersions.def
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/include/clang/DependencyScanning/ModuleDepCollector.h
M clang/include/clang/Lex/PreprocessorOptions.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
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/lib/CodeGen/CGExprScalar.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/Targets/X86.cpp
M clang/lib/DependencyScanning/ModuleDepCollector.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
A clang/test/CIR/CodeGen/spirv-target-lowering-as.cpp
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
A clang/test/CIR/CodeGenHIP/builtin-bool-result.hip
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/IR/enum-attrs.cir
M clang/test/CIR/IR/invalid-call.cir
M clang/test/CIR/IR/invalid-lang-attr.cir
M clang/test/CIR/Lowering/address-space.cir
M clang/test/ClangScanDeps/P1689.cppm
A clang/test/ClangScanDeps/p1689-module-map.cppm
A clang/test/CodeGen/X86/x86_64-unnamed-bitfield-abi-compat.c
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/DebugInfo/Generic/debug-label-inline.c
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
A clang/test/SemaCUDA/attr-instantiation-duplication-amdgpu.cu
A clang/test/SemaCUDA/attr-instantiation-duplication-spirv.cu
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
M libc/CMakeLists.txt
A libc/docs/dev/code_coverage.md
M libc/docs/dev/index.md
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
M lld/ELF/EhFrame.cpp
M lld/ELF/EhFrame.h
M lld/ELF/SyntheticSections.cpp
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/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
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/Shell/SymbolFile/NativePDB/globals-bss.cpp
R lldb/test/Shell/Watchpoint/Inputs/main.cpp
R lldb/test/Shell/Watchpoint/SetErrorCases.test
M llvm/include/llvm/ABI/TargetInfo.h
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/include/llvm/Analysis/MustExecute.h
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/include/llvm/CodeGen/CallingConvLower.h
M llvm/include/llvm/CodeGen/MachineOutliner.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/include/llvm/IR/Attributes.h
M llvm/lib/ABI/Targets/X86.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/MustExecute.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
M llvm/lib/CodeGen/MachineInstr.cpp
M llvm/lib/CodeGen/MachineOutliner.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/IR/AttributeImpl.h
M llvm/lib/IR/Attributes.cpp
M llvm/lib/IR/DebugLoc.cpp
M llvm/lib/IR/LLVMContextImpl.h
M llvm/lib/TableGen/StringToOffsetTable.cpp
M llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
M llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/RISCV/RISCVProcessors.td
M llvm/lib/Target/Sparc/DelaySlotFiller.cpp
M llvm/lib/Target/Sparc/SparcInstrInfo.cpp
M llvm/lib/Target/Sparc/SparcInstrInfo.h
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/lib/Transforms/Scalar/ConstraintElimination.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/InlineFunction.cpp
M llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.cpp
M 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/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.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
M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-fmuladd.ll
M llvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir
M llvm/test/CodeGen/AArch64/GlobalISel/select-bitcast.mir
A llvm/test/CodeGen/AArch64/cmpbr-ccmp.ll
A llvm/test/CodeGen/AArch64/cmpbr-ccmp.mir
A llvm/test/CodeGen/AArch64/interleaved-load-combine-many-candidates.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/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
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/global-load-xcnt.ll
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/pack-half-to-lshl-or.ll
M llvm/test/CodeGen/AMDGPU/spill-agpr.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/X86/pr216504.ll
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/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/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
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/Transforms/CodeExtractor/PartialInlineDebug.ll
M llvm/test/Transforms/CodeExtractor/PartialInlineVarArgsDebug.ll
M llvm/test/Transforms/ConstraintElimination/and-implied-by-operands.ll
A llvm/test/Transforms/ConstraintElimination/induction-exit-condition-or-and.ll
A llvm/test/Transforms/DeadStoreElimination/wide-pointer-index-offset.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/InstCombine/icmp-power2-and-icmp-shifted-mask.ll
M llvm/test/Transforms/InstCombine/nested-select.ll
M llvm/test/Transforms/InstCombine/ptr-int-cast.ll
M llvm/test/Transforms/InstSimplify/call.ll
M llvm/test/Transforms/InstSimplify/ptrtoint.ll
M llvm/test/Transforms/LoopVectorize/replicate-region-branch-weights.ll
M llvm/test/Transforms/SafeStack/ARM/debug.ll
M llvm/test/Transforms/SampleProfile/pseudo-probe-emit-inline.ll
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
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
M llvm/unittests/Analysis/ValueTrackingTest.cpp
M orc-rt/lib/bedrock/CMakeLists.txt
M orc-rt/lib/support/CMakeLists.txt
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:
-----------
Merge branch 'main' into users/usx95/lifetime-safety-checker-pay-what-you-use
Compare: https://github.com/llvm/llvm-project/compare/1dfbc1e6edb3...28370a64b217
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