LLVM/project 75f1dffclang/include/clang/Lex Preprocessor.h, clang/lib/Lex Preprocessor.cpp PPDirectives.cpp

Revert "[C++20][Modules] Implement P1857R3 Modules Dependency Discovery (#107…"

This reverts commit d2e62d902438bb5860f2376e818d797bf20daa7d.
DeltaFile
+211-277clang/lib/Lex/Preprocessor.cpp
+31-439clang/lib/Lex/PPDirectives.cpp
+0-207clang/test/CXX/module/cpp.pre/p1.cpp
+61-135clang/include/clang/Lex/Preprocessor.h
+15-149clang/lib/Lex/DependencyDirectivesScanner.cpp
+77-47clang/lib/Parse/Parser.cpp
+395-1,25438 files not shown
+537-1,70444 files

LLVM/project 9c66a38llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp

[AArch64] Fix wrong AArch64Subtarget construction. (#172942)

The AArch64Subtarget construction was wrong for two reasons: firstly,
createMCSubtargetInfo() does not create an AArch64Subtarget object, and
secondly, the target CPU and features were left blank. This has been
benign so far since no methods were called that depended on this, but it
is undefined for the first reason, and creating the subtarget info in a
state that the user did not request for the second reason. This commit
fixes both issues.
DeltaFile
+11-13llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+11-131 files

LLVM/project 5226a5aclang-tools-extra/docs/clang-tidy/checks/bugprone macro-parentheses.rst

[clang-tidy][NFC][Docs] Fix typo in bugprone-macro-parentheses (#173101)

Link title for `CERT C Coding Standard rule PRE20-C` should be `PRE02-C`
to match target.
DeltaFile
+1-1clang-tools-extra/docs/clang-tidy/checks/bugprone/macro-parentheses.rst
+1-11 files

LLVM/project 056ae8bflang/lib/Semantics check-call.cpp

[flang] Correctly buffer warnings in Semantics/check-call.cpp (#172738)

There are calls to semantics::SemanticsContext::Warn() in check-call.cpp
that are not properly directing their output to the local message
buffer, so they can appear unconditionally in the output of the
compiler. This is a problem for generic interface resolution, which
checks procedure actual arguments against specific procedures using this
code, buffering the messages that might appear, and discarding the
messages for failed matches. Worse, the bogus warnings that escape the
buffering can be associated with completely unrelated locations.

Fix by passing the local message buffer to these Warn() calls.

(I couldn't come up with a good reduced test case, and am not sure that
the original code can be copied for use as one.)
DeltaFile
+10-15flang/lib/Semantics/check-call.cpp
+10-151 files

LLVM/project 79670f1flang/lib/Semantics resolve-names.cpp, flang/test/Semantics resolve91.f90 bug1696.f90

[flang] Improve scan for dummy argument type declarations (#172706)

We can handle a forward reference to an explicitly typed integer dummy
argument when its name appears in a specification expression, rather
than applying the active implicit typing rules, so long as the explicit
type declaration statement has a literal constant kind number. Extend
this to also accept INTEGER(int_ptr_kind()) or other function reference
without an actual argument.
DeltaFile
+15-5flang/lib/Semantics/resolve-names.cpp
+6-6flang/test/Semantics/resolve91.f90
+6-0flang/test/Semantics/bug1696.f90
+2-2flang/test/Semantics/resolve01.f90
+1-1flang/test/Semantics/resolve05.f90
+1-1flang/test/Semantics/bug122002b.f90
+31-152 files not shown
+33-178 files

LLVM/project bc99ce0flang/include/flang/Lower CallInterface.h, flang/lib/Lower ConvertCall.cpp

[flang] Extension: Allow POINTER,INTENT(IN) passed objects (#172175)

ISO Fortran now accepts a non-pointer actual argument to associate with
a dummy argument with the POINTER attribute if it is also INTENT(IN), so
long as the actual argument is a valid target for the pointer. But
passed-object dummy arguments still have a blanket prohibition against
being pointers in the ISO standard. Relax that constraint in the case of
INTENT(IN) so that passed objects can also benefit from the feature.

Fixes https://github.com/llvm/llvm-project/issues/172157.
DeltaFile
+62-0flang/test/Lower/bug172157-3.f90
+33-0flang/test/Semantics/bug172157-2.f90
+27-0flang/test/Semantics/bug172157-1.f90
+17-3flang/lib/Semantics/check-declarations.cpp
+12-3flang/lib/Lower/ConvertCall.cpp
+6-0flang/include/flang/Lower/CallInterface.h
+157-65 files not shown
+166-1111 files

LLVM/project e47fc7bllvm/lib/Target/AMDGPU VOP3PInstructions.td

[NFC][AMDGPU] Refactor some tablegen code for VOP3PX2 (#173105)

DeltaFile
+28-25llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+28-251 files

LLVM/project 0ca779flibc/docs index.rst hand_in_hand.rst

[libc][docs] Update website to reflect new strategy (#168637)

The LLVM-libc goals are updated to better reflect the strategy shared
at the LLVM dev meeting 2025.
DeltaFile
+20-22libc/docs/index.rst
+41-0libc/docs/hand_in_hand.rst
+61-222 files

LLVM/project 55a5f20mlir/test/python/dialects python_test.py

format
DeltaFile
+24-6mlir/test/python/dialects/python_test.py
+24-61 files

LLVM/project 4eb20a1llvm/include/llvm/ProfileData MemProfSummary.h, llvm/lib/ProfileData IndexedMemProfData.cpp MemProfSummary.cpp

[llvm-profdata][StaticDataLayout] Print summary of data access profiles in llvm-profdata (#173087)

This gives some aggregated information about the data access profiles.
The summaries are computed on the fly to save a profile version update.

Implementation-wise
* `MemProfSummary::printSummaryYaml` is updated to print data access
summaries for v4, the profile version that started to support data
access profiles.
* MemProfSummary.cpp has a FIXME comment to serialize the summary into
profile data, ideally batching with more substantial profile format
change.
* MemProfSummaryBuilder is not updated for now. This class is used to
serialize memprof summaries for v4 and above by memprof writer, and to
construct memprof summaries for v3 and prior versions by llvm-profdata.
DeltaFile
+11-9llvm/lib/ProfileData/IndexedMemProfData.cpp
+18-0llvm/lib/ProfileData/MemProfSummary.cpp
+16-1llvm/include/llvm/ProfileData/MemProfSummary.h
+6-0llvm/test/tools/llvm-profdata/memprof-yaml.test
+51-104 files

LLVM/project 1f78f6allvm/test/Transforms/LoopVectorize/AArch64 gather-cost.ll, llvm/test/Transforms/LoopVectorize/ARM gather-cost.ll

[LV] Check Addr in getAddressAccessSCEV in terms of SCEV expressions. (#171204)

getAddressAccessSCEV previously had some restrictive checks that limited
pointer SCEV expressions passed to TTI to GEPs with operands that must
either be invariant or marked as inductions.

As a consequence, the check rejected things like `GEP %base, (%iv + 1)`,
while the SCEV for the GEP should be as easily analyzeable as for `GEP
%base, %v`, with the only difference being the of the AddRec start
adjusted by 1.

This patch changes the code to use a SCEV-based check, limiting the
address SCEV to be loop invariant, an affine AddRec (i.e. induction ),
or an add expression of such operands or a sign-extended AddRec.

This catches all existing cases getAddressAccessSCEV caught, plus
additional ones like the cases mentioned above.

This means we pass address SCEVs in more cases, giving the backends a

    [16 lines not shown]
DeltaFile
+219-32llvm/test/Transforms/LoopVectorize/X86/gather-cost.ll
+217-24llvm/test/Transforms/LoopVectorize/AArch64/gather-cost.ll
+117-86llvm/test/Transforms/LoopVectorize/X86/interleaved-accesses-hoist-load-across-store.ll
+72-72llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-8.ll
+119-11llvm/test/Transforms/LoopVectorize/ARM/gather-cost.ll
+63-63llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-7.ll
+807-28853 files not shown
+1,941-1,35059 files

LLVM/project 23610b5mlir/test/python/dialects python_test.py, mlir/test/python/lib PythonTestModuleNanobind.cpp

port mlir_attribute_subclass
DeltaFile
+21-13mlir/test/python/lib/PythonTestModuleNanobind.cpp
+3-3mlir/test/python/dialects/python_test.py
+24-162 files

LLVM/project f810369llvm/lib/Target/AMDGPU VOP3PInstructions.td

[NFC][AMDGPU] Refactor some tablegen code for VOP3PX2
DeltaFile
+28-25llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+28-251 files

LLVM/project 5e2cf6cllvm/lib/Support/rpmalloc rpmalloc.c, llvm/test/CodeGen/AArch64 atomic-ops-lse.ll

Merge branch 'main' into users/mingmingl-llvm/llvm-profdata-summary
DeltaFile
+17,522-20,773llvm/test/CodeGen/X86/wide-scalar-shift-by-byte-multiple-legalization.ll
+8,857-10,952llvm/test/CodeGen/AMDGPU/maximumnum.bf16.ll
+8,840-10,957llvm/test/CodeGen/AMDGPU/minimumnum.bf16.ll
+7,585-2,403llvm/test/CodeGen/AArch64/atomic-ops-lse.ll
+4,040-3,996llvm/lib/Support/rpmalloc/rpmalloc.c
+6,871-0llvm/test/CodeGen/RISCV/short-forward-branch-opt-load.ll
+53,715-49,0816,832 files not shown
+404,722-201,1376,838 files

LLVM/project 26558cbllvm/include/llvm/ProfileData MemProfSummary.h

Add a TODO
DeltaFile
+2-0llvm/include/llvm/ProfileData/MemProfSummary.h
+2-01 files

LLVM/project 97f20abmlir/include/mlir/Bindings/Python Globals.h, mlir/lib/Bindings/Python Globals.cpp

try fix windows badcast
DeltaFile
+9-9mlir/python/CMakeLists.txt
+3-9mlir/test/python/dialects/python_test.py
+5-0mlir/lib/Bindings/Python/Globals.cpp
+1-4mlir/include/mlir/Bindings/Python/Globals.h
+18-224 files

LLVM/project b0fce8ellvm/lib/Transforms/Instrumentation MemorySanitizer.cpp

[msan][NFCI] Remove element-size override for VNNI intrinsics (#172762)

MSan's handleVectorPmaddIntrinsic had an EltSizeInBits parameter to
override the incorrect element size for VNNI intrinsics. Now that the
element size has been corrected
(https://github.com/llvm/llvm-project/issues/97271), it is no longer
necessary to override the element size.

This patch also updates the comments.
DeltaFile
+50-17llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+50-171 files

LLVM/project 55b9425mlir/lib/Bindings/Python IRModule.h IRCore.cpp, mlir/test/python/ir affine_expr.py builtin_types.py

remove "isinstance" from core bindings
DeltaFile
+8-8mlir/test/python/ir/affine_expr.py
+0-12mlir/lib/Bindings/Python/IRModule.h
+5-5mlir/test/python/ir/builtin_types.py
+4-4mlir/test/python/ir/value.py
+4-4mlir/test/python/ir/attributes.py
+0-6mlir/lib/Bindings/Python/IRCore.cpp
+21-393 files not shown
+23-479 files

LLVM/project 2f8f75fclang/docs ReleaseNotes.rst, clang/include/clang/Basic AttrDocs.td

[clang] Apply cfi_unchecked_callee rules to -fsanitize=function (#170725)

Allow the normal rules for preventing instrumentation on indirect calls
to `cfi_unchecked_callee` function types and `cfi_unchecked_callee`
functions when using `-fsanitize=function`. While it's technically
separate from `-fsanitize=cfi`, this particular UBSan mode checks for
similar control flow bugs so it makes sense to also prevent those
control flow checks from being added onto `cfi_unchecked_callee`
functions.
DeltaFile
+17-0clang/test/CodeGen/ubsan-function.cpp
+3-3clang/lib/CodeGen/CGExpr.cpp
+3-1clang/include/clang/Basic/AttrDocs.td
+3-0clang/docs/ReleaseNotes.rst
+2-1clang/lib/CodeGen/CodeGenFunction.cpp
+28-55 files

LLVM/project 1772133clang/lib/AST PrintfFormatString.cpp FormatString.cpp, clang/lib/Sema SemaChecking.cpp

add format string handling

(cherry picked from commit 20a6fdfe3045eebaf1acc4fff7269c66e85e10c3)
DeltaFile
+241-164clang/lib/AST/PrintfFormatString.cpp
+128-118clang/lib/AST/FormatString.cpp
+104-51clang/lib/AST/ScanfFormatString.cpp
+40-36clang/lib/Sema/SemaChecking.cpp
+23-16clang/lib/AST/FormatStringParsing.h
+19-0llvm/lib/Support/TextEncoding.cpp
+555-38511 files not shown
+614-39617 files

LLVM/project 5f3f2a6clang/include/clang/Sema Sema.h, clang/lib/Parse ParseDeclCXX.cpp ParseDecl.cpp

do not translate unevaluated strings
DeltaFile
+16-0clang/test/CodeGen/systemz-charset.c
+3-7clang/lib/Parse/ParseDeclCXX.cpp
+9-0clang/test/CodeGen/systemz-charset-diag.cpp
+3-4clang/lib/Sema/SemaExpr.cpp
+1-3clang/include/clang/Sema/Sema.h
+0-3clang/lib/Parse/ParseDecl.cpp
+32-171 files not shown
+33-197 files

LLVM/project b50eef6mlir/lib/Bindings/Python IRModule.h IRCore.cpp, mlir/test/python/ir affine_expr.py value.py

remove "isinstance" from core bindings
DeltaFile
+8-8mlir/test/python/ir/affine_expr.py
+0-12mlir/lib/Bindings/Python/IRModule.h
+5-6mlir/test/python/ir/value.py
+5-5mlir/test/python/ir/builtin_types.py
+4-4mlir/test/python/ir/attributes.py
+0-6mlir/lib/Bindings/Python/IRCore.cpp
+22-413 files not shown
+24-499 files

LLVM/project 16a7dballvm/test/CodeGen/AMDGPU promote-alloca-user-mult.ll

AMDGPU: cleanup promote-alloca-user-mult.ll test (#173071)

Remove unnecessary attributes in test case as requested in post-merge
feedback (#172771).
DeltaFile
+2-6llvm/test/CodeGen/AMDGPU/promote-alloca-user-mult.ll
+2-61 files

LLVM/project 7b101d2llvm/test/CodeGen/SystemZ tdc-05.ll

[SystemZ] Update CodeGen/SystemZ/tdc-05.ll test file (#172437)

This PR updates `llvm/test/CodeGen/SystemZ/tdc-05.ll` using
`llvm/utils/update_llc_test_checks.py` to refresh the expected output.
The updated checks reflect the current output of llc and reduce noise in
future diffs.
DeltaFile
+73-29llvm/test/CodeGen/SystemZ/tdc-05.ll
+73-291 files

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

[AMDGPU] Limit allocation of lo128 registers for occupancy

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

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

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

[AMDGPU] Allow allocation of lo128 registers from all banks

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

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

The solution proposed is to define _lo128 RC with contigous 896

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

LLVM/project ec8d7e8bolt/lib/Passes PAuthGadgetScanner.cpp

Address the review comments

Co-authored-by: Kristof Beyls <kristof.beyls at arm.com>
DeltaFile
+53-17bolt/lib/Passes/PAuthGadgetScanner.cpp
+53-171 files

LLVM/project 4822b43llvm/lib/ProfileData InstrProfReader.cpp, llvm/test/tools/llvm-profdata memprof-yaml.test

[StaticDataLayout] Sort records before printing them in text format (#172592)

This change proposes to sort records before printing to make it more
readable and easier to compare.
DeltaFile
+19-0llvm/lib/ProfileData/InstrProfReader.cpp
+4-4llvm/test/tools/llvm-profdata/memprof-yaml.test
+23-42 files

LLVM/project 00fb8d1llvm/include/llvm/MC MCSectionGOFF.h, llvm/lib/Target/SystemZ SystemZAsmPrinter.cpp

Update test, movove ADA symbol, fix call to target independent emitXXStructorList
DeltaFile
+7-5llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
+0-11llvm/include/llvm/MC/MCSectionGOFF.h
+0-2llvm/test/CodeGen/SystemZ/zos_sinit.ll
+7-183 files

LLVM/project 46445c5llvm/include/llvm/ProfileData MemProfSummary.h, llvm/lib/ProfileData MemProfSummary.cpp

resolve code review feedback
DeltaFile
+6-10llvm/test/tools/llvm-profdata/memprof-yaml.test
+4-6llvm/lib/ProfileData/MemProfSummary.cpp
+2-1llvm/include/llvm/ProfileData/MemProfSummary.h
+1-1llvm/test/Transforms/PGOProfile/memprof_max_cold_threshold.test
+1-1llvm/test/Transforms/PGOProfile/memprof.ll
+14-195 files